/yandex-music-api

Неофициальная библиотека для работы с API сервиса Яндекс.Музыка

Primary LanguagePythonGNU Lesser General Public License v3.0LGPL-3.0

[Pre-Alpha] Неофициальная Python библиотека для API Yandex Music

Делаю то, что по каким-то причинам не сделала компания Yandex.

Версия пакета PyPi Поддерживаемые Python версии Статус документации Лицензия LGPLv3

Содержание

Введение

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

Она совместима с версиями Python 3.6+.

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

Установка

Библиотека находится в стадии разработки

Вы можете установить или обновить yandex-music-api при помощи:

$ pip install yandex-music --upgrade

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

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

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

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

Авторизация по логину и паролю:

from yandex_music.client import Client

client = Client('example@yandex.com', 'password')

Авторизация по токену:

from yandex_music.client import Client

client = Client.from_token('token')

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

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

from yandex_music.client import Client

client = Client('example@yandex.com', 'password')
client.users_likes_tracks()[0].track.download('example.mp3')

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

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

from yandex_music.client import Client

client = Client('example@yandex.com', 'password')
client.tracks(['10994777:1193829', '40133452:5206873', '48966383:6693286', '51385674:7163467'])

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

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

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

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

Логирование

Данная библиотека использует 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)

Документация

Документация yandex-music-api находится в стадии написания и расположена на readthedocs.io.

Благодарность

Спасибо разработчикам python-telegram-bot. Выбрал Вас в качестве примера.

Лицензия

Вы можете копировать, распространять и модифицировать программное обеспечение при условии, что модификации описаны и лицензированы бесплатно в соответствии с LGPL-3. Произведения производных (включая модификации или что-либо статически связанное с библиотекой) могут распространяться только в соответствии с LGPL-3, но приложения, которые используют библиотеку, необязательно.