Swagger документация для Yandex Music.
npm install
npm start
По умолчанию, все запросы отправляются по следующему адресу https://yandex-music-cors-proxy.onrender.com/https://api.music.yandex.net:443/
- https://yandex-music-cors-proxy.onrender.com/ - прокси сервер, используемый для обхода CORS, исходники можно посмотреть здесь
- https://api.music.yandex.net:443/ - адрес Яндекс.Музыки
Если вы не доверяете прокси серверу, то для обхода данной проблемы можно использовать следующий способ запуска Google Chrome. Сначала закройте все инстансы Google Chrome, затем перейдите в папку с Google Chrome и запустите его с флагом --disable-web-security
. При запуске Google Chrome вы увидите сообщение Вы используете неподдерживаемый флаг командной строки: -disable-web-security. Стабильность и безопасность будут нарушены.
, данное сообщение можете игнорировать.
Mac OS
open -na Google\ Chrome --args --user-data-dir=/tmp/temporary-chrome-profile-dir --disable-web-security --disable-site-isolation-trials
Windows
cd C:\Program Files (x86)\Google\Chrome\Application
.\Chrome.exe --user-data-dir="C:/Chrome dev session" --disable-web-security
После запуска, можете выбрать сервер напрямую адрес Яндекс.Музыки в верхней части схемы - https://api.music.yandex.net:443/
Необходимо использовать кастомный request.ts
файл из-за известного бага в openapi-typescript-codegen
модуле.
Как использовать клиент Яндекс.Музыки для JavaScript описано здесь.
Генерация клиентов с помощью openapi-generator
- Установить openapi-generator
- Скачать *./src/yandex-music.yaml
- Выбрать нужный генератор, выбрать можно из списка
- Сгенерировать клиент
openapi-generator generate -i yandex-music.yaml -g csharp-netcore -o ./dotnet-proxies --additional-properties=targetFramework=net6.0
,csharp-netcore
- генератор для C#
using Org.OpenAPITools.Client;
using Org.OpenAPITools.Api;
var userApi = new UserApi("https://oauth.yandex.ru");
var token = userApi.GetToken(
"password",
"23cabbbdc6cd418abb4b39c32c41195d",
"53bc75238f0c4d08a118e51fe9203300",
"<your email>",
"<password>"
);
Console.WriteLine($"Token: {token.AccessToken}");
GlobalConfiguration.Instance.DefaultHeaders["Authorization"] = $"OAuth {token.AccessToken}";
var landingApi = new LandingApi("https://api.music.yandex.net:443");
var releases = landingApi.GetNewReleases();
Console.WriteLine($"Releases Count: {releases.Result.NewReleases.Count}");
- Опубликовывать Yandex Music Api на хостинг
- Добавить описание использования OpenAPI Genrator
- Публиковать Npm, Nuget, ... модули
- Добавить линтер
Все вопросы касающиеся yandex music api, могут быть заданы в Telegram чате. Поддержать автора можно подписавшись на его Telegram канал.
Спасибо MarshalX, его работа положена в основу yandex-music-extension и yandex-music-open-api.