Использование прокси#

Пример использования прокси, когда у пользователя нет подписки (так как Яндекс.Музыка недоступна за пределами СНГ. Актуально для расположения скрипта на зарубежном сервере). При проблемах с авторизацией или токеном использование клиента без авторизации.

import os

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

yandex_music_token = os.environ.get('YANDEX_MUSIC_TOKEN')
proxied_request = Request(proxy_url=os.environ.get('PROXY_URL'))

try:
    if not yandex_music_token:
        raise YandexMusicError()

    # подключаемся без прокси для получения информации об аккаунте (доступно из других стран)
    client = Client(yandex_music_token, request=Request()).init()
    # проверяем отсутствие подписки у пользователя
    if client.me and client.me.plus and not client.me.plus.has_plus:
        # если подписки нет - пересоздаем клиент с использованием прокси
        client = Client(yandex_music_token, request=proxied_request).init()
except YandexMusicError:
    # если есть проблемы с авторизацией, токеном или чем-либо еще, то инициализируем клиент без авторизации
    # так как сервисом можно пользоваться будучи гостем, но со своими ограничениями
    client = Client(request=proxied_request)