mirror of
https://github.com/KevinMidboe/spotify-downloader.git
synced 2025-10-29 18:00:15 +00:00
Add metadata test
This commit is contained in:
@@ -7,12 +7,11 @@ def song(input_song, output_song, avconv=False, verbose=False):
|
||||
output_song = output_song.encode('utf-8')
|
||||
print('Converting ' + input_song + ' to ' + output_song.split('.')[-1])
|
||||
if avconv:
|
||||
convert_with_avconv(input_song, output_song, verbose)
|
||||
exit_code = convert_with_avconv(input_song, output_song, verbose)
|
||||
else:
|
||||
convert_with_FFmpeg(input_song, output_song, verbose)
|
||||
os.remove('Music/' + input_song)
|
||||
return True
|
||||
return False
|
||||
exit_code = convert_with_FFmpeg(input_song, output_song, verbose)
|
||||
return exit_code
|
||||
return None
|
||||
|
||||
def convert_with_avconv(input_song, output_song, verbose):
|
||||
# different path for windows
|
||||
|
||||
@@ -30,14 +30,17 @@ def embed(music_file, meta_tags):
|
||||
music_file = music_file.encode('utf-8')
|
||||
if meta_tags is None:
|
||||
print('Could not find meta-tags')
|
||||
return None
|
||||
elif music_file.endswith('.m4a'):
|
||||
print('Fixing meta-tags')
|
||||
embed_m4a(music_file, meta_tags)
|
||||
return embed_m4a(music_file, meta_tags)
|
||||
return True
|
||||
elif music_file.endswith('.mp3'):
|
||||
print('Fixing meta-tags')
|
||||
embed_mp3(music_file, meta_tags)
|
||||
return embed_mp3(music_file, meta_tags)
|
||||
else:
|
||||
print('Cannot embed meta-tags into given output extension')
|
||||
return False
|
||||
|
||||
def embed_mp3(music_file, meta_tags):
|
||||
# EasyID3 is fun to use ;)
|
||||
@@ -69,6 +72,7 @@ def embed_mp3(music_file, meta_tags):
|
||||
audiofile["APIC"] = APIC(encoding=3, mime='image/jpeg', type=3, desc=u'Cover', data=albumart.read())
|
||||
albumart.close()
|
||||
audiofile.save(v2_version=3)
|
||||
return True
|
||||
|
||||
def embed_m4a(music_file, meta_tags):
|
||||
# Apple has specific tags - see mutagen docs -
|
||||
@@ -107,3 +111,4 @@ def embed_m4a(music_file, meta_tags):
|
||||
audiofile[tags['albumart']] = [ MP4Cover(albumart.read(), imageformat=MP4Cover.FORMAT_JPEG) ]
|
||||
albumart.close()
|
||||
audiofile.save()
|
||||
return True
|
||||
|
||||
@@ -254,6 +254,7 @@ def grab_single(raw_song, number=None):
|
||||
output_song,
|
||||
avconv=args.avconv,
|
||||
verbose=args.verbose)
|
||||
os.remove('Music/' + input_song)
|
||||
meta_tags = generate_metadata(raw_song)
|
||||
if not args.no_metadata:
|
||||
metadata.embed(output_song, meta_tags)
|
||||
|
||||
@@ -35,7 +35,8 @@ def test_download():
|
||||
assert download == expect_download
|
||||
|
||||
def test_convert():
|
||||
expect_convert = True
|
||||
# exit code None = success
|
||||
expect_convert = None
|
||||
content = spotdl.go_pafy(raw_song)
|
||||
music_file = spotdl.misc.generate_filename(content.title)
|
||||
music_file = spotdl.misc.fix_decoding(music_file)
|
||||
@@ -43,3 +44,13 @@ def test_convert():
|
||||
output_song = music_file + spotdl.args.output_ext
|
||||
convert = spotdl.convert.song(input_song, output_song)
|
||||
assert convert == expect_convert
|
||||
|
||||
def test_metadata():
|
||||
expect_metadata = True
|
||||
content = spotdl.go_pafy(raw_song)
|
||||
music_file = spotdl.misc.generate_filename(content.title)
|
||||
music_file = spotdl.misc.fix_decoding(music_file)
|
||||
output_song = music_file + spotdl.args.output_ext
|
||||
meta_tags = spotdl.generate_metadata(raw_song)
|
||||
metadata = spotdl.metadata.embed(output_song, meta_tags)
|
||||
assert metadata == expect_metadata
|
||||
Reference in New Issue
Block a user