marshalx / yandex-music-api Goto Github PK
View Code? Open in Web Editor NEWНеофициальная Python библиотека для работы с API сервиса Яндекс.Музыка
Home Page: https://yandex-music.rtfd.io
License: GNU Lesser General Public License v3.0
Неофициальная Python библиотека для работы с API сервиса Яндекс.Музыка
Home Page: https://yandex-music.rtfd.io
License: GNU Lesser General Public License v3.0
Необходимо полностью задокументировать класс PlayContextsData. Пример правильно задокументированного класса: cover.py. Спасибо за Ваш вклад!
Необходимо полностью задокументировать класс TrackPosition. Пример правильно задокументированного класса: cover.py. Спасибо за Ваш вклад!
Добрый день. Спасибо за Ваш труд, Илья.
Не могли бы Вы помочь в исправлении получения прямой ссылки на mp3? Теперь в пути
f'https://{host}/get-{self.codec}/randomTrash/{ts}{path}'
randomTrash изменён на генерируемое значение, но как его получить не совсем понятно :(
По старой маске 400-ая ошибка.
Всё будет работать даже без авторизации. Вроде как достаточно обернуть инициализацию Client здесь и добавить обработку исключений где идёт обращение к self.account
.
Необходимо полностью задокументировать класс PlayContext. Пример правильно задокументированного класса: cover.py. Спасибо за Ваш вклад!
yandex-music-api/yandex_music/client.py
Line 12 in 1a6d829
не хорошо так хранить, мало ли забыли
Необходимо полностью задокументировать класс TrackShortOld. Пример правильно задокументированного класса: cover.py. Спасибо за Ваш вклад!
Пример URL'a: https://api.music.yandex.net/albums/3663639/with-tracks
Пример JSON ответа: https://codepaste.ml/074c6829/
Необходимо полностью задокументировать класс YandexMusicObject. Пример правильно задокументированного класса: cover.py. Спасибо за Ваш вклад!
2019-07-13 02:25:07,855 - urllib3.connectionpool - DEBUG - Starting new HTTPS connection (1): oauth.yandex.ru:443
***/venv/lib/python3.7/site-packages/urllib3/connectionpool.py:851: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings
InsecureRequestWarning)
2019-07-13 02:25:08,351 - urllib3.connectionpool - DEBUG - https://oauth.yandex.ru:443 "POST /token HTTP/1.1" 200 125
2019-07-13 02:25:08,364 - urllib3.connectionpool - DEBUG - Starting new HTTPS connection (1): api.music.yandex.net:443
***/venv/lib/python3.7/site-packages/urllib3/connectionpool.py:851: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings
InsecureRequestWarning)
2019-07-13 02:25:09,168 - urllib3.connectionpool - DEBUG - https://api.music.yandex.net:443 "GET /account/status HTTP/1.1" 200 None
Traceback (most recent call last):
File "***/PycharmProjects/RadioListener_CLI/listener.py", line 42, in <module>
muscle = Client(db["username"], db["password"])
File "***/venv/lib/python3.7/site-packages/yandex_music/client.py", line 67, in __init__
self.account = self.account_status().account
File "***/PycharmProjects/RadioListener_CLI/venv/lib/python3.7/site-packages/yandex_music/client.py", line 159, in account_status
return Status.de_json(result, self)
File "***/PycharmProjects/RadioListener_CLI/venv/lib/python3.7/site-packages/yandex_music/status/status.py", line 94, in de_json
data['account'] = Account.de_json(data.get('account'), client)
File "***/PycharmProjects/RadioListener_CLI/venv/lib/python3.7/site-packages/yandex_music/status/account.py", line 104, in de_json
return cls(client=client, **data)
TypeError: __init__() missing 1 required positional argument: 'birthday'
Необходимо полностью задокументировать класс PlaylistsLikes. Пример правильно задокументированного класса: cover.py. Спасибо за Ваш вклад!
Необходимо полностью задокументировать класс InvalidToken. Пример правильно задокументированного класса: cover.py. Спасибо за Ваш вклад!
Необходимо полностью задокументировать класс PlayCounter. Пример правильно задокументированного класса: cover.py. Спасибо за Ваш вклад!
После добавление декоратора логирования sphinx теперь не знает о настоящих сигнатурах методов. В гугле предлагают руками указать валидные сигнатуы в .rst файле. Мне этот способ не подходит. У других видел что работает и так. Надо найти как это сделать.
Необходимо полностью задокументировать класс BadRequest. Пример правильно задокументированного класса: cover.py. Спасибо за Ваш вклад!
В коде уже давно находится следующее TODO: https://github.com/MarshalX/yandex-music-api/blob/master/yandex_music/artist/artist.py#L69
Без понятия в котором методе вернулось данное поле у артиста, слишком давно было, не записал.
Помощь приветствуется!
Необходимо полностью задокументировать класс YandexMusicError. Пример правильно задокументированного класса: cover.py. Спасибо за Ваш вклад!
Не смог разобраться, как получить список любимых треков (тех, которым я ставил лайки). Есть ли на данный момент способ получить эти данные?
Только что был замечен метод, который вызывается при переходе на артиста, например, из поисковой выдачи или просто списка артисов приложения "Яндекс.Музыка" из Microsoft Store.
Пример URL'a запроса: https://api.music.yandex.net/artists/1613497/brief-info
Ответ внушительный (огромная простыня json'a): https://codepaste.ml/28832948/
Если есть желание помочь - оберните этот метод, напишите класс(ы) для result'a (большинство уже готово).
Вылезает следующая ошибка:
C:\ProgramData\Anaconda3\lib\site-packages\yandex_music\client.py in __init__(self, username, password, token, base_url, oauth_url, request)
65 self.request.set_authorization(self.token)
66
---> 67 self.account = self.account_status().account
68
69 @classmethod
C:\ProgramData\Anaconda3\lib\site-packages\yandex_music\client.py in account_status(self, timeout, *args, **kwargs)
160 result = self._request.get(url, timeout=timeout, *args, **kwargs)
161
--> 162 return Status.de_json(result, self)
163
164 def settings(self, timeout=None, *args, **kwargs):
C:\ProgramData\Anaconda3\lib\site-packages\yandex_music\status\status.py in de_json(cls, data, client)
94 data['account'] = Account.de_json(data.get('account'), client)
95 data['permissions'] = Permissions.de_json(data.get('permissions'), client)
---> 96 data['subscription'] = Subscription.de_json(data.get('subscription'), client)
97 data['plus'] = Plus.de_json(data.get('plus'), client)
98
C:\ProgramData\Anaconda3\lib\site-packages\yandex_music\status\subscription.py in de_json(cls, data, client)
58 data = super(Subscription, cls).de_json(data, client)
59 from yandex_music import AutoRenewable
---> 60 data['auto_renewable'] = AutoRenewable.de_list(data.get('auto_renewable'), client)
61
62 return cls(client=client, **data)
C:\ProgramData\Anaconda3\lib\site-packages\yandex_music\status\auto_renewable.py in de_list(cls, data, client)
89 auto_renewables = list()
90 for auto_renewable in data:
---> 91 auto_renewables.append(cls.de_json(auto_renewable, client))
92
93 return auto_renewables
C:\ProgramData\Anaconda3\lib\site-packages\yandex_music\status\auto_renewable.py in de_json(cls, data, client)
70 data['product'] = Product.de_json(data.get('product'), client)
71
---> 72 return cls(client=client, **data)
73
74 @classmethod
TypeError: __init__() missing 1 required positional argument: 'order_id'
Необходимо полностью задокументировать класс AlbumsLikes. Пример правильно задокументированного класса: cover.py. Спасибо за Ваш вклад!
Выводить в дебаг вход и выход методов клиента.
Необходимо полностью задокументировать класс BlockEntity. Пример правильно задокументированного класса: cover.py. Спасибо за Ваш вклад!
Необходимо полностью задокументировать класс NetworkError. Пример правильно задокументированного класса: cover.py. Спасибо за Ваш вклад!
Папка с примерами, содержит в себе только ReadMe и License. Может стоит туда что-нибудь добавить? Учитывая, что в основном ReadMe рекомендуется смотреть на эти самые примеры.
Какой-то герой когда-нибудь разберется где какой ID использовать. Просто track.id
или track.id + ":" + track.album_id
Была идея отойти от их API и создать собственный класс ID поддерживающие разные варианты. TODO тут: https://github.com/MarshalX/yandex-music-api/blob/master/yandex_music/utils/difference.py#L39
Необходимо полностью задокументировать класс Unauthorized. Пример правильно задокументированного класса: cover.py. Спасибо за Ваш вклад!
Возможно ли сделать интерфейс, для получения и обновления списка треков какого-либо радио? Или же получения трека, который надо играть в данный момент?
Необходимо полностью задокументировать класс PersonalPlaylistsData. Пример правильно задокументированного класса: cover.py. Спасибо за Ваш вклад!
Что я должен сделать, чтобы получить ссылку на трек по его ID?
Всякие .like() и .dislike(), .add_to_playlist() у треков, альмобов, плейлистов и т.д. и т.п.
Необходимо сформировать список таких шорткатов.
Необходимо полностью задокументировать класс PlaylistId. Пример правильно задокументированного класса: cover.py. Спасибо за Ваш вклад!
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.