Это расширение восстанавливает 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 |
Начало/окончание рекламы |