На цій сторінці
Що таке type?
type — канонічний ідентифікатор джерела у вхідних даних Social Stream. Оверлеї, фільтри URL, API та Event Flow використовують його, щоб розрізняти платформи й варіанти джерел.
{
"type": "youtubeshorts",
"chatname": "Ava",
"chatmessage": "Hello from Shorts"
}
| Назва | Значення | Не плутайте з |
|---|---|---|
type |
Джерело вхідних даних, наприклад youtube або instagramlive. |
Відображуваний підпис, режим підключення або назва події. |
event |
Що відбулося, наприклад superchat, gift, або viewer_update. |
Платформа, що їх створила. |
sourceName |
Необов’язковим відображуваним ім’ям каналу, кімнати або джерела. | Стабільне значення, яке використовує тригер From Source. |
tid |
ID початкової вкладки або вікна джерела настільного застосунку, який використовується для відповіді й виключення джерела. | Типом платформи. |
Настільний застосунок target |
Збережена категорія для вибору URL, режиму й скрипту захоплення. | Гарантією, що всі надіслані дані мають однаковий рядок. |
Важливо: В Event Flow Із джерела (From Source) тригер безпосередньо порівнює налаштоване значення з message.type. Використовуйте точне значення з даних у нижньому регістрі.
Поширені й неоднозначні типи
| Назва захоплення або інтерфейсу | Тип даних | Чому це може дивувати |
|---|---|---|
| Чат наживо YouTube | youtube |
DOM, опитування API та WebSocket/потокова передача описують транспорт, а не окремі типи. |
| Чат наживо YouTube Shorts | youtubeshorts |
Він окремий для вхідних фільтрів і напрямків пересилання Event Flow, тоді як спільне керування YouTube за потреби все одно розглядає обидва варіанти як одну родину. |
| Instagram Live / InstaFeed live | instagramlive |
Коментарі дописів і стрічки Instagram використовують instagram. |
| TikFinity | tiktok |
TikFinity — з’єднувач; нормалізованою платформою залишається TikTok. |
| X | xабо застарілий twitter з параметром брендингу Twitter |
Наявні фільтри можуть навмисно зберігати стару назву. |
| Регіональні варіанти Bilibili | bilibili |
Цілі й скрипти настільного застосунку можуть називатися bilibilicom або bilibilitv, тоді як дані нормалізуються. |
| Системні події OBS | obs |
Це не джерела чату, але вони можуть надходити в Event Flow з подіями на кшталт scene_changed. |
Використовуйте Довідник подій щодо контракту полів і Підтримувані сайти щодо публічних назв налаштування платформ.
YouTube Shorts і Event Flow
Зіставлення вхідних даних точне: використовуйте youtubeshorts у тригері From Source для повідомлень Shorts і youtube для звичайного чату наживо YouTube.
Зіставлення вихідних даних також точне: Relay Chat розглядає їх як окремі напрямки.
- Напрямок
youtubeнадсилає лише у звичайні вікна чату наживо YouTube. - Напрямок
youtubeshortsнадсилає лише у вікна чату наживо YouTube Shorts. - Щоб охопити обидва, додайте по одній дії для кожного напрямку або пересилайте на всі платформи, виключивши джерело.
Інше загальне керування YouTube може навмисно обробляти обидва типи як одну родину платформ. Це не змінює точного зіставлення Event Flow вище.
Усунення проблем старіших версій
Старіші версії об’єднували обидва напрямки пересилання, тому дві дії могли двічі надсилати в кожне вікно YouTube. Оновіть Social Stream Ninja, якщо це відбувається. Reflection Filter запобігає циклам пересилання, але не виправляє перекриття зіставлення напрямків у цих старіших версіях.
Продовжіть із Посібник із потоків подій або Посібник із налаштування YouTube.
Instagram Live і коментарі Instagram: відмінності
Використовуйте instagramlive для чату кімнати ефіру, захопленого джерелом Instagram Live або InstaFeed live. Використовуйте instagram для коментарів стрічки, дописів або статичних коментарів поза ефіром.
- Потік чату наживо: From Source =
instagramlive. - Потік дописів/коментарів: From Source =
instagram. - Обидва: використовуйте два тригери з однією спільною дією або тригер Any Source із подальшим фільтром за типом.
Видимого бренду Instagram недостатньо для вибору типу; їх розрізняє контекст вмісту.
Універсальні, власні та безіменні джерела
sources/generic.js — універсальний резервний варіант захоплення DOM. Він шукає типові рядки чату, імена, повідомлення, аватари та поля введення. Починає з generic, а потім зазвичай визначає тип у нижньому регістрі за відомою платформою або іменем хоста сторінки.
- Використовуйте його, щоб переконатися, що звичайний DOM-чат можна захопити, перш ніж писати окреме джерело.
- Не очікуйте надійної підтримки подій, модерації, видалення, віртуалізованих списків або закритого shadow DOM.
- Тип, отриманий з імені хоста, зручний, але не є постійним публічним контрактом. Перевірте надіслані дані, перш ніж будувати на ньому фільтри.
- Якщо джерело не має усталеної назви платформи, виберіть одне стабільне значення в нижньому регістрі
type. ВикористовуйтеsourceNameдля видимого користувачеві підпису кімнати або каналу. - Якщо сталої ідентичності ще немає,
genericбезпечніше, ніж змінювати тип у кожному повідомленні. Зовнішні інтеграції часто використовують свідомо вибране значення, наприкладexternal.
Щойно користувачі, оверлеї або потоки починають залежати від нового типу, задокументуйте його в Довідник подій , а не непомітно перейменовуйте його.
Підключення скриптів настільного застосунку
Настільний застосунок зберігає для джерела target, вибирає один або кілька sourceFile/sourceFiles, відкриває вікно джерела й підключає спільні скрипти захоплення цього проєкту. Міст сумісності Chrome runtime передає захоплені повідомлення й команди відповіді між сторінкою та застосунком.
- Ціль і назва файлу скрипту не обов’язково збігаються з типом даних.
youtubeshortsціль завантажуєsources/youtube.js, який надсилаєyoutubeабоyoutubeshortsз контексту сторінки. - Цілі Bilibili аналогічно зіставляються зі спільними/регіональними скриптами, але надсилають
bilibili. sources/inject/*.jsфайли — допоміжні засоби контексту сторінки для сокетів або змінних сторінки. Обгортка джерела й далі відповідає за канонічні дані.- Коли підключено кілька скриптів, не допускайте, щоб кожен допоміжний скрипт заявляв той самий вихідний напрямок. Ідентичність захоплення та можливість відповіді — окремі питання.
- Зміни захоплення джерел належать до
sources/файлів цього репозиторію. Настільний застосунок використовує їх; його вбудована резервна копія не є джерелом істини.
Супроводжувачі можуть простежити налаштування в index.html створенні вікна джерела, а потім main.js і preload.js для підключення та мосту.
Відповіді та пересилання до джерел
Вхідна ідентичність і можливість вихідного надсилання пов’язані, але це різні контракти.
| Дія | Як вибирає | Поширений збій |
|---|---|---|
| Відповісти джерелу | Використовує tid , щоб адресувати точну початкову вкладку/вікно. |
Ні tid, або цей режим захоплення не може надсилати повідомлення чату. |
| Переслати на платформу | Запитує відкриті джерела, чи підтримують вони цей вихідний напрямок. | Вибраний варіант не має відповідного відкритого вікна джерела або джерело не може надсилати повідомлення чату. |
| Переслати всім, крім джерела | Транслює джерелам, доступним для маршрутизації, і виключає початковий tid. |
Джерело не може приймати автоматизоване введення або віддзеркалення захоплюється знову. |
- Параметр скрипту джерела
getSourceвідповідь є сигналом можливості вихідної маршрутизації. Спільне керування YouTube може групувати обидва варіанти, тоді як Relay Chat додає точний контекст URL Shorts для зіставлення напрямку. - Універсальне захоплення може знаходити й фокусувати ймовірні поля введення, але це не гарантує, що сайт прийме автоматичне надсилання.
- Режими API/WebSocket можуть надсилати через API платформ замість введення на видимій сторінці.
- У настільному застосунку Бот лише для відповідей (без захоплення) залишає джерело доступним для відповідей/стану, пригнічуючи його звичайні захоплені повідомлення.
- Перевірте підтримку відповідей з одним вікном джерела, перш ніж будувати пересилання між багатьма платформами.
Де знайти точні відомості
- Довідник подій: канонічні поля й назви подій платформ.
- Посібник із потоків подій: тригери, дії, шаблони, обробка віддзеркалення й тести.
- Режими окремого застосунку: поведінка вікон джерел і режимів підключення.
- Підтримувані сайти: назви платформ і вимоги налаштування.
- Універсальні та власні джерела: резервне та зовнішнє захоплення.
- Вікна джерел настільного застосунку: внутрішня робота цілей, скриптів, мосту й режиму лише відповідей.
- Додавання джерела: контракти джерел, допоміжні засоби підключення, маніфести й документація.
Під час налагодження перегляньте один сирий набір даних і запишіть його type, event, sourceName, і tid. Зазвичай це розділяє зіставлення вхідних даних, вихідну маршрутизацію та дублювання захоплення.