2019-07-09 14:54:25 +09:00
[Pre-Alpha] Неофициальная Python библиотека для API Yandex Music
================================================================
2019-07-06 18:44:18 +09:00
Делаю то, что по каким-то причинам не сделала компания Yandex.
.. image :: https://img.shields.io/pypi/v/yandex-music.svg
:target: https://pypi.org/project/yandex-music/
:alt: Версия пакета PyPi
.. image :: https://img.shields.io/badge/python-3.6%2B-blue.svg
:target: https://pypi.org/project/yandex-music/
:alt: Поддерживаемые Python версии
2019-07-06 20:15:03 +09:00
.. image :: https://readthedocs.org/projects/yandex-music/badge/?version=latest
:target: https://yandex-music.readthedocs.io/ru/latest/?badge=latest
:alt: Статус документации
2019-07-06 18:44:18 +09:00
.. image :: https://img.shields.io/badge/license-LGPLv3-lightgrey.svg
:target: https://www.gnu.org/licenses/lgpl-3.0.html
:alt: Лицензия LGPLv3
==========
Содержание
==========
- `Введение`_
- `Установка`_
- `Начало работы`_
#. `Изучение по примерам`_
#. `Логирование`_
#. `Документация`_
2019-07-06 18:49:01 +09:00
- `Благодарность`_
2019-07-06 18:44:18 +09:00
- `Лицензия`_
========
Введение
========
Эта библиотека предоставляется Python интерфейс для никем
незадокументированного и сделанного только для себя API Яндекс Музыки.
Она совместима с версиями Python 3.6+.
В дополнение к реализации чистого API данная библиотека имеет ряд
классов-обёрток объектов высокого уровня дабы сделать разработку клиентов
и скриптов простой и понятной.
=========
Установка
=========
**Библиотека находится в стадии разработки**
Вы можете установить или обновить yandex-music-api при помощи:
.. code :: shell
2019-07-06 19:34:14 +09:00
$ pip install yandex-music --upgrade
2019-07-06 18:44:18 +09:00
Или Вы можете установить из исходного кода с помощью:
.. code :: shell
2019-07-06 18:49:01 +09:00
$ git clone https://github.com/MarshalX/yandex-music-api --recursive
$ cd yandex-music-api
2019-07-06 18:44:18 +09:00
$ python setup.py install
=============
Начало работы
=============
2019-07-09 14:54:25 +09:00
Приступив к работе первом делом необходимо создать экземпляр клиента
введя данные для авторизации. Такими данными может служить OAuth токен или
логин с паролем.
2019-07-06 18:44:18 +09:00
2019-07-09 14:54:25 +09:00
Авторизация по логину и паролю:
2019-07-09 14:58:17 +09:00
2019-07-09 14:54:25 +09:00
.. code :: python
from yandex_music.client import Client
client = Client('example@yandex.com', 'password')
Авторизация по токену:
2019-07-09 14:58:17 +09:00
2019-07-09 14:54:25 +09:00
.. code :: python
from yandex_music.client import Client
client = Client.from_token('token')
После успешного создания клиента Вы вольны в выборе необходимого метода
из API. В с е они доступны у объекта класса Client. Подробнее в методах клиента
в `документации <https://yandex-music.readthedocs.io/ru/latest/yandex_music.client.html> `_ .
Пример получения первого трека из плейлиста "Мне нравится" и е г о загрузка:
2019-07-09 14:58:17 +09:00
2019-07-09 14:54:25 +09:00
.. code :: python
from yandex_music.client import Client
client = Client('example@yandex.com', 'password')
client.users_likes_tracks()[0].track.download('example.mp3')
В примере выше клиент получает список треков которые были отмечены как
понравившиеся. API возвращает объект
`TracksList <https://yandex-music.readthedocs.io/ru/latest/yandex_music.tracks_list.html> `_
в котором содержится список с треками класса
`TrackShort <https://yandex-music.readthedocs.io/ru/latest/yandex_music.track_short.html> `_ .
Данные класс содержит наиважнейшую информацию о треке и никаких подробностей,
поэтому для получения полной версии трека с о всей информацией необходимо
обратиться к свойству track. Затем можно скачать трек методом download().
Пример получения треков по ID:
2019-07-09 14:58:17 +09:00
2019-07-09 14:54:25 +09:00
.. code :: python
from yandex_music.client import Client
client = Client('example@yandex.com', 'password')
client.tracks(['10994777:1193829', '40133452:5206873', '48966383:6693286', '51385674:7163467'])
2019-07-06 18:44:18 +09:00
--------------------
Изучение по примерам
--------------------
Вот несколько примеров для обзора. Даже если это не Ваш подход к
обучению, пожалуйста, возьмите и бегло просмотрите их.
Код примеров опубликован в открытом доступе, поэтому
Вы можете взять е г о и начать писать вокруг своё.
2019-07-13 08:39:17 +09:00
Посетите `эту страницу <https://github.com/MarshalX/yandex-music-api/blob/master/examples/> `_
2019-07-06 18:44:18 +09:00
чтобы изучить официальные примеры.
-----------
Логирование
-----------
Данная библиотека использует `` logging `` модуль. Чтобы настроить логирование на стандартный вывод, поместите
.. code :: python
import logging
logging.basicConfig(level=logging.DEBUG,
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s')
в начало вашего скрипта.
Вы также можете использовать логирование в вашем приложении, вызвав `` logging.getLogger() `` и установить уровень какой Вы хотите:
.. code :: python
logger = logging.getLogger()
logger.setLevel(logging.INFO)
Если Вы хотите DEBUG логирование:
.. code :: python
logger.setLevel(logging.DEBUG)
=============
Документация
=============
2019-07-06 19:34:14 +09:00
Документация `` yandex-music-api `` находится в стадии написания и расположена на `readthedocs.io <https://yandex-music.readthedocs.io/> `_ .
2019-07-06 18:44:18 +09:00
2019-07-06 18:49:01 +09:00
=============
Благодарность
=============
Спасибо разработчикам `` python-telegram-bot `` . Выбрал В а с в качестве примера.
2019-07-06 18:44:18 +09:00
========
Лицензия
========
2019-07-13 08:39:17 +09:00
Вы можете копировать, распространять и модифицировать программное обеспечение при условии, что модификации описаны и лицензированы бесплатно в соответствии с `LGPL-3 <https://www.gnu.org/licenses/lgpl-3.0.html> `_ . Произведения производных (включая модификации или что-либо статически связанное с библиотекой) могут распространяться только в соответствии с LGPL-3, но приложения, которые используют библиотеку, необязательно.