Bulat Shelkhonov 1c8619d38b Добавлена статистика прослушиваний исполнителя за месяц (#660) 2 months ago
..
_static 72a7489a63 исправлено отображение toc в мобильной версии документации; 2 years ago
templates 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
changes.md 693a7fe2d2 CHANGES теперь в формате MD вместо RST 2 years ago
client.md 630e245765 добавлена поддержка MD файлов для документации; изменено оглавление документации; README файл теперь не rst, а md; 2 years ago
client_async.md 630e245765 добавлена поддержка MD файлов для документации; изменено оглавление документации; README файл теперь не rst, а md; 2 years ago
code_of_conduct.md 630e245765 добавлена поддержка MD файлов для документации; изменено оглавление документации; README файл теперь не rst, а md; 2 years ago
conf.py d9216d18ef Рефакторинг моделей; улучшена аннотация типов (#658) 2 months ago
contributing.md 630e245765 добавлена поддержка MD файлов для документации; изменено оглавление документации; README файл теперь не rst, а md; 2 years ago
examples.chart.md d55a953462 Добавлен раздел "Примеры" в документацию 1 year ago
examples.daily_playlist_updater.md d55a953462 Добавлен раздел "Примеры" в документацию 1 year ago
examples.get_album_with_tracks.md d55a953462 Добавлен раздел "Примеры" в документацию 1 year ago
examples.like_and_dislike.md d55a953462 Добавлен раздел "Примеры" в документацию 1 year ago
examples.lyrics_playing_track.md d55a953462 Добавлен раздел "Примеры" в документацию 1 year ago
examples.md d55a953462 Добавлен раздел "Примеры" в документацию 1 year ago
examples.proxy.md d55a953462 Добавлен раздел "Примеры" в документацию 1 year ago
examples.search.md d55a953462 Добавлен раздел "Примеры" в документацию 1 year ago
index.rst 102217e5e9 Обновлена структура документации (#633) 11 months ago
licence.md 8a9c46376e README файл доступен как подмен в документации. Добавлена страница с лицензией в документацию 1 year ago
module.md 630e245765 добавлена поддержка MD файлов для документации; изменено оглавление документации; README файл теперь не rst, а md; 2 years ago
modules.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
readme.content.md 6c38646b21 Прекращение поддержки Python 3.7 (#659) 2 months ago
readme.md 6c38646b21 Прекращение поддержки Python 3.7 (#659) 2 months ago
security.md 630e245765 добавлена поддержка MD файлов для документации; изменено оглавление документации; README файл теперь не rst, а md; 2 years ago
token.md f445101a5a Добавлена страница в документацию с получением токена; обновлен год в копирайте; исправлен логотип jb в доке. 1 year ago
yandex_music.account.account.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.account.alert.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.account.alert_button.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.account.auto_renewable.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.account.deactivation.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.account.non_auto_renewable.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.account.operator.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.account.passport_phone.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.account.permissions.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.account.plus.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.account.price.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.account.product.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.account.renewable_remainder.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.account.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.account.status.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.account.subscription.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.account.user_settings.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.album.album.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.album.deprecation.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.album.label.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.album.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.album.track_position.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.artist.artist.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.artist.artist_albums.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.artist.artist_tracks.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.artist.brief_info.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.artist.counts.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.artist.description.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.artist.link.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.artist.ratings.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.artist.rst 1c8619d38b Добавлена статистика прослушиваний исполнителя за месяц (#660) 2 months ago
yandex_music.artist.stats.rst 1c8619d38b Добавлена статистика прослушиваний исполнителя за месяц (#660) 2 months ago
yandex_music.artist.vinyl.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.base.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.client.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.client_async.rst 30d2ef594d обновлена документация 2 years ago
yandex_music.cover.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.download_info.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.exceptions.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.experiments.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.feed.album_event.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.feed.artist_event.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.feed.day.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.feed.event.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.feed.feed.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.feed.generated_playlist.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.feed.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.feed.track_with_ads.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.genre.genre.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.genre.images.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.genre.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.genre.title.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.icon.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.invocation_info.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.landing.block.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.landing.block_entity.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.landing.chart.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.landing.chart_info.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.landing.chart_info_menu.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.landing.chart_info_menu_item.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.landing.chart_item.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.landing.landing.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.landing.landing_list.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.landing.mix_link.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.landing.personal_playlists_data.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.landing.play_context.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.landing.play_contexts_data.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.landing.promotion.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.landing.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.landing.track_id.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.landing.track_short_old.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.like.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.pager.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.permission_alerts.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.playlist.brand.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.playlist.case_forms.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.playlist.contest.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.playlist.custom_wave.rst a152e4dc49 Issues/#509 Новые поля (#576) 1 year ago
yandex_music.playlist.made_for.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.playlist.open_graph_data.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.playlist.play_counter.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.playlist.playlist.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.playlist.playlist_absence.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.playlist.playlist_id.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.playlist.playlist_recommendation.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.playlist.rst a152e4dc49 Issues/#509 Новые поля (#576) 1 year ago
yandex_music.playlist.tag.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.playlist.tag_result.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.playlist.user.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.promo_code_status.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.queue.context.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.queue.queue.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.queue.queue_item.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.queue.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.rotor.ad_params.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.rotor.dashboard.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.rotor.discrete_scale.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.rotor.enum.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.rotor.id.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.rotor.restrictions.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.rotor.rotor_settings.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.rotor.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.rotor.sequence.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.rotor.station.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.rotor.station_data.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.rotor.station_result.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.rotor.station_tracks_result.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.rotor.value.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.rst 30d2ef594d обновлена документация 2 years ago
yandex_music.search.best.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.search.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.search.search.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.search.search_result.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.search.suggestions.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.settings.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.shot.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.shot.shot.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.shot.shot_data.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.shot.shot_event.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.shot.shot_type.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.supplement.lyrics.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.supplement.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.supplement.supplement.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.supplement.video_supplement.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.track.licence_text_part.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.track.lyrics_info.rst a152e4dc49 Issues/#509 Новые поля (#576) 1 year ago
yandex_music.track.lyrics_major.rst 742d60d18c Обновление документации 2 years ago
yandex_music.track.major.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.track.meta_data.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.track.normalization.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.track.poetry_lover_match.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.track.r128.rst a152e4dc49 Issues/#509 Новые поля (#576) 1 year ago
yandex_music.track.rst a152e4dc49 Issues/#509 Новые поля (#576) 1 year ago
yandex_music.track.track.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.track.track_lyrics.rst 742d60d18c Обновление документации 2 years ago
yandex_music.track.tracks_similar.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.track_short.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.tracks_list.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.utils.convert_track_id.rst 742d60d18c Обновление документации 2 years ago
yandex_music.utils.difference.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.utils.request.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.utils.request_async.rst 30d2ef594d обновлена документация 2 years ago
yandex_music.utils.response.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago
yandex_music.utils.rst 742d60d18c Обновление документации 2 years ago
yandex_music.utils.sign_request.rst 742d60d18c Обновление документации 2 years ago
yandex_music.video.rst 6090c25e44 автогенерация rst файлов для пакета; 2 years ago

readme.content.md

Введение

Эта библиотека предоставляет Python интерфейс для никем незадокументированного и сделанного только для себя API Яндекс Музыки.

Она совместима с версиями Python 3.8+ и поддерживает работу как с синхронным, так и с асинхронным (asyncio) кодом.

В дополнение к реализации чистого API данная библиотека имеет ряд классов-обёрток — объектов высокого уровня, дабы сделать разработку клиентов и скриптов простой и понятной. Вся документация была написана с нуля исходя из логического анализа в ходе обратной разработки (reverse engineering) API.

Доступ к вашим данным Яндекс.Музыка

Задача по получению токена для доступа к данным лежит на плечах разработчиков, использующих данную библиотеку. О том как получить токен читайте в документации.

Установка

Вы можете установить или обновить Yandex Music API с помощью команды:

pip install -U yandex-music

Или вы можете установить из исходного кода с помощью команды:

git clone https://github.com/MarshalX/yandex-music-api
cd yandex-music-api
python setup.py install

Начало работы

Приступив к работе, первым делом необходимо создать экземпляр клиента.

Инициализация синхронного клиента:

from yandex_music import Client

client = Client()
client.init()

# или

client = Client().init()

Инициализация асинхронного клиента:

from yandex_music import ClientAsync

client = ClientAsync()
await client.init()

# или

client = await Client().init()

Вызов init() необходим для получения информации — упрощения будущих запросов.

Работа без авторизации ограничена. Так, например, для загрузки будут доступны только первые 30 секунд аудиофайла. Для понимания всех ограничений зайдите на сайт Яндекс.Музыка в режиме инкогнито и воспользуйтесь сервисом.

Для доступа к личным данным следует авторизоваться. Это осуществляется через токен аккаунта Яндекс.Музыка.

Авторизация:

from yandex_music import Client

client = Client('token').init()

После успешного создания клиента вы вольны в выборе необходимого метода из API. Все они доступны у объекта класса Client. Подробнее в методах клиента в документации.

Пример получения первого трека из плейлиста "Мне нравится" и его загрузки:

from yandex_music import Client

client = Client('token').init()
client.users_likes_tracks()[0].fetch_track().download('example.mp3')

В примере выше клиент получает список треков, которые были отмечены как понравившиеся. API возвращает объект TracksList, в котором содержится список с треками класса TrackShort. Данный класс содержит наиважнейшую информацию о треке и никаких подробностей, поэтому для получения полной версии трека со всей информацией необходимо обратиться к методу fetch_track(). Затем можно скачать трек методом download().

Пример получения треков по ID:

from yandex_music import Client

client = Client().init()
client.tracks(['10994777:1193829', '40133452:5206873', '48966383:6693286', '51385674:7163467'])

В качестве ID трека выступает его уникальный номер и номер альбома. Первым треком из примера является следующий трек:music.yandex.ru/album/1193829/track/10994777

Выполнение запросов с использованием прокси в синхронной версии:

from yandex_music.utils.request import Request
from yandex_music import Client

request = Request(proxy_url='socks5://user:password@host:port')
client = Client(request=request).init()

Примеры Proxy URL:

Больше примеров тут: proxies - advanced usage - requests

Выполнение запросов с использованием прокси в асинхронной версии:

from yandex_music.utils.request_async import Request
from yandex_music import ClientAsync

request = Request(proxy_url='http://user:pass@some.proxy.com')
client = await ClientAsync(request=request).init()

Socks прокси не поддерживаются в асинхронной версии.

Про поддерживаемые прокси тут: proxy support - advanced usage - aiohttp

Изучение по примерам

Вот несколько примеров для обзора. Даже если это не ваш подход к обучению, пожалуйста, возьмите и бегло просмотрите их.

Код примеров опубликован в открытом доступе, поэтому вы можете взять его и начать писать вокруг него свой.

Посетите эту страницу, чтобы изучить официальные примеры.

Особенности использования асинхронного клиента

При работе с асинхронной версией библиотеке стоит всегда помнить следующие особенности:

  • Клиент следует импортировать с названием ClientAsync, а не просто Client.
  • При использовании методов-сокращений нужно выбирать метод с суффиксом _async.

Пояснение ко второму пункту:

from yandex_music import ClientAsync

client = await ClientAsync('token').init()
liked_short_track = (await client.users_likes_tracks())[0]

# правильно
full_track = await liked_short_track.fetch_track_async()
await full_track.download_async()

# НЕПРАВИЛЬНО
full_track = await liked_short_track.fetch_track()
await full_track.download()

Логирование

Данная библиотека использует модуль logging. Чтобы настроить логирование на стандартный вывод, поместите в начало вашего скрипта следующий код:

import logging
logging.basicConfig(
    level=logging.DEBUG,
    format='%(asctime)s - %(name)s - %(levelname)s - %(message)s'
)

Вы также можете использовать логирование в вашем приложении, вызвав logging.getLogger() и установить уровень какой вы хотите:

logger = logging.getLogger()
logger.setLevel(logging.INFO)

Если вы хотите DEBUG логирование:

logger.setLevel(logging.DEBUG)

Получение помощи

Получить помощь можно несколькими путями:

Список изменений

Весь список изменений ведётся в файле CHANGES.md.

Реализации на других языках

Внесение своего вклада в проект

Внесение своего вклада максимально приветствуется! Есть перечень пунктов, который стоит соблюдать. Каждый пункт перечня расписан в CONTRIBUTING.md.

Вы можете помочь и сообщив о баге или о новом поле пришедшем от API.

Спонсоры

JetBrains

JetBrains Logo (Main) logo.

JetBrains предоставляет бесплатный набор инструментов для разработки активным контрибьюторам некоммерческих проектов с открытым исходным кодом.

Лицензии для проектов с открытым исходным кодом — Программы поддержки