Skip to main content

Documentation Index

Fetch the complete documentation index at: https://bym.lonestill.uk/llms.txt

Use this file to discover all available pages before exploring further.

Воспроизведение

api.Player.isPlaying()    // → boolean
api.Player.getPosition()  // → number, текущее время (сек)
api.Player.getDuration()  // → number, длина трека (сек)
api.Player.seek(sec)      // перемотать на позицию

Скорость

api.Player.getSpeed()    // → number (0.25–4)
api.Player.setSpeed(n)   // установить скорость
api.Player.resetSpeed()  // сбросить до 1× и остановить enforcer
setSpeed запускает фоновый таймер каждые 500мс — YM иногда сбрасывает скорость при смене трека, таймер это исправляет.

Громкость

api.Player.getVolume()   // → number (0–1)
api.Player.setVolume(v)  // установить (0–1)

Управление треками

api.Player.next()     // следующий трек
api.Player.prev()     // предыдущий трек
api.Player.like()     // лайк
api.Player.dislike()  // дизлайк
Реализованы через клик по DOM кнопкам плеера.

Повтор и перемешивание

api.Player.getRepeat()     // → 'none' | 'all' | 'one'
api.Player.toggleRepeat()  // none → all → one → none

api.Player.getShuffle()    // → boolean
api.Player.toggleShuffle() // переключить

Метаданные трека

api.Player.getTrack()
// → null | { title, artist, album, artwork }
Источник — MediaSession API. Возвращает null если ничего не играет.
ПолеТипОписание
titlestringНазвание трека
artiststringИсполнитель
albumstringАльбом
artworkstringURL обложки

Пример

BYM.register({ id: 'player-demo' }, (api) => {
  function onTrack(track) {
    if (!track) return;
    api.Logger.log(`${track.artist}${track.title}`);
    api.UI.notify(track.artist, track.title);
  }

  return {
    start() {
      api.Player.setSpeed(1.25);
      api.Events.on('trackChange', onTrack);
    },
    stop() {
      api.Player.resetSpeed();
      api.Events.off('trackChange', onTrack);
    },
  };
});