Removed filesize as it's useless now
Fixed title whitespace and version repetition
This commit is contained in:
parent
203f0c9b7e
commit
0e354144ef
|
@ -44,7 +44,7 @@ def stream_track(dz, track, stream, trackAPI, queueItem, interface=None):
|
||||||
return stream_track(dz, track, stream, trackAPI, queueItem, interface)
|
return stream_track(dz, track, stream, trackAPI, queueItem, interface)
|
||||||
request.raise_for_status()
|
request.raise_for_status()
|
||||||
blowfish_key = str.encode(dz._get_blowfish_key(str(track['id'])))
|
blowfish_key = str.encode(dz._get_blowfish_key(str(track['id'])))
|
||||||
complete = track['selectedFilesize']
|
complete = int(request.headers["Content-Length"])
|
||||||
chunkLength = 0
|
chunkLength = 0
|
||||||
percentage = 0
|
percentage = 0
|
||||||
i = 0
|
i = 0
|
||||||
|
@ -104,38 +104,31 @@ def getPreferredBitrate(dz, track, bitrate, fallback=True):
|
||||||
if not fallback:
|
if not fallback:
|
||||||
formats = {9: 'flac', 3: 'mp3_320', 1: 'mp3_128', 15: '360_hq', 14: '360_mq', 13: '360_lq'}
|
formats = {9: 'flac', 3: 'mp3_320', 1: 'mp3_128', 15: '360_hq', 14: '360_mq', 13: '360_lq'}
|
||||||
request = get(dz.get_track_stream_url(track['id'], track['MD5'], track['mediaVersion'], bitrate))
|
request = get(dz.get_track_stream_url(track['id'], track['MD5'], track['mediaVersion'], bitrate))
|
||||||
filesize = request.headers["Content-Length"]
|
if request.headers["Content-Length"] != "0":
|
||||||
if filesize != "0":
|
return int(bitrate)
|
||||||
return (int(bitrate), filesize[formats[int(bitrate)]])
|
|
||||||
else:
|
else:
|
||||||
return (-100, 0)
|
return -100
|
||||||
if int(bitrate) in [13, 14, 15]:
|
if int(bitrate) in [13, 14, 15]:
|
||||||
formats = {'360_hq': 15, '360_mq': 14, '360_lq': 13}
|
formats = {'360_hq': 15, '360_mq': 14, '360_lq': 13}
|
||||||
selectedFormat = -200
|
selectedFormat = -200
|
||||||
selectedFilesize = 0
|
|
||||||
for format, formatNum in formats.items():
|
for format, formatNum in formats.items():
|
||||||
if formatNum <= int(bitrate):
|
if formatNum <= int(bitrate):
|
||||||
request = get(dz.get_track_stream_url(track['id'], track['MD5'], track['mediaVersion'], formatNum))
|
request = get(dz.get_track_stream_url(track['id'], track['MD5'], track['mediaVersion'], formatNum))
|
||||||
filesize = request.headers["Content-Length"]
|
if request.headers["Content-Length"] == "0":
|
||||||
if filesize == "0":
|
|
||||||
continue
|
continue
|
||||||
selectedFormat = formatNum
|
selectedFormat = formatNum
|
||||||
selectedFilesize = int(filesize)
|
|
||||||
break
|
break
|
||||||
else:
|
else:
|
||||||
formats = {'flac': 9, 'mp3_320': 3, 'mp3_128': 1}
|
formats = {'flac': 9, 'mp3_320': 3, 'mp3_128': 1}
|
||||||
selectedFormat = 8
|
selectedFormat = 8
|
||||||
selectedFilesize = track['filesize']['default']
|
|
||||||
for format, formatNum in formats.items():
|
for format, formatNum in formats.items():
|
||||||
if formatNum <= int(bitrate):
|
if formatNum <= int(bitrate):
|
||||||
request = get(dz.get_track_stream_url(track['id'], track['MD5'], track['mediaVersion'], formatNum))
|
request = get(dz.get_track_stream_url(track['id'], track['MD5'], track['mediaVersion'], formatNum))
|
||||||
filesize = request.headers["Content-Length"]
|
if request.headers["Content-Length"] == "0":
|
||||||
if filesize == "0":
|
|
||||||
continue
|
continue
|
||||||
selectedFormat = formatNum
|
selectedFormat = formatNum
|
||||||
selectedFilesize = int(filesize)
|
|
||||||
break
|
break
|
||||||
return (selectedFormat, selectedFilesize)
|
return selectedFormat
|
||||||
|
|
||||||
|
|
||||||
def parseEssentialTrackData(track, trackAPI):
|
def parseEssentialTrackData(track, trackAPI):
|
||||||
|
@ -147,14 +140,6 @@ def parseEssentialTrackData(track, trackAPI):
|
||||||
track['fallbackId'] = trackAPI['FALLBACK']['SNG_ID']
|
track['fallbackId'] = trackAPI['FALLBACK']['SNG_ID']
|
||||||
else:
|
else:
|
||||||
track['fallbackId'] = 0
|
track['fallbackId'] = 0
|
||||||
track['filesize'] = {}
|
|
||||||
track['filesize']['default'] = int(trackAPI['FILESIZE']) if 'FILESIZE' in trackAPI else 0
|
|
||||||
track['filesize']['mp3_128'] = int(trackAPI['FILESIZE_MP3_128']) if 'FILESIZE_MP3_128' in trackAPI else 0
|
|
||||||
track['filesize']['mp3_320'] = int(trackAPI['FILESIZE_MP3_320']) if 'FILESIZE_MP3_320' in trackAPI else 0
|
|
||||||
track['filesize']['flac'] = int(trackAPI['FILESIZE_FLAC']) if 'FILESIZE_FLAC' in trackAPI else 0
|
|
||||||
track['filesize']['360_lq'] = int(trackAPI['FILESIZE_MP4_RA1']) if 'FILESIZE_MP4_RA1' in trackAPI else 0
|
|
||||||
track['filesize']['360_mq'] = int(trackAPI['FILESIZE_MP4_RA2']) if 'FILESIZE_MP4_RA2' in trackAPI else 0
|
|
||||||
track['filesize']['360_hq'] = int(trackAPI['FILESIZE_MP4_RA3']) if 'FILESIZE_MP4_RA3' in trackAPI else 0
|
|
||||||
|
|
||||||
return track
|
return track
|
||||||
|
|
||||||
|
@ -164,14 +149,13 @@ def getTrackData(dz, trackAPI_gw, trackAPI=None, albumAPI_gw=None, albumAPI=None
|
||||||
trackAPI_gw['MD5_ORIGIN'] = dz.get_track_md5(trackAPI_gw['SNG_ID'])
|
trackAPI_gw['MD5_ORIGIN'] = dz.get_track_md5(trackAPI_gw['SNG_ID'])
|
||||||
|
|
||||||
track = {}
|
track = {}
|
||||||
track['title'] = trackAPI_gw['SNG_TITLE']
|
track['title'] = trackAPI_gw['SNG_TITLE'].strip()
|
||||||
if 'VERSION' in trackAPI_gw and trackAPI_gw['VERSION']:
|
if 'VERSION' in trackAPI_gw and trackAPI_gw['VERSION'] and not trackAPI_gw['VERSION'] in trackAPI_gw['SNG_TITLE']:
|
||||||
track['title'] += " " + trackAPI_gw['VERSION']
|
track['title'] += " " + trackAPI_gw['VERSION'].strip()
|
||||||
|
|
||||||
track = parseEssentialTrackData(track, trackAPI_gw)
|
track = parseEssentialTrackData(track, trackAPI_gw)
|
||||||
|
|
||||||
if int(track['id']) < 0:
|
if int(track['id']) < 0:
|
||||||
track['filesize'] = trackAPI_gw['FILESIZE']
|
|
||||||
track['album'] = {}
|
track['album'] = {}
|
||||||
track['album']['id'] = 0
|
track['album']['id'] = 0
|
||||||
track['album']['title'] = trackAPI_gw['ALB_TITLE']
|
track['album']['title'] = trackAPI_gw['ALB_TITLE']
|
||||||
|
@ -466,7 +450,7 @@ def downloadTrackObj(dz, trackAPI, settings, bitrate, queueItem, extraTrack=None
|
||||||
return result
|
return result
|
||||||
|
|
||||||
# Get the selected bitrate
|
# Get the selected bitrate
|
||||||
(format, filesize) = getPreferredBitrate(dz, track, bitrate, settings['fallbackBitrate'])
|
format = getPreferredBitrate(dz, track, bitrate, settings['fallbackBitrate'])
|
||||||
if format == -100:
|
if format == -100:
|
||||||
print("ERROR: Track not found at desired bitrate. Enable fallback to lower bitrates to fix this issue.")
|
print("ERROR: Track not found at desired bitrate. Enable fallback to lower bitrates to fix this issue.")
|
||||||
result['error'] = {
|
result['error'] = {
|
||||||
|
@ -490,7 +474,6 @@ def downloadTrackObj(dz, trackAPI, settings, bitrate, queueItem, extraTrack=None
|
||||||
'error': "Track is not available in Reality Audio 360."})
|
'error': "Track is not available in Reality Audio 360."})
|
||||||
return result
|
return result
|
||||||
track['selectedFormat'] = format
|
track['selectedFormat'] = format
|
||||||
track['selectedFilesize'] = filesize
|
|
||||||
track['dateString'] = formatDate(track['date'], settings['dateFormat'])
|
track['dateString'] = formatDate(track['date'], settings['dateFormat'])
|
||||||
if settings['tags']['savePlaylistAsCompilation'] and "_EXTRA_PLAYLIST" in trackAPI:
|
if settings['tags']['savePlaylistAsCompilation'] and "_EXTRA_PLAYLIST" in trackAPI:
|
||||||
if 'dzcdn.net' in trackAPI["_EXTRA_PLAYLIST"]['picture_small']:
|
if 'dzcdn.net' in trackAPI["_EXTRA_PLAYLIST"]['picture_small']:
|
||||||
|
@ -622,11 +605,7 @@ def downloadTrackObj(dz, trackAPI, settings, bitrate, queueItem, extraTrack=None
|
||||||
return result
|
return result
|
||||||
except HTTPError:
|
except HTTPError:
|
||||||
remove(writepath)
|
remove(writepath)
|
||||||
if track['selectedFormat'] == 9 and settings['fallbackBitrate']:
|
if track['fallbackId'] != 0:
|
||||||
print("Track not available in flac, trying mp3")
|
|
||||||
track['filesize']['flac'] = 0
|
|
||||||
return downloadTrackObj(dz, trackAPI, settings, bitrate, queueItem, extraTrack=track, interface=interface)
|
|
||||||
elif track['fallbackId'] != 0:
|
|
||||||
print("Track not available, using fallback id")
|
print("Track not available, using fallback id")
|
||||||
trackNew = dz.get_track_gw(track['fallbackId'])
|
trackNew = dz.get_track_gw(track['fallbackId'])
|
||||||
if not 'MD5_ORIGIN' in trackNew:
|
if not 'MD5_ORIGIN' in trackNew:
|
||||||
|
|
Loading…
Reference in New Issue