Skip to content

Commit

Permalink
Спасибо Яндекс, что пофиксили свой бэк. "randomTrash" RIP.
Browse files Browse the repository at this point in the history
Фикс загрузки треков (#25).
Загрузка AAC временно недоступна.
  • Loading branch information
MarshalX committed Sep 17, 2019
1 parent 5761f3f commit 1c8f1f4
Show file tree
Hide file tree
Showing 3 changed files with 10 additions and 11 deletions.
2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ def requirements():

with open('README.rst', 'r', encoding='utf-8') as f:
setup(name='yandex-music',
version='0.0.11',
version='0.0.12',
author='Il`ya Semyonov',
author_email='Ilya@marshal.by',
license='LGPLv3',
Expand Down
6 changes: 5 additions & 1 deletion yandex_music/download_info.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
from hashlib import md5
import xml.dom.minidom as minidom

from yandex_music import YandexMusicObject
Expand Down Expand Up @@ -70,8 +71,11 @@ def get_direct_link(self):
host = self._get_text_node_data(doc.getElementsByTagName('host'))
path = self._get_text_node_data(doc.getElementsByTagName('path'))
ts = self._get_text_node_data(doc.getElementsByTagName('ts'))
s = self._get_text_node_data(doc.getElementsByTagName('s'))
sign = md5(('XGRlBW9FXlekgbPrRHuSiA' + path[1::] + s).encode('utf-8')).hexdigest()
# TODO sign для AAC кодека

self.direct_link = f'https://{host}/get-{self.codec}/randomTrash/{ts}{path}'
self.direct_link = f'https://{host}/get-{self.codec}/{sign}/{ts}{path}'

return self.direct_link

Expand Down
13 changes: 4 additions & 9 deletions yandex_music/utils/request.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,7 @@

USER_AGENT = 'Yandex-Music-API'
HEADERS = {
'X-Yandex-Music-Client': 'WindowsPhone/3.17',
'User-Agent': 'Windows 10',
# 'X-Yandex-Music-Client': 'Yandex-Music-API',
# 'User-Agent': 'Yandex-Music-API',
'Connection': 'Keep-Alive'
'X-Yandex-Music-Client': 'WindowsPhone/3.20',
}


Expand Down Expand Up @@ -84,7 +80,7 @@ def _request_wrapper(self, *args, **kwargs):
if 'headers' not in kwargs:
kwargs['headers'] = {}

kwargs['headers']['user-agent'] = USER_AGENT
kwargs['headers']['User-Agent'] = USER_AGENT

try:
resp = requests.request(*args, **kwargs)
Expand Down Expand Up @@ -122,9 +118,8 @@ def post(self, url, data=None, timeout=5, *args, **kwargs):

return self._parse(result.content).result

def retrieve(self, url, params=None, timeout=5, *args, **kwargs):
return self._request_wrapper('GET', url, params=params, headers=self.headers, timeout=timeout,
*args, **kwargs)
def retrieve(self, url, timeout=5, *args, **kwargs):
return self._request_wrapper('GET', url, timeout=timeout, *args, **kwargs)

def download(self, url, filename, timeout=5, *args, **kwargs):
result = self.retrieve(url, timeout=timeout, *args, *kwargs)
Expand Down

0 comments on commit 1c8f1f4

Please sign in to comment.