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.

Минимальный плагин

Создай файл my-plugin.js в папке плагинов:
BYM.register({
  id: 'my-plugin',
  name: 'Мой плагин',
  version: '1.0.0',
  description: 'Описание',
  author: 'Имя',
}, (api, getSetting) => {
  return {
    start() {
      // вызывается при включении
    },
    stop() {
      // вызывается при выключении
    },
  };
});
Файл подхватится автоматически. Включить плагин можно в BYM → кликнуть на него → тогл.

Плагин с настройками

BYM.register({
  id: 'track-logger',
  name: 'Track Logger',
  version: '1.0.0',
  settings: [
    { key: 'notify', type: 'boolean', label: 'Системное уведомление', default: true },
    { key: 'format', type: 'select', label: 'Формат',
      options: ['artist — title', 'title'], default: 'artist — title' },
  ],
}, (api, getSetting) => {
  function onTrack(track) {
    if (!track) return;
    const fmt  = getSetting('format') ?? 'artist — title';
    const text = fmt === 'title' ? track.title : `${track.artist}${track.title}`;
    api.Logger.log('Новый трек:', text);
    if (getSetting('notify') !== false) api.UI.notify(track.artist, track.title);
  }

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

Все модули api

МодульЧто делает
api.PlayerСкорость, громкость, позиция, next/prev/like
api.Eventsplay, pause, trackChange, volumeChange, seeked…
api.StorageПостоянное хранилище ключ-значение
api.UItoast, системные уведомления, confirm диалог
api.HTTPHTTP запросы без CORS (через main процесс)
api.HotkeysГлобальные горячие клавиши
api.ClipboardБуфер обмена
api.PatcherMonkey-patching любых функций
api.DOMquerySelector, waitFor, observe, injectCSS
api.NetПерехват fetch запросов YM
api.ReactДоступ к React Fiber дереву
api.WebpackПоиск webpack модулей YM
api.LoggerЛоггер с цветным префиксом плагина
getSetting(key) возвращает null если пользователь не сохранял настройку. Всегда используй ?? defaultValue.