29
29
terminate_all_procs ,
30
30
verify_tools ,
31
31
check_and_install_deps ,
32
+ have ,
32
33
# File & Audio Logic
33
34
_sanitize_and_rename ,
34
35
_dedup_artist_in_filenames ,
35
36
join_via_wav_then_lame ,
37
+ validate_sample_rates ,
36
38
write_id3_tags_mutagen ,
37
39
# Playlist & Chapter Logic
38
40
write_playlist ,
@@ -355,14 +357,16 @@ def _progress(pct: int | None, status: str | None):
355
357
write_id3_tags_mutagen (downloaded_files , album_name , _log )
356
358
if options .dedup_artist :
357
359
downloaded_files = _dedup_artist_in_filenames (downloaded_files , _log )
360
+ if options .validate_sr :
361
+ validate_sample_rates (downloaded_files , options .sample_rate , _log )
358
362
if options .join :
359
363
_progress (85 , "Joining files..." )
360
364
joined_file = join_via_wav_then_lame (
361
365
files = downloaded_files ,
362
366
outdir = outdir ,
363
367
sr = options .sample_rate ,
364
368
br_kbps = options .bitrate ,
365
- join_name = "album_joined" ,
369
+ join_name = options . join_name ,
366
370
log = _log ,
367
371
shuffle = options .random_join ,
368
372
keep_temp = options .keep_temp_wavs ,
@@ -379,6 +383,24 @@ def _progress(pct: int | None, status: str | None):
379
383
outdir , downloaded_files , _log , "playlist" , options .playlist_format
380
384
)
381
385
386
+ if options .mp3gain :
387
+ _progress (95 , "Normalizing volume..." )
388
+ _log ("Applying MP3Gain normalization..." )
389
+ # Note: We need to import 'have' from the core for this to work
390
+ if have ("mp3gain" ):
391
+ files_to_normalize = (
392
+ [joined_file ]
393
+ if options .join and 'joined_file' in locals ()
394
+ else downloaded_files
395
+ )
396
+ for f in files_to_normalize :
397
+ try :
398
+ run_capture (["mp3gain" , "-r" , "-k" , "-p" , str (f )])
399
+ except Exception as e :
400
+ _log (f"mp3gain failed for { f .name } : { e } " )
401
+ else :
402
+ _log ("mp3gain not found, skipping normalization." )
403
+
382
404
_progress (100 , "Done" )
383
405
_log ("Run finished successfully." )
384
406
0 commit comments