Skip to content

Night-Soft/YmExternalAPI

Repository files navigation

Yandex Music externalAPI polyfill

Это расширение восстанавливает externalAPI интерфейс для нового дизайна Яндекс Музыки (2025), аналогичный тому, который использовался в предыдущем дизайне.

Предупреждение

Это неофициальное API которое может перестать работать при изменениях на стороне Яндекс Музыки.

Интеграция

  • Клонируйте репозиторий
  • Откройте chrome://extensions/, включите режим разработчика, нажмите "Загрузить распакованное расширение" и выберите папку с клонированным репозиторием.

Скрипт add-API.js должен быть подключён с параметром "run_at": "document_start" в manifest.json:

{
  "name": "Yandex Music API Extension",
  "version": "1.0",
  "manifest_version": 3,
  "content_scripts": [
    {
      "matches": ["https://music.yandex.ru/*"],
      "js": ["content-script/add-API.js"],
      "run_at": "document_start"
    }
  ]
}

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

Подключите скрипт к странице с Яндекс Музыкой через расширение Chrome и используйте externalAPI:

console.log(externalAPI.getCurrentTrack());
externalAPI.togglePause();
externalAPI.next();

Подписаться на события:

externalAPI.on(externalAPI.EVENT_TRACK, () => {
  console.log('Трек изменился');
});

Расширение функциональности

Если вы хотите расширить возможности API, вы можете иследовать externalAPI.dev чтобы доработать или создать собственные функции.


Что реализовано

📦 Методы: Получение данных о треках и источнике

Метод Описание
getCurrentTrack() Данные о текущем треке
getNextTrack() Данные о следующем треке
getPrevTrack() Данные о предыдущем треке
getTracksList() Данные о списке треков
getTrackIndex() Индекс текущего трека в списке
getSourceInfo() Данные о текущем источнике воспроизведения
populate(fromIndex, [after], [before], [ordered]) Подгрузка данных о треках в текущий список воспроизведения.
fromIndex - индекс с которого начинается загрузка треков.
after - (необязательный параметр), количество треков загружаемых после fromIndex.
before - (необязательный параметр), количество треков загружаемых перед fromIndex.
ordered - Этот параметр не реализован

🎛 Методы: Получение состояния плеера##

Метод Описание
isPlaying() проверка, что плеер запущен и не на паузе
getControls() Доступные элементы управления
getShuffle() Состояние шаффла (true / false)
getRepeat() Состояние повтора (0, 1, "none")
getVolume() Текущий уровень громкости
getSpeed() Текущая скорость воспроизведения
getProgress() Временные метрики текущего трека

▶ Методы: Управление плеером

Метод Описание
play(index) Запуск воспроизведения (по индексу). Если индекс не указан, будет запущен текущий выбранный трек
next() Следующий трек
prev() Предыдущий трек
togglePause(state) Пауза/воспроизведение (true / false)
toggleLike() Добавить/удалить трек в избранное
toggleDislike() Добавить/удалить трек в чёрный список
toggleShuffle(state) переключить режим шаффла (true/false)
toggleRepeat(state) Установка режима повтора (0/1/"none")
setVolume(value) Установка громкости (0–1)
setSpeed(value) Установка скорости воспроизведения
toggleMute(state) Вкл./выкл. звук
setPosition(value) Установка позиции воспроизведения

🧭 Прочее

Метод Описание
navigate(url) Переход по внутреннему адресу (без протокола и домена)

🔔 События

Событие Описание
EVENT_READY Готовность интерфейса
EVENT_STATE Изменение состояния плеера
EVENT_TRACK Смена трека
EVENT_CONTROLS Изменение состояния элементов управления
EVENT_SOURCE_INFO Смена источника воспроизведения
EVENT_TRACKS_LIST Изменение списка треков
EVENT_VOLUME Изменение громкости
EVENT_SPEED Изменение скорости воспроизведения
EVENT_PROGRESS изменение временных метрик трека

Нереализованные методы, события

Событие Описание
EVENT_ADVERT Начало/окончание рекламы

About

externalAPI polyfill для нового дизайна (2025) Яндекс Музыки

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published