Open ArtemBay opened 3 weeks ago
Пример запроса на питоне с генерацией подписи
#!/usr/bin/python3
from datetime import datetime
import hmac
import hashlib
import base64
import requests
SECRET = 'kzqU4XhfCaY6B6JTHODeq5'
TRACK_ID = '117708948'
TIMESTAMP = int(datetime.now().timestamp())
hmac_sign = hmac.new(SECRET.encode('utf-8'), f'{TIMESTAMP}{TRACK_ID}losslessflacaache-aacmp3raw'.encode('utf-8'), hashlib.sha256)
sign = base64.b64encode(hmac_sign.digest()).decode('utf-8')[:-1]
print(TIMESTAMP)
print(sign)
print('-' * 15)
p = {'ts': TIMESTAMP, 'trackId': TRACK_ID, 'quality': 'lossless', 'codecs': 'flac,aac,he-aac,mp3', 'transports': 'raw', 'sign': sign}
h = {
'Authorization': 'TOP SECRET',
'X-Yandex-Music-Client': 'YandexMusicDesktopAppWindows/5.13.2'
}
resp = requests.get(f'https://api.music.yandex.net/get-file-info', params=p, headers=h)
print(resp.text)
Значение в переменной SECRET статично, но не исключаю факт что оно может со временем измениться. Получалось кровью и потом из десктопного приложения ЯМ
OAuth в токене обязателен. Если использовать токен который получается этим способом, то хедер авторизации должен выглядеть вот так 'Authorization': 'OAuth AQAAAAAQ###############################'
OAuth в токене обязателен. Если использовать токен который получается этим способом, то хедер авторизации должен выглядеть вот так
'Authorization': 'OAuth AQAAAAAQ###############################'
Привет) а если не секрет, какой прогой трафик слушал?
OAuth в токене обязателен. Если использовать токен который получается этим способом, то хедер авторизации должен выглядеть вот так
'Authorization': 'OAuth AQAAAAAQ###############################'
Привет) а если не секрет, какой прогой трафик слушал?
mitm proxy, но вообще просто через дев тулсы в десктопной версии яндекс музыки (которая новая на электроне). Оттуда я все штуки и вытянул типа секрета и принципа создания подписи
Эндпоинт
Параметры
GET-параметры
Ответ
Массив из объектов
Пример запроса
Запрос
Ответ
Ответ