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) |