diff --git a/deemix/api/deezer.py b/deemix/api/deezer.py index 82295d0..0db3d25 100755 --- a/deemix/api/deezer.py +++ b/deemix/api/deezer.py @@ -1,7 +1,6 @@ #!/usr/bin/env python3 import binascii import hashlib -from urllib.request import urlopen import blowfish import pyaes @@ -254,13 +253,10 @@ class Deezer: i += 1 def stream_track(self, track_id, url, stream): - response = urlopen(url) + request = requests.get(url, stream=True) cipher = blowfish.Cipher(str.encode(self._get_blowfish_key(str(track_id)))) i = 0 - while True: - chunk = response.read(2048) - if not chunk: - break + for chunk in request.iter_content(2048): if (i % 3) == 0 and len(chunk) == 2048: chunk = b"".join(cipher.decrypt_cbc(chunk, b"\x00\x01\x02\x03\x04\x05\x06\x07")) stream.write(chunk) diff --git a/deemix/app/downloader.py b/deemix/app/downloader.py index 0230c7d..269583b 100644 --- a/deemix/app/downloader.py +++ b/deemix/app/downloader.py @@ -4,8 +4,8 @@ from deemix.utils.taggers import tagID3, tagFLAC from deemix.utils.pathtemplates import generateFilename, generateFilepath, settingsRegexAlbum, settingsRegexArtist import os.path from os import makedirs -from urllib.request import urlopen -from urllib.error import HTTPError +from requests import get +from requests.exceptions import HTTPError from tempfile import gettempdir dz = Deezer() @@ -23,8 +23,8 @@ extensions = { 13: '.mp4' } -def getPreferredBitrare(filesize, bitrate): - bitrateFound = False; +def getPreferredBitrate(filesize, bitrate): + bitrateFound = False selectedFormat = 0 selectedFilesize = 0 if int(bitrate) == 9: @@ -253,7 +253,7 @@ def downloadTrackObj(trackAPI, settings, overwriteBitrate=False, extraTrack=None # Get the selected bitrate bitrate = overwriteBitrate if overwriteBitrate else settings['maxBitrate'] - (format, filesize) = getPreferredBitrare(track['filesize'], bitrate) + (format, filesize) = getPreferredBitrate(track['filesize'], bitrate) track['selectedFormat'] = format track['selectedFilesize'] = filesize track['album']['bitrate'] = format @@ -268,7 +268,7 @@ def downloadTrackObj(trackAPI, settings, overwriteBitrate=False, extraTrack=None if not os.path.isfile(track['album']['picPath']): with open(track['album']['picPath'], 'wb') as f: try: - f.write(urlopen(track['album']['picUrl']).read()) + f.write(get(track['album']['picUrl']).content) except HTTPError: track['album']['picPath'] = None diff --git a/requirements.txt b/requirements.txt index 39ed6e3..7a4433a 100644 --- a/requirements.txt +++ b/requirements.txt @@ -2,3 +2,4 @@ pyaes blowfish mutagen click +requests