コミット
cc8331ff3f
76
README.md
76
README.md
|
@ -9,7 +9,7 @@
|
|||
[![Поддерживаемые Python версии](https://img.shields.io/badge/python-3.7+-blue.svg)](https://pypi.org/project/yandex-music/)
|
||||
[![Покрытие кода тестами](https://codecov.io/gh/MarshalX/yandex-music-api/branch/main/graph/badge.svg)](https://codecov.io/gh/MarshalX/yandex-music-api)
|
||||
[![Качество кода](https://api.codacy.com/project/badge/Grade/27011a5a8d9f4b278d1bfe2fe8725fed)](https://app.codacy.com/gh/MarshalX/yandex-music-api)
|
||||
[![Статус тестов](https://github.com/MarshalX/yandex-music-api/actions/workflows/pytest_full.yml/badge.svg)](https://github.com/MarshalX/yandex-music-api/actions/workflows/pytest_full.yml)
|
||||
[![Статус тестов](https://github.com/MarshalX/yandex-music-api/actions/workflows/test.yml/badge.svg?branch=main)](https://github.com/MarshalX/yandex-music-api/actions/workflows/pytest_full.yml)
|
||||
[![Статус документации](https://readthedocs.org/projects/yandex-music/badge/?version=latest)](https://yandex-music.readthedocs.io/en/latest/?badge=latest)
|
||||
[![Лицензия LGPLv3](https://img.shields.io/badge/license-LGPLv3-lightgrey.svg)](https://www.gnu.org/licenses/lgpl-3.0.html)
|
||||
|
||||
|
@ -25,13 +25,6 @@
|
|||
- [Получение помощи](#получение-помощи)
|
||||
- [Список изменений](#список-изменений)
|
||||
- [Реализации на других языках](#реализации-на-других-языках)
|
||||
1. [C#](#c)
|
||||
2. [PHP](#php)
|
||||
3. [JavaScript](#javascript)
|
||||
- [Разработанные проекты](#разработанные-проекты)
|
||||
1. [Плагин для Kodi](#плагин-для-kodi)
|
||||
2. [Telegram бот-клиент](#telegram-бот-клиент)
|
||||
- [Благодарность](#благодарность)
|
||||
- [Внесение своего вклада в проект](#внесение-своего-вклада-в-проект)
|
||||
- [Спонсоры](#спонсоры)
|
||||
- [Лицензия](#лицензия)
|
||||
|
@ -46,7 +39,7 @@
|
|||
|
||||
#### Доступ к вашим данным Яндекс.Музыка
|
||||
|
||||
Начиная с версии [2.0.0](https://github.com/MarshalX/yandex-music-api/blob/a30082f4929e56381c870cb03103777ae29bcc6b/CHANGES.rst#%D0%B2%D0%B5%D1%80%D1%81%D0%B8%D1%8F-200) библиотека больше не предоставляет интерфейсы для работы с OAuth Яндекс и Яндекс.Паспорт. Задача по получению токена для доступа к данным лежит на плечах разработчиков, использующих данную библиотеку. О том как получить токен читайте в документации.
|
||||
Задача по получению токена для доступа к данным лежит на плечах разработчиков, использующих данную библиотеку. О том как получить токен читайте в [документации](https://yandex-music.readthedocs.io/en/main/token.html).
|
||||
|
||||
### Установка
|
||||
|
||||
|
@ -56,7 +49,7 @@
|
|||
pip install -U yandex-music
|
||||
```
|
||||
|
||||
Или Вы можете установить из исходного кода с помощью команды:
|
||||
Или вы можете установить из исходного кода с помощью команды:
|
||||
|
||||
``` shell
|
||||
git clone https://github.com/MarshalX/yandex-music-api
|
||||
|
@ -108,7 +101,7 @@ from yandex_music import Client
|
|||
client = Client('token').init()
|
||||
```
|
||||
|
||||
После успешного создания клиента Вы вольны в выборе необходимого метода из API. Все они доступны у объекта класса `Client`. Подробнее в методах клиента в [документации](https://yandex-music.readthedocs.io/en/latest/yandex_music.client.html).
|
||||
После успешного создания клиента вы вольны в выборе необходимого метода из API. Все они доступны у объекта класса `Client`. Подробнее в методах клиента в [документации](https://yandex-music.readthedocs.io/en/latest/yandex_music.client.html).
|
||||
|
||||
Пример получения первого трека из плейлиста "Мне нравится" и его загрузки:
|
||||
|
||||
|
@ -132,7 +125,7 @@ client.tracks(['10994777:1193829', '40133452:5206873', '48966383:6693286', '5138
|
|||
|
||||
В качестве ID трека выступает его уникальный номер и номер альбома. Первым треком из примера является следующий трек:music.yandex.ru/album/**1193829**/track/**10994777**
|
||||
|
||||
Выполнение запросов с использование прокси в синхронной версии:
|
||||
Выполнение запросов с использованием прокси в синхронной версии:
|
||||
|
||||
``` python
|
||||
from yandex_music.utils.request import Request
|
||||
|
@ -150,7 +143,7 @@ client = Client(request=request).init()
|
|||
|
||||
Больше примеров тут: [proxies - advanced usage - requests](https://2.python-requests.org/en/master/user/advanced/#proxies)
|
||||
|
||||
Выполнение запросов с использование прокси в асинхронной версии:
|
||||
Выполнение запросов с использованием прокси в асинхронной версии:
|
||||
|
||||
``` python
|
||||
from yandex_music.utils.request_async import Request
|
||||
|
@ -166,9 +159,9 @@ Socks прокси не поддерживаются в асинхронной
|
|||
|
||||
#### Изучение по примерам
|
||||
|
||||
Вот несколько примеров для обзора. Даже если это не Ваш подход к обучению, пожалуйста, возьмите и бегло просмотрите их.
|
||||
Вот несколько примеров для обзора. Даже если это не ваш подход к обучению, пожалуйста, возьмите и бегло просмотрите их.
|
||||
|
||||
Код примеров опубликован в открытом доступе, поэтому Вы можете взять его и начать писать вокруг него свой.
|
||||
Код примеров опубликован в открытом доступе, поэтому вы можете взять его и начать писать вокруг него свой.
|
||||
|
||||
Посетите [эту страницу](https://github.com/MarshalX/yandex-music-api/blob/main/examples/), чтобы изучить официальные примеры.
|
||||
|
||||
|
@ -198,7 +191,7 @@ await full_track.download()
|
|||
|
||||
#### Логирование
|
||||
|
||||
Данная библиотека использует модуль `logging`. Чтобы настроить логирование на стандартный вывод, поместите
|
||||
Данная библиотека использует модуль `logging`. Чтобы настроить логирование на стандартный вывод, поместите в начало вашего скрипта следующий код:
|
||||
|
||||
``` python
|
||||
import logging
|
||||
|
@ -208,16 +201,14 @@ logging.basicConfig(
|
|||
)
|
||||
```
|
||||
|
||||
в начало вашего скрипта.
|
||||
|
||||
Вы также можете использовать логирование в вашем приложении, вызвав `logging.getLogger()` и установить уровень какой Вы хотите:
|
||||
Вы также можете использовать логирование в вашем приложении, вызвав `logging.getLogger()` и установить уровень какой вы хотите:
|
||||
|
||||
``` python
|
||||
logger = logging.getLogger()
|
||||
logger.setLevel(logging.INFO)
|
||||
```
|
||||
|
||||
Если Вы хотите `DEBUG` логирование:
|
||||
Если вы хотите `DEBUG` логирование:
|
||||
|
||||
``` python
|
||||
logger.setLevel(logging.DEBUG)
|
||||
|
@ -225,7 +216,7 @@ logger.setLevel(logging.DEBUG)
|
|||
|
||||
### Документация
|
||||
|
||||
Документация `yandex-music-api` расположена на [readthedocs.io](https://yandex-music.readthedocs.io/). Вашей отправной точкой должен быть класс `Client`, а точнее его методы. Именно они выполняют все запросы на API и возвращают Вам готовые объекты. [Класс Client на readthedocs.io](https://yandex-music.readthedocs.io/en/latest/yandex_music.client.html).
|
||||
Документация `yandex-music-api` расположена на [readthedocs.io](https://yandex-music.readthedocs.io/). Вашей отправной точкой должен быть класс `Client`, а точнее его методы. Именно они выполняют все запросы на API и возвращают вам готовые объекты. [Класс Client на readthedocs.io](https://yandex-music.readthedocs.io/en/latest/yandex_music.client.html).
|
||||
|
||||
### Получение помощи
|
||||
|
||||
|
@ -241,44 +232,11 @@ logger.setLevel(logging.DEBUG)
|
|||
|
||||
### Реализации на других языках
|
||||
|
||||
#### C#
|
||||
|
||||
Реализация с совершенно другим подходом, так как используется API для frontend'a, а не мобильных и десктопных приложений: [Winster332/Yandex.Music.Api](https://github.com/Winster332/Yandex.Music.Api).
|
||||
|
||||
[@Winster332](https://github.com/Winster332) не сильно проявляет активность, но существует форк, который продолжил начатое. Эндпоинты изменены с фронтовых на мобильные: [K1llMan/Yandex.Music.Api](https://github.com/K1llMan/Yandex.Music.Api).
|
||||
|
||||
#### PHP
|
||||
|
||||
Частично переписанная текущая библиотека на PHP: [LuckyWins/yandex-music-api](https://github.com/LuckyWins/yandex-music-api).
|
||||
|
||||
#### JavaScript
|
||||
|
||||
API wrapper на NodeJS. Не обновлялся больше двух лет: [itsmepetrov/yandex-music-api](https://github.com/itsmepetrov/yandex-music-api). Продолжение разработки заброшенной библиотеки: [kontsevoye/ym-api](https://github.com/kontsevoye/ym-api).
|
||||
|
||||
### Разработанные проекты
|
||||
|
||||
#### Плагин для Kodi
|
||||
|
||||
Плагин может проигрывать пользовательские плейлисты и плейлисты Яндекса, поиск по Яндекс Музыке, радио.
|
||||
|
||||
Сайт проекта: [ymkodi.ru](https://ymkodi.ru/). Исходный код: [kodi.plugin.yandex-music](https://github.com/Angel777d/kodi.plugin.yandex-music).
|
||||
Автор: [@Angel777d](https://github.com/Angel777d).
|
||||
|
||||
[![Плагин для Kodi](https://raw.githubusercontent.com/Angel777d/kodi.plugin.yandex-music/master/assets/img/kody_yandex_music_plugin.png)](https://ymkodi.ru/)
|
||||
|
||||
#### Telegram бот-клиент
|
||||
|
||||
Неофициальный бот. Умные и ваши плейлисты, понравившиеся треки. Лайки, дизлайки, текста песен, поиск, распознавание песен, похожие треки! Полноценный клиент на базе мессенджера.
|
||||
|
||||
Сайт проекта: [music-yandex-bot.ru](https://music-yandex-bot.ru/). Бот в Telegram: [@music\_yandex\_bot](https://t.me/music_yandex_bot). Автор: [@MarshalX](https://github.com/MarshalX).
|
||||
|
||||
Статья на habr.com с описанием реализации: [Под капотом бота-клиента Яндекс.Музыки](https://habr.com/ru/post/487428/).
|
||||
|
||||
[![Telegram бот-клиент](https://hsto.org/webt/uv/4s/a3/uv4sa3pslohuzlmuzrjzteju2dk.png)](https://music-yandex-bot.ru/)
|
||||
|
||||
### Благодарность
|
||||
|
||||
Спасибо разработчикам `python-telegram-bot`. Выбрал Вас в качестве примера.
|
||||
- [OpenAPI спецификация](https://github.com/acherkashin/yandex-music-open-api/blob/main/src/yandex-music.yaml)
|
||||
- [C#](https://github.com/K1llMan/Yandex.Music.Api)
|
||||
- [PHP](https://github.com/LuckyWins/yandex-music-api)
|
||||
- [TS](https://github.com/acherkashin/yandex-music-open-api)
|
||||
- [JS](https://github.com/kontsevoye/ym-api)
|
||||
|
||||
### Внесение своего вклада в проект
|
||||
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
## Доступ к вашим данным Яндекс.Музыка
|
||||
|
||||
Начиная с версии [2.0.0](https://github.com/MarshalX/yandex-music-api/blob/a30082f4929e56381c870cb03103777ae29bcc6b/CHANGES.rst#%D0%B2%D0%B5%D1%80%D1%81%D0%B8%D1%8F-200) библиотека больше не предоставляет интерфейсы для работы с OAuth Яндекс и Яндекс.Паспорт. Задача по получению токена для доступа к данным лежит на плечах разработчиков, использующих данную библиотеку. О том как получить токен читайте в документации.
|
||||
Задача по получению токена для доступа к данным лежит на плечах разработчиков, использующих данную библиотеку. О том как получить токен читайте в [документации](https://yandex-music.readthedocs.io/en/main/token.html).
|
||||
|
||||
# Установка
|
||||
|
||||
|
@ -18,7 +18,7 @@
|
|||
pip install -U yandex-music
|
||||
```
|
||||
|
||||
Или Вы можете установить из исходного кода с помощью команды:
|
||||
Или вы можете установить из исходного кода с помощью команды:
|
||||
|
||||
``` shell
|
||||
git clone https://github.com/MarshalX/yandex-music-api
|
||||
|
@ -70,7 +70,7 @@ from yandex_music import Client
|
|||
client = Client('token').init()
|
||||
```
|
||||
|
||||
После успешного создания клиента Вы вольны в выборе необходимого метода из API. Все они доступны у объекта класса `Client`. Подробнее в методах клиента в [документации](https://yandex-music.readthedocs.io/en/latest/yandex_music.client.html).
|
||||
После успешного создания клиента вы вольны в выборе необходимого метода из API. Все они доступны у объекта класса `Client`. Подробнее в методах клиента в [документации](https://yandex-music.readthedocs.io/en/latest/yandex_music.client.html).
|
||||
|
||||
Пример получения первого трека из плейлиста "Мне нравится" и его загрузки:
|
||||
|
||||
|
@ -94,7 +94,7 @@ client.tracks(['10994777:1193829', '40133452:5206873', '48966383:6693286', '5138
|
|||
|
||||
В качестве ID трека выступает его уникальный номер и номер альбома. Первым треком из примера является следующий трек:music.yandex.ru/album/**1193829**/track/**10994777**
|
||||
|
||||
Выполнение запросов с использование прокси в синхронной версии:
|
||||
Выполнение запросов с использованием прокси в синхронной версии:
|
||||
|
||||
``` python
|
||||
from yandex_music.utils.request import Request
|
||||
|
@ -112,7 +112,7 @@ client = Client(request=request).init()
|
|||
|
||||
Больше примеров тут: [proxies - advanced usage - requests](https://2.python-requests.org/en/master/user/advanced/#proxies)
|
||||
|
||||
Выполнение запросов с использование прокси в асинхронной версии:
|
||||
Выполнение запросов с использованием прокси в асинхронной версии:
|
||||
|
||||
``` python
|
||||
from yandex_music.utils.request_async import Request
|
||||
|
@ -128,9 +128,9 @@ Socks прокси не поддерживаются в асинхронной
|
|||
|
||||
## Изучение по примерам
|
||||
|
||||
Вот несколько примеров для обзора. Даже если это не Ваш подход к обучению, пожалуйста, возьмите и бегло просмотрите их.
|
||||
Вот несколько примеров для обзора. Даже если это не ваш подход к обучению, пожалуйста, возьмите и бегло просмотрите их.
|
||||
|
||||
Код примеров опубликован в открытом доступе, поэтому Вы можете взять его и начать писать вокруг него свой.
|
||||
Код примеров опубликован в открытом доступе, поэтому вы можете взять его и начать писать вокруг него свой.
|
||||
|
||||
Посетите [эту страницу](https://github.com/MarshalX/yandex-music-api/blob/main/examples/), чтобы изучить официальные примеры.
|
||||
|
||||
|
@ -160,7 +160,7 @@ await full_track.download()
|
|||
|
||||
## Логирование
|
||||
|
||||
Данная библиотека использует модуль `logging`. Чтобы настроить логирование на стандартный вывод, поместите
|
||||
Данная библиотека использует модуль `logging`. Чтобы настроить логирование на стандартный вывод, поместите в начало вашего скрипта следующий код:
|
||||
|
||||
``` python
|
||||
import logging
|
||||
|
@ -170,16 +170,14 @@ logging.basicConfig(
|
|||
)
|
||||
```
|
||||
|
||||
в начало вашего скрипта.
|
||||
|
||||
Вы также можете использовать логирование в вашем приложении, вызвав `logging.getLogger()` и установить уровень какой Вы хотите:
|
||||
Вы также можете использовать логирование в вашем приложении, вызвав `logging.getLogger()` и установить уровень какой вы хотите:
|
||||
|
||||
``` python
|
||||
logger = logging.getLogger()
|
||||
logger.setLevel(logging.INFO)
|
||||
```
|
||||
|
||||
Если Вы хотите `DEBUG` логирование:
|
||||
Если вы хотите `DEBUG` логирование:
|
||||
|
||||
``` python
|
||||
logger.setLevel(logging.DEBUG)
|
||||
|
@ -199,44 +197,19 @@ logger.setLevel(logging.DEBUG)
|
|||
|
||||
# Реализации на других языках
|
||||
|
||||
## C#
|
||||
- [OpenAPI спецификация](https://github.com/acherkashin/yandex-music-open-api/blob/main/src/yandex-music.yaml)
|
||||
- [C#](https://github.com/K1llMan/Yandex.Music.Api)
|
||||
- [PHP](https://github.com/LuckyWins/yandex-music-api)
|
||||
- [TS](https://github.com/acherkashin/yandex-music-open-api)
|
||||
- [JS](https://github.com/kontsevoye/ym-api)
|
||||
|
||||
Реализация с совершенно другим подходом, так как используется API для frontend'a, а не мобильных и десктопных приложений: [Winster332/Yandex.Music.Api](https://github.com/Winster332/Yandex.Music.Api).
|
||||
# Внесение своего вклада в проект
|
||||
|
||||
[@Winster332](https://github.com/Winster332) не сильно проявляет активность, но существует форк, который продолжил начатое. Эндпоинты изменены с фронтовых на мобильные: [K1llMan/Yandex.Music.Api](https://github.com/K1llMan/Yandex.Music.Api).
|
||||
Внесение своего вклада максимально приветствуется! Есть перечень пунктов, который стоит соблюдать. Каждый пункт перечня расписан в [CONTRIBUTING.md](https://github.com/MarshalX/yandex-music-api/blob/main/CONTRIBUTING.md).
|
||||
|
||||
## PHP
|
||||
Вы можете помочь и сообщив о [баге](https://github.com/MarshalX/yandex-music-api/issues/new?assignees=MarshalX&labels=bug&template=bug-report.md&title=) или о [новом поле пришедшем от API](https://github.com/MarshalX/yandex-music-api/issues/new?assignees=&labels=feature&template=found-unknown-fields.md&title=%D0%9D%D0%BE%D0%B2%D0%BE%D0%B5+%D0%BD%D0%B5%D0%B8%D0%B7%D0%B2%D0%B5%D1%81%D1%82%D0%BD%D0%BE%D0%B5+%D0%BF%D0%BE%D0%BB%D0%B5+%D0%BE%D1%82+API).
|
||||
|
||||
Частично переписанная текущая библиотека на PHP: [LuckyWins/yandex-music-api](https://github.com/LuckyWins/yandex-music-api).
|
||||
|
||||
## JavaScript
|
||||
|
||||
API wrapper на NodeJS. Не обновлялся больше двух лет: [itsmepetrov/yandex-music-api](https://github.com/itsmepetrov/yandex-music-api). Продолжение разработки заброшенной библиотеки: [kontsevoye/ym-api](https://github.com/kontsevoye/ym-api).
|
||||
|
||||
# Разработанные проекты
|
||||
|
||||
## Плагин для Kodi
|
||||
|
||||
Плагин может проигрывать пользовательские плейлисты и плейлисты Яндекса, поиск по Яндекс Музыке, радио.
|
||||
|
||||
Сайт проекта: [ymkodi.ru](https://ymkodi.ru/). Исходный код: [kodi.plugin.yandex-music](https://github.com/Angel777d/kodi.plugin.yandex-music).
|
||||
Автор: [@Angel777d](https://github.com/Angel777d).
|
||||
|
||||
[![Плагин для Kodi](https://raw.githubusercontent.com/Angel777d/kodi.plugin.yandex-music/master/assets/img/kody_yandex_music_plugin.png)](https://ymkodi.ru/)
|
||||
|
||||
## Telegram бот-клиент
|
||||
|
||||
Неофициальный бот. Умные и ваши плейлисты, понравившиеся треки. Лайки, дизлайки, текста песен, поиск, распознавание песен, похожие треки! Полноценный клиент на базе мессенджера.
|
||||
|
||||
Сайт проекта: [music-yandex-bot.ru](https://music-yandex-bot.ru/). Бот в Telegram: [@music\_yandex\_bot](https://t.me/music_yandex_bot). Автор: [@MarshalX](https://github.com/MarshalX).
|
||||
|
||||
Статья на habr.com с описанием реализации: [Под капотом бота-клиента Яндекс.Музыки](https://habr.com/ru/post/487428/).
|
||||
|
||||
[![Telegram бот-клиент](https://hsto.org/webt/uv/4s/a3/uv4sa3pslohuzlmuzrjzteju2dk.png)](https://music-yandex-bot.ru/)
|
||||
|
||||
# Благодарность и спонсоры
|
||||
|
||||
Спасибо разработчикам `python-telegram-bot`. Выбрал Вас в качестве примера.
|
||||
# Спонсоры
|
||||
|
||||
## JetBrains
|
||||
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
[![Поддерживаемые Python версии](https://img.shields.io/badge/python-3.7+-blue.svg)](https://pypi.org/project/yandex-music/)
|
||||
[![Покрытие кода тестами](https://codecov.io/gh/MarshalX/yandex-music-api/branch/main/graph/badge.svg)](https://codecov.io/gh/MarshalX/yandex-music-api)
|
||||
[![Качество кода](https://api.codacy.com/project/badge/Grade/27011a5a8d9f4b278d1bfe2fe8725fed)](https://app.codacy.com/gh/MarshalX/yandex-music-api)
|
||||
[![Статус тестов](https://github.com/MarshalX/yandex-music-api/actions/workflows/pytest_full.yml/badge.svg)](https://github.com/MarshalX/yandex-music-api/actions/workflows/pytest_full.yml)
|
||||
[![Статус тестов](https://github.com/MarshalX/yandex-music-api/actions/workflows/test.yml/badge.svg?branch=main)](https://github.com/MarshalX/yandex-music-api/actions/workflows/pytest_full.yml)
|
||||
[![Статус документации](https://readthedocs.org/projects/yandex-music/badge/?version=latest)](https://yandex-music.readthedocs.io/en/latest/?badge=latest)
|
||||
[![Лицензия LGPLv3](https://img.shields.io/badge/license-LGPLv3-lightgrey.svg)](https://www.gnu.org/licenses/lgpl-3.0.html)
|
||||
|
||||
|
|
読み込み中…
新しいイシューから参照