mirror of
https://github.com/alexta69/metube.git
synced 2026-09-21 21:45:04 +00:00
Merge PR #1031: conservative music metadata enrichment for audio downloads
Adds MusicMetadataPreProcessor (app/music_metadata.py), a pre_process postprocessor that enriches the info dict using only extractor-owned fields: track-number/total resolution, album-title fallback, and square-thumbnail preference. Track numbers and album flow into files through yt-dlp's existing FFmpegMetadata embedding, so no per-format tag-writing code and no new dependency. The earlier mutagen writer and its download-failing PostProcessingError path were dropped per review. Co-authored-by: jahruz67 <jahruz67@users.noreply.github.com>
This commit is contained in:
@@ -73,6 +73,7 @@ import ytdl
|
||||
from ytdl import (
|
||||
Download,
|
||||
DownloadInfo,
|
||||
MusicMetadataPreProcessor,
|
||||
_compact_persisted_entry,
|
||||
_convert_srt_to_txt_file,
|
||||
_AlbumArtistPostProcessor,
|
||||
@@ -201,9 +202,15 @@ class AlbumArtistRegistrationTests(unittest.TestCase):
|
||||
result = download._make_youtube_dl({'quiet': True})
|
||||
|
||||
self.assertIs(result, fake_ydl)
|
||||
postprocessor, = fake_ydl.add_post_processor.call_args.args
|
||||
album_artist_call = fake_ydl.add_post_processor.call_args_list[0]
|
||||
postprocessor, = album_artist_call.args
|
||||
self.assertIsInstance(postprocessor, _AlbumArtistPostProcessor)
|
||||
self.assertEqual(fake_ydl.add_post_processor.call_args.kwargs, {'when': 'pre_process'})
|
||||
self.assertEqual(album_artist_call.kwargs, {'when': 'pre_process'})
|
||||
metadata_pre_call = fake_ydl.add_post_processor.call_args_list[1]
|
||||
metadata_preprocessor, = metadata_pre_call.args
|
||||
self.assertIsInstance(metadata_preprocessor, MusicMetadataPreProcessor)
|
||||
self.assertEqual(metadata_pre_call.kwargs, {'when': 'pre_process'})
|
||||
self.assertEqual(fake_ydl.add_post_processor.call_count, 2)
|
||||
|
||||
def test_video_download_does_not_register_postprocessor(self):
|
||||
download = _make_test_download()
|
||||
|
||||
Reference in New Issue
Block a user