Merge branch 'master' of github.com:flyingrub/scdl

master
flyingrub 2020-06-08 18:42:20 +02:00
commit 29ee406bc0
1 changed files with 16 additions and 7 deletions

View File

@ -402,7 +402,8 @@ def download_playlist(playlist):
for counter, track_raw in enumerate(playlist['tracks'], offset):
logger.debug(track_raw)
logger.info('Track n°{0}'.format(counter))
download_track(track_raw, playlist['title'], playlist_file)
playlist_info = {'title': playlist['title'], 'file': playlist_file, 'tracknumber': counter}
download_track(track_raw, playlist_info)
finally:
if not arguments['--no-playlist-folder']:
os.chdir('..')
@ -541,7 +542,7 @@ def download_hls_mp3(track, title):
return filename
def download_track(track, playlist_name=None, playlist_file=None):
def download_track(track, playlist_info=None):
"""
Downloads a track
"""
@ -556,6 +557,11 @@ def download_track(track, playlist_name=None, playlist_file=None):
logger.error('{0} is not streamable...'.format(title))
return
# Geoblocked track
if track['policy'] == 'BLOCK':
logger.error('{0} is not available in your location...\n'.format(title))
return
# Downloadable track
filename = None
if track['downloadable'] and track['has_downloads_left'] and not arguments['--onlymp3']:
@ -565,9 +571,9 @@ def download_track(track, playlist_name=None, playlist_file=None):
filename = download_hls_mp3(track, title)
# Add the track to the generated m3u playlist file
if playlist_file:
if playlist_info:
duration = math.floor(track['duration'] / 1000)
playlist_file.write(
playlist_info['file'].write(
'#EXTINF:{0},{1}{3}{2}{3}'.format(
duration, title, filename, os.linesep
)
@ -583,7 +589,7 @@ def download_track(track, playlist_name=None, playlist_file=None):
if filename.endswith('.mp3') or filename.endswith('.flac'):
try:
set_metadata(track, filename, playlist_name)
set_metadata(track, filename, playlist_info)
except Exception as e:
logger.error('Error trying to set the tags...')
logger.debug(e)
@ -675,7 +681,7 @@ def record_download_archive(track):
logger.debug(ioe)
def set_metadata(track, filename, album=None):
def set_metadata(track, filename, playlist_info=None):
"""
Sets the mp3 file metadata using the Python module Mutagen
"""
@ -709,10 +715,13 @@ def set_metadata(track, filename, album=None):
audio = mutagen.File(filename, easy=True)
audio['title'] = track['title']
audio['artist'] = track['artist']
if album: audio['album'] = album
if track['genre']: audio['genre'] = track['genre']
if track['permalink_url']: audio['website'] = track['permalink_url']
if track['date']: audio['date'] = track['date']
if playlist_info:
audio['album'] = playlist_info['title']
audio['tracknumber'] = str(playlist_info['tracknumber'])
audio.save()
a = mutagen.File(filename)