Автоматизація трансляцій
PanoPaper може повідомити сайт, домашню автоматизацію, як-от Home Assistant, чат-сервіс, як-от Slack чи Discord, або швидку команду, коли трансляція починається й завершується, з посиланням для перегляду, - наприклад, щоб показати кнопку «Дивитися наживо» на власному сайті або написати в канал вашої команди.
Налаштуйте це у вікні Коли починаєте трансляцію: його відкриває кнопка з антеною в кінці вкладок сервісів у Параметри ▸ Трансляція. Коли щось налаштовано, антена кольорова, а якщо навести вказівник на кнопку, видно, що ввімкнено.
Вебхук і швидка команда
- «Викликати вебхук» - PanoPaper надсилає повідомлення на вебадресу: ваш власний сервер, домашню автоматизацію, як-от Home Assistant, або сервіс, що приймає вебхуки. Клацніть «Задати…», щоб ввести чи вставити адресу, і «Змінити…», щоб її змінити; вона зберігається у вашій В'язці, бо така адреса часто містить секрет. «Перевірити» одразу надсилає пробне повідомлення й показує відповідь сервера. Якщо сервер відповідає вебсторінкою, адреса, найпевніше, веде на сайт, а не до вебхука.
- «Запускати швидку команду» (вебверсія) - запускає швидку команду, яку ви виберете нижче, з тим самим повідомленням як вхідними даними: невеликим файлом JSON, який команда може прочитати як словник.
Коли надсилаються повідомлення
Повідомлення «live» надсилається, щойно сервіс прийняв ваш потік, і ще раз щоразу, коли якийсь сервіс приєднується або виходить, поки інший лишається в ефірі; «stopped» - коли зупиняється останній. Клацання Завершити трансляцію в YouTube Studio не зупиняє потік PanoPaper, тож нічого не надсилається, доки ви не зупините трансляцію в PanoPaper.
Коли ваш обліковий запис YouTube під'єднано, повідомлення «live» для YouTube також містить власні посилання трансляції; PanoPaper чекає до пів хвилини, доки YouTube повідомить про відео, перш ніж надіслати його. Під час трансляції щоразу, коли змінюється кількість глядачів на YouTube, також надсилається повідомлення «viewers»; PanoPaper перевіряє її кожні п'ять хвилин.
Повідомлення
PanoPaper надсилає повідомлення як запит HTTP POST із типом вмісту application/json, у кодуванні UTF-8 і з агентом користувача PanoPaper/, після якого йде номер версії. Будь-яка відповідь 2xx вважається підтвердженням отримання, а тіло відповіді не читається. Кожна спроба чекає на відповідь до 15 секунд. Якщо стається помилка мережі або сервер відповідає 408, 429 чи 5xx, PanoPaper повторює спробу через 5 секунд і ще раз через 30 секунд після того; після інших відповідей спроби не повторюються, а «Перевірити» пробує лише один раз. Повідомлення надсилаються одне за одним, у тому порядку, у якому все відбувалося, тож «stopped» ніколи не надійде раніше за свій «live».
Повідомлення «live» для YouTube і Facebook, коли ваш обліковий запис YouTube під'єднано:
{
"event" : "live",
"services" : [
"YouTube",
"Facebook"
],
"watch" : "https://www.youtube.com/@yourchannel/live",
"videoId" : "AbCdEfGhIjK",
"video" : "https://www.youtube.com/watch?v=AbCdEfGhIjK",
"embed" : "https://www.youtube.com/embed/AbCdEfGhIjK",
"camera" : "Port Dome",
"time" : "2026-10-20T14:03:12Z",
"text" : "Port Dome транслюється наживо на YouTube і Facebook: https://www.youtube.com/watch?v=AbCdEfGhIjK",
"content" : "Port Dome транслюється наживо на YouTube і Facebook: https://www.youtube.com/watch?v=AbCdEfGhIjK"
}
| Поле | Тип | Що містить |
|---|---|---|
event |
рядок | live, stopped, viewers або test. Щоб визначити, що сталося, використовуйте це поле, а не text. |
services |
масив рядків | Сервіси: YouTube, Facebook, а для іншого сервісу - назва його сервера, як-от live.twitch.tv (назва, довша за 20 символів, надсилається як «Власний сервер» мовою PanoPaper). У «live» і «viewers» - усі сервіси, що в ефірі в цю мить; у «stopped» - ті, що були в ефірі; у «test» - ті, що готові почати трансляцію. |
watch |
рядок (URL) | Посилання для перегляду: сторінка трансляції вашого каналу, https://www.youtube.com/@<channel>/live, - або, коли обліковий запис під'єднано, а «Робити трансляцію видимою для всіх» вимкнено, сторінка самої трансляції, бо трансляції, доступної лише за посиланням, немає на сторінці трансляції вашого каналу. Лише коли YouTube серед сервісів і вказано ваш Канал, а в «test» - завжди, коли Канал вказано. |
videoId |
рядок | Ідентифікатор відео трансляції YouTube. Лише коли ваш обліковий запис YouTube під'єднано і YouTube уже повідомив про відео: у «live», «viewers» і «test», ніколи в «stopped». |
video |
рядок (URL) | Власна сторінка трансляції, https://www.youtube.com/watch?v=<videoId>. Надсилається разом із videoId. |
embed |
рядок (URL) | Трансляція для показу на вебсторінці, https://www.youtube.com/embed/<videoId>, як адреса для <iframe>. Надсилається разом із videoId. |
viewers |
ціле число | Скільки людей дивиться на YouTube, за підрахунком YouTube. Лише коли ваш обліковий запис YouTube під'єднано і після першої перевірки PanoPaper, через хвилину після початку трансляції: у «viewers», а також у «live» і «test», поки число відоме; ніколи в «stopped». |
camera |
рядок | Назва камери, як її показує PanoPaper: камера в ефірі, а в «stopped» - остання, що була в ефірі. Коли камери транслюються по черзі, - та, що була в ефірі в момент надсилання повідомлення; перемикання на наступну камеру повідомлення не надсилає. |
time |
рядок | Коли створено повідомлення, в ISO 8601 і UTC, з точністю до секунди: 2026-10-20T14:03:12Z. |
text, content |
рядок | Те саме речення двічі, мовою PanoPaper - у «live» з власним посиланням трансляції, якщо воно відоме, інакше зі сторінкою трансляції вашого каналу: text Slack показує як повідомлення, а content - Discord. Воно призначене для людей, і його формулювання може змінитися, тож не вибирайте з нього жодних даних. |
Поле без значення пропускається - воно ніколи не надсилається порожнім чи як null. Поля можуть іти в будь-якому порядку, а новіші версії PanoPaper можуть додавати поля: пропускайте ті, яких не знаєте.
Секретна адреса
PanoPaper не підписує повідомлення й не додає власного пароля. Щоб повідомлення на ваш сервер могли надходити лише від PanoPaper, додайте секрет у саму адресу, як-от довгий випадковий шлях або токен у рядку запиту - адреси вебхуків Home Assistant, наприклад, уже так і влаштовані. Саме тому адреса зберігається у вашій В'язці.
У швидкій команді
Швидка команда отримує той самий JSON як файл, названий за подією, наприклад «PanoPaper live.json».
Швидкі команди та Siri теж можуть починати й зупиняти трансляції.