manifest.json
Маніфест описує ідентичність аддона, категорію, дозволи та необов'язковий web 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 (worker не потрібен) |
Правила 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 |
Постійний web-віджет (OBS browser source, вбудовування в оверлей) |
application |
Окреме вікно всередині застосунку |
game |
Ігрова інтеграція (внутрішньоігрові ефекти від подій стріму) |
Документація за категоріями: Platform, Overlay, Widget, Application, Game.
Дозволи в маніфесті
Перелічіть усі можливості, які потрібні вашому аддону. Користувач підтверджує їх під час встановлення. ROOT проходить усі перевірки, але не слід використовувати в production-аддонах.
Відображувані назви дозволів в UI застосунку використовують ключі settings.addons.permission.{PERMISSION_NAME} у мовних файлах застосунку — це стосується застосунку, а не файлів, які постачають автори аддонів.
Worker і без worker
| Патерн | Потрібен index.js |
Типові дозволи |
|---|---|---|
| Повна інтеграція | Так | За потребою вашої логіки |
| Лише статичний web | Ні | WEB_CONTENT |
| Простий медіа-оверлей | Ні | Немає (шляхи до медіа в блоці overlay) |