Use the soundcloud title for original download

master
flyingrub 2018-01-24 14:01:15 +01:00
parent da72588ff6
commit ea7fd439d3
1 changed files with 13 additions and 13 deletions

View File

@ -403,9 +403,10 @@ def try_utime(path, filetime):
logger.warn("Cannot update utime of file") logger.warn("Cannot update utime of file")
def get_filename(track, title, is_original=False): def get_filename(track, original_filename=None):
invalid_chars = '\/:*?|<>"' invalid_chars = '\/:*?|<>"'
username = track['user']['username'] username = track['user']['username']
title = track['title'].encode('utf-8', 'ignore').decode('utf8')
if arguments['--addtofile']: if arguments['--addtofile']:
if username not in title and '-' not in title: if username not in title and '-' not in title:
@ -420,11 +421,12 @@ def get_filename(track, title, is_original=False):
title = str(int(ts)) + "_" + title title = str(int(ts)) + "_" + title
filename = title if is_original else title[:251] + ".mp3" ext = ".mp3"
if original_filename is not None:
original_filename.encode('utf-8', 'ignore').decode('utf8')
ext = os.path.splitext(original_filename)[1]
filename = title[:251] + ext.lower()
filename = ''.join(c for c in filename if c not in invalid_chars) filename = ''.join(c for c in filename if c not in invalid_chars)
filename.encode('utf-8', 'ignore').decode('utf8')
base, ext = os.path.splitext(filename)
filename = base + ext.lower()
return filename return filename
@ -453,16 +455,14 @@ def download_track(track, playlist_name=None, playlist_file=None):
) )
if r.status_code == 401: if r.status_code == 401:
logger.info('The original file has no download left.') logger.info('The original file has no download left.')
filename = get_filename(track, title) filename = get_filename(track)
else: else:
if r.headers.get('content-disposition'): d = r.headers.get('content-disposition')
d = r.headers['content-disposition'] filename = re.findall("filename=(.+)", d)[0][1:-1]
filename = re.findall("filename=(.+)", d)[0][1:-1] filename = get_filename(track, filename)
filename = get_filename(track, filename, True)
else:
filename = get_filename(track, title)
else: else:
filename = get_filename(track, title) filename = get_filename(track)
logger.debug("filename : {0}".format(filename)) logger.debug("filename : {0}".format(filename))
# Skip if file ID or filename already exists # Skip if file ID or filename already exists