diff --git a/examples/README.md b/examples/README.md index 7b2985d..3840f34 100644 --- a/examples/README.md +++ b/examples/README.md @@ -3,6 +3,10 @@ В этой папке есть небольшие примеры, чтобы показать, как выглядят скрипты, написанные с помощью `yandex-music-api`. +- [proxy](proxy.py) – пример использования прокси, когда у пользователя нет подписки + (так как Яндекс.Музыка недоступна за пределами СНГ. Актуально для расположения + скрипта на зарубежном сервере). При проблемах с авторизацией или токеном + использование клиента без авторизации. - [radio_example](radio_example) – пример [@Angel777d](https://github.com/Angel777d) без внесения правок. Обёртка для более легкого взаимодействия с радио и потоками по разным сущностям ЯМ с примерами её использования. diff --git a/examples/proxy.py b/examples/proxy.py new file mode 100644 index 0000000..07f9f09 --- /dev/null +++ b/examples/proxy.py @@ -0,0 +1,23 @@ +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()) + # проверяем отсутствие подписки у пользователя + if client.me and client.me.plus and not client.me.plus.has_plus: + # если подписки нет - пересоздаем клиент с использованием прокси + client = Client(yandex_music_token, request=proxied_request) +except YandexMusicError: + # если есть проблемы с авторизацией, токеном или чем-либо еще, то инициализируем клиент без авторизации + # так как сервисом можно пользоваться будучи гостем, но со своими ограничениями + client = Client(request=proxied_request, fetch_account_status=False)