Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/acherkashin/yandex-music-open-api
Swagger документация для Yandex Music.
https://github.com/acherkashin/yandex-music-open-api
open-api yandex yandex-music-api
Last synced: 9 days ago
JSON representation
Swagger документация для Yandex Music.
- Host: GitHub
- URL: https://github.com/acherkashin/yandex-music-open-api
- Owner: acherkashin
- Created: 2021-02-28T11:24:56.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2023-04-02T12:02:57.000Z (over 1 year ago)
- Last Synced: 2024-10-01T00:04:00.101Z (about 2 months ago)
- Topics: open-api, yandex, yandex-music-api
- Language: TypeScript
- Homepage: https://www.cherkashin.dev/yandex-music-open-api/
- Size: 2.26 MB
- Stars: 54
- Watchers: 4
- Forks: 4
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
yandex-music-open-apiSwagger документация для Yandex Music.
## Local development
```
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://habr.com/ru/company/macloud/blog/553826/), исходники можно посмотреть [здесь](https://github.com/acherkashin/yandex-music-cors-proxy)
- 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/`
![Yandex Music Server](./assets/ym-server.png)
### Open API генератор
#### Кастомный request.ts файл
Необходимо использовать кастомный `request.ts` файл [из-за известного бага в `openapi-typescript-codegen` модуле](https://github.com/ferdikoomen/openapi-typescript-codegen/issues/1000#issuecomment-1374436662).
#### Использование JavaScript Yandex Music Client
Как использовать клиент Яндекс.Музыки для JavaScript [описано здесь]('./lib/README.md').
#### Генерация клиентов с помощью [openapi-generator](https://openapi-generator.tech/docs/usage)
1. Установить [openapi-generator](https://openapi-generator.tech/docs/installation)
2. Скачать **./src/yandex-music.yaml*
3. Выбрать нужный генератор, выбрать можно из [списка](https://openapi-generator.tech/docs/generators)
4. Сгенерировать клиент `openapi-generator generate -i yandex-music.yaml -g csharp-netcore -o ./dotnet-proxies --additional-properties=targetFramework=net6.0`, `csharp-netcore` - [генератор для C#](https://openapi-generator.tech/docs/generators/csharp-netcore/)```csharp
using Org.OpenAPITools.Client;
using Org.OpenAPITools.Api;var userApi = new UserApi("https://oauth.yandex.ru");
var token = userApi.GetToken(
"password",
"23cabbbdc6cd418abb4b39c32c41195d",
"53bc75238f0c4d08a118e51fe9203300",
"",
""
);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}");
```## Roadmap
- [x] Опубликовывать Yandex Music Api на хостинг
- [x] Добавить описание использования [OpenAPI Genrator](https://openapi-generator.tech/)
- [ ] Публиковать Npm, Nuget, ... модули
- [ ] Добавить линтер## Помощь
Все вопросы касающиеся yandex music api, могут быть заданы в [Telegram чате](https://t.me/yandex_music_api).
Поддержать автора можно подписавшись на его [Telegram канал](https://t.me/cherkashindev).## Благодарность
Спасибо [MarshalX](https://github.com/MarshalX/), [его работа](https://github.com/MarshalX/yandex-music-api) положена в основу [yandex-music-extension](https://github.com/acherkashin/yandex-music-extension) и [yandex-music-open-api](https://github.com/acherkashin/yandex-music-open-api).