manifest.json

Манифест описывает идентичность аддона, категорию, разрешения и опциональный веб-UI.

Пример

{
  "name": {
    "en": "My Addon",
    "ru": "Мой аддон",
    "uk": "Мій аддон"
  },
  "description": {
    "en": "Short description for the settings UI.",
    "ru": "Краткое описание для настроек.",
    "uk": "Короткий опис для налаштувань."
  },
  "id": "MyOrg/my-stream-addon",
  "type": "platform.streaming",
  "version": "1.0.0",
  "author": "Your Name",
  "icon": "logo.png",
  "permissions": ["NETWORK_REQUEST", "WEB_END_POINTS"]
}

Обязательные поля

Поле Тип Описание
id string Стабильный идентификатор аддона, привязанный к GitHub-репозиторию (ORG/REPO). Используется в URL, depends_on и записях об установке
name { en, ru?, uk? } Отображаемое имя в настройках
description { en, ru?, uk? } Краткое описание в настройках
type string Категория аддона (см. Категории аддонов)
version string Строка семантической версии
permissions string[] Флаги возможностей (см. Разрешения)

id должен быть уникальным среди установленных аддонов. Используется в URL (/addon/{id}/…, /addon_static/{id}/…) и не обязан совпадать с именем папки на диске.

Укажите ORG/REPO — владелец (организация или пользователь GitHub) и имя репозитория. Пример: репозиторий https://github.com/MyOrg/my-stream-addon"id": "MyOrg/my-stream-addon". См. Публикация и релизы — структура релиза и проверка обновлений.

Опциональные поля

Поле Тип Описание
author string Имя автора
icon string Имя файла иконки в папке аддона
depends_on string[] Id аддонов, которые должны быть установлены и включены до включения этого аддона. Установка без активации всегда разрешена.
platform string | string[] Ограничение установки по ОС: win32, darwin, linux. Если не указано — все платформы.
app_version string Минимальная версия StreamKit+ (major.minor.patch, например 1.0.0). Если не указано — любая версия приложения. Установка и обновление блокируются, если приложение старше.
web string Локальный HTML-файл или внешний URL http(s)
web_type "overlay" | "widget" | "application" Обязателен при наличии web; должен соответствовать правилам type ниже
web_contents string[] Дополнительные статические файлы, отдаваемые вместе со страницей
overlay object Простой медиа-оверлей: пути к файлам audio / video (воркер не нужен)

Правила web и web_type

type Требуемый web_type
overlay overlay
widget widget
application application

При разрешении WEB_CONTENT статические файлы доступны по /addon_static/{id}/.

Категории аддонов

type Назначение
platform.streaming Интеграция стриминговой платформы (чат, события, статус эфира)
platform.donation Интеграция донат-платформы
overlay Срабатываемые эффекты оверлея
overlay.info Информационная панель при эффектах оверлея
widget Постоянный веб-виджет (OBS browser source, встраивание в оверлей)
application Отдельное окно внутри приложения
game Игровая интеграция (внутриигровые эффекты от событий стрима)

Документация по категориям: Платформа, Оверлей, Виджет, Приложение, Игра.

Разрешения в манифесте

Перечислите все возможности, которые нужны аддону. Пользователь подтверждает их при установке. ROOT проходит все проверки, но не должен использоваться в продакшен-аддонах.

Отображаемые имена разрешений в UI приложения берутся из ключей settings.addons.permission.{PERMISSION_NAME} в языковых файлах приложения — это зона ответственности приложения, а не то, что поставляют авторы аддонов.

Воркер и без воркера

Паттерн Нужен index.js Типичные разрешения
Полная интеграция Да По логике вашего аддона
Только статический веб Нет WEB_CONTENT
Простой медиа-оверлей Нет Нет (пути к медиа в блоке overlay)