Add support for skipping conversions on non-FLAC files

This commit is contained in:
2022-04-22 12:50:27 -04:00
parent d03d73a2f8
commit 8ba7815241
+31 -27
View File
@@ -3,7 +3,7 @@
# external modules # external modules
from argparse import ArgumentParser from argparse import ArgumentParser
from mutagen.flac import FLAC from mutagen.flac import FLAC, FLACNoHeaderError
from os import cpu_count, path, walk from os import cpu_count, path, walk
from pathlib import Path from pathlib import Path
from subprocess import check_output, Popen from subprocess import check_output, Popen
@@ -61,33 +61,37 @@ def scan_destination_convert():
_i += 1 _i += 1
print(f"\n{_progress}% | \u001b[38;5;0;48;5;15mConverting {_file_s} to {_file_d}...\u001b[0m\n") print(f"\n{_progress}% | \u001b[38;5;0;48;5;15mConverting {_file_s} to {_file_d}...\u001b[0m\n")
# get relevant ReplayGain info # get relevant ReplayGain info
_audio = FLAC(f"{_file}.flac") try:
if args.albumgain: _audio = FLAC(f"{_file}.flac")
if _audio.get('REPLAYGAIN_ALBUM_GAIN'): if args.albumgain:
_rggain = float(_audio.get('REPLAYGAIN_ALBUM_GAIN')[0][:-3]) if _audio.get('REPLAYGAIN_ALBUM_GAIN'):
elif _audio.get('replaygain_album_gain'): _rggain = float(_audio.get('REPLAYGAIN_ALBUM_GAIN')[0][:-3])
_rggain = float(_audio.get('replaygain_album_gain')[0][:-3]) elif _audio.get('replaygain_album_gain'):
_rggain = float(_audio.get('replaygain_album_gain')[0][:-3])
else:
_rggain = None
if _audio.get('REPLAYGAIN_ALBUM_PEAK'):
_rgpeak = float(_audio.get('REPLAYGAIN_ALBUM_PEAK')[0])
elif _audio.get('replaygain_album_peak'):
_rgpeak = float(_audio.get('replaygain_album_peak')[0])
else:
_rgpeak = None
else: else:
_rggain = None if _audio.get('REPLAYGAIN_TRACK_GAIN'):
if _audio.get('REPLAYGAIN_ALBUM_PEAK'): _rggain = float(_audio.get('REPLAYGAIN_TRACK_GAIN')[0][:-3])
_rgpeak = float(_audio.get('REPLAYGAIN_ALBUM_PEAK')[0]) elif _audio.get('replaygain_track_gain'):
elif _audio.get('replaygain_album_peak'): _rggain = float(_audio.get('replaygain_track_gain')[0][:-3])
_rgpeak = float(_audio.get('replaygain_album_peak')[0]) else:
else: _rggain = None
_rgpeak = None if _audio.get('REPLAYGAIN_TRACK_PEAK'):
else: _rgpeak = float(_audio.get('REPLAYGAIN_TRACK_PEAK')[0])
if _audio.get('REPLAYGAIN_TRACK_GAIN'): elif _audio.get('replaygain_track_peak'):
_rggain = float(_audio.get('REPLAYGAIN_TRACK_GAIN')[0][:-3]) _rgpeak = float(_audio.get('replaygain_track_peak')[0])
elif _audio.get('replaygain_track_gain'): else:
_rggain = float(_audio.get('replaygain_track_gain')[0][:-3]) _rgpeak = None
else: except FLACNoHeaderError:
_rggain = None print(f"[{_file_s}] Not a FLAC file, skipping...")
if _audio.get('REPLAYGAIN_TRACK_PEAK'): _rggain, _rgpeak = None, None
_rgpeak = float(_audio.get('REPLAYGAIN_TRACK_PEAK')[0])
elif _audio.get('replaygain_track_peak'):
_rgpeak = float(_audio.get('replaygain_track_peak')[0])
else:
_rgpeak = None
# determine ffmpeg arguments # determine ffmpeg arguments
if args.bake and _rggain is not None: if args.bake and _rggain is not None:
_bake_args, _flac2pod_rg_tags = '-filter:a "volume=' + str(_rggain) + 'dB"', '' _bake_args, _flac2pod_rg_tags = '-filter:a "volume=' + str(_rggain) + 'dB"', ''