Серия «Yandex Music Api»

Yandex Music Client для JavaScript

Yandex Music Client для JavaScript Яндекс Музыка, Яндекс, Javascript, Openai, Npm

За последние пару дней новогодних праздников я, наконец-то, сделал то, что собирался сделать пару лет - сгенерировал JavaScript-клиент для Яндекс.Музыки на основе OpenAPI-схемы.

Что это значит? Берётся OpenAPI-схема и скармливается генератору, на основе которой генерируется библиотека на определённом языке программирования, которая может использоваться для отправки запросов на сервер.

👉 Описание OpenAPI-схемы на GitHub

👉 Для генерации клиента используется openapi-typescript-codegen

👉 JavaScript-клиент Яндекс.Музыки на npm - yandex-music-client

👉 Теперь VSCode-плагин для Яндекс.Музыки использует пакет yandex-music-client

Установка

npm i yandex-music-client

Пример использования

import { getToken } from 'yandex-music-client/token';

import { YandexMusicClient } from 'yandex-music-client/YandexMusicClient'

const token = await getToken('your email', 'your password');

const client = new YandexMusicClient({

BASE: "https://api.music.yandex.net:443",

HEADERS: {

'Authorization': `OAuth ${config.token}`

},

});

client.landing.getNewReleases();

https://t.me/cherkashindev/75

Показать полностью

VS Code Yandex Music Extension для MacOS и Linux

VS Code Yandex Music Extension для MacOS и Linux Кросспостинг, Pikabu Publish Bot, Яндекс Музыка, Extension, Mac Os, Linux, Текст, Visual studio Code
Полтора года назад я выпустил первую более-менее стабильную версию расширения Яндекс.Музыки для VsCode. Разрабатывал я его в основном для себя, поэтому особо и не заморачивался, что поддерживается только винда, ведь именно виндой я пользовался. В прошлом феврале я перешёл на мак и с тех пор не пользовался расширением, как и все по старинке включал музыку в браузере. Пару недель назад решил всё-таки довести дело до конца и сделать расширение кроссплатформенным. Так вот, сегодня зарелизил новую версию, которая работает на всех операционках.

🐞 Проблема
Для воспроизведения музыки под капотом используется Electron. Проблема в том, что он собирается под каждую платформу отдельно, поэтому раньше поддерживалась лишь та операционная система, на которой происходила сборка расширения.

Решение
Теперь Electron устанавливается в рантайме именно для вашей операционной системы при установке плагина YandexMusic с помощью пакета @electron/get.


- Установить расширение

- Исходники


https://t.me/cherkashindev/70

Показать полностью

Прокси-серве для Яндекс.Музыки

Прошлой весной начал разбираться с OpenAPI и решил написать схему для Яндекс.Музыки. Проблема была лишь в том, что из-за CORS нормально пользоваться сгенерированной документацией невозможно. Чтобы отключить CORS в хроме приходилось запускать его с флагом -disable-web-security.


Решение скажем честно - не очень 👎. Правильным решением будет написание прокси-сервера, на котором были бы разрешены кросдоменные запросы. Другими словами, вместо того, чтобы напрямую обращаться к серверу Я.Музыки, на котором запрещены крос-доменные запросы, мы обращаемся к прокси-серверу, который перенапрявляет все наши вопросы к Я.Музыке и возвращает нам ответ. Так как CORS, есть только в браузере, то мы свободно отправляем запросы с нашего прокси сервера на сервер Я.Музыки.


Собственно, вчера я и написал такой прокси-сервер на основе библиотеки cors-anywhere и захостить его на хероку (https://yandex-music-cors-proxy.herokuapp.com/).


Теперь все запросы можно проксировать следующим образом:

https://yandex-music-cors-proxy.herokyapp.com/<any-url>

Например:

https://yandex-music-cors-proxy.herokuapp.com/https://api.mu...

Ресурсы:

- Исходники прокси сервера

- Исходники OpenAPI-схемы Я.Музыки

- OpenAPI документация Я.Музыки


Ещё по теме:


- cors-anywere

- Getting Started on Heroku with Node.js

- GitHub Integration (Heroku GitHub Deploys)

Показать полностью
Отличная работа, все прочитано!