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