Merge branch 'master' of github.com:flyingrub/scdl
commit
29ee406bc0
23
scdl/scdl.py
23
scdl/scdl.py
|
@ -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)
|
||||
|
|
Loading…
Reference in New Issue