Automação de Transmissões
O PanoPaper pode avisar um site, uma automação residencial como o Home Assistant, um serviço de chat como o Slack ou o Discord, ou um atalho quando uma transmissão começa e quando termina, com o link para assistir - para mostrar um botão “Assista ao vivo” no seu próprio site, por exemplo, ou para publicar no canal da sua equipe.
Configure isso em Quando você transmitir ao vivo: o botão com a antena no fim das abas dos serviços em Ajustes ▸ Transmissão. Quando algo está configurado, a antena aparece colorida, e apontar para o botão mostra o que está ativado.
Webhook e atalho
- “Chamar um webhook” - o PanoPaper envia uma mensagem para um endereço web: o seu próprio servidor, uma automação residencial como o Home Assistant ou um serviço que aceite webhooks. Clique em “Definir…” para digitar ou colar o endereço e em “Editar…” para alterá-lo; ele fica nas suas chaves, pois um endereço assim costuma conter um segredo. “Testar” envia na hora uma mensagem de exemplo e mostra a resposta do servidor. Se o servidor responder com uma página web, o endereço provavelmente é um site, e não um webhook.
- “Executar um atalho” (Edição Web) - executa o atalho que você escolher abaixo, com a mesma mensagem como entrada: um pequeno arquivo JSON que o atalho pode ler como dicionário.
Quando as mensagens são enviadas
Uma mensagem “live” é enviada assim que o serviço aceita a sua transmissão, e de novo sempre que um serviço entra ou sai enquanto outro continua ao vivo; “stopped” é enviada quando o último para. Clicar em Encerrar transmissão no YouTube Studio não para a transmissão do PanoPaper, então nada é enviado até você encerrar a transmissão no PanoPaper.
Com a sua conta do YouTube conectada, uma mensagem “live” para o YouTube também traz os links da própria transmissão; o PanoPaper espera até meio minuto que o YouTube informe o vídeo antes de enviá-la. Enquanto você está ao vivo, uma mensagem “viewers” também é enviada sempre que muda o número de pessoas assistindo no YouTube; o PanoPaper verifica a cada cinco minutos.
A mensagem
O PanoPaper envia a mensagem como um POST HTTP com o tipo de conteúdo application/json, em UTF-8, e o user agent PanoPaper/ seguido da versão dele. Qualquer resposta 2xx conta como recebida, e o corpo da resposta não é lido. Cada tentativa espera até 15 segundos por uma resposta. Quando a rede falha, ou o servidor responde 408, 429 ou 5xx, o PanoPaper tenta de novo depois de 5 segundos e mais uma vez 30 segundos depois disso; outras respostas não levam a uma nova tentativa, e “Testar” tenta só uma vez. As mensagens são enviadas uma depois da outra, na ordem em que as coisas aconteceram, então um “stopped” nunca chega antes do seu “live”.
Uma mensagem “live” para o YouTube e o Facebook, com a sua conta do YouTube conectada:
{
"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 está ao vivo no YouTube e Facebook: https://www.youtube.com/watch?v=AbCdEfGhIjK",
"content" : "Port Dome está ao vivo no YouTube e Facebook: https://www.youtube.com/watch?v=AbCdEfGhIjK"
}
| Campo | Tipo | O que contém |
|---|---|---|
event |
string | live, stopped, viewers ou test. Use este campo, e não text, para saber o que aconteceu. |
services |
array de strings | Os serviços: YouTube, Facebook e, para outro serviço, o nome do servidor dele, como live.twitch.tv (um nome com mais de 20 caracteres é enviado como “Servidor Personalizado”, no idioma do PanoPaper). Em “live” e “viewers”, todos os serviços no ar naquele momento; em “stopped”, os que estavam no ar; em “test”, os que estão prontos para transmitir ao vivo. |
watch |
string (URL) | O link para assistir: a página ao vivo do seu canal, https://www.youtube.com/@<channel>/live - ou, com a sua conta conectada e “Tornar a transmissão pública” desativado, a página própria da transmissão, já que uma transmissão não listada não aparece na sua página ao vivo. Só enquanto o YouTube estiver entre os serviços e o seu Canal estiver informado, e em “test” sempre que o seu Canal estiver informado. |
videoId |
string | O ID do vídeo da transmissão no YouTube. Só com a sua conta do YouTube conectada, depois que o YouTube informar o vídeo: em “live”, “viewers” e “test”, nunca em “stopped”. |
video |
string (URL) | A página da própria transmissão, https://www.youtube.com/watch?v=<videoId>. É enviado junto com videoId. |
embed |
string (URL) | A transmissão para exibir em uma página web, https://www.youtube.com/embed/<videoId>, como endereço de um <iframe>. É enviado junto com videoId. |
viewers |
inteiro | Quantas pessoas estão assistindo no YouTube, segundo a contagem do YouTube. Só com a sua conta do YouTube conectada e depois que o PanoPaper verificou, cerca de um minuto após o início da transmissão: em “viewers”, e em “live” e “test” enquanto o número for conhecido; nunca em “stopped”. |
camera |
string | O nome da câmera como o PanoPaper o mostra: a câmera no ar e, em “stopped”, a última que esteve no ar. Com câmeras em revezamento, a que estava no ar quando a mensagem foi enviada - a troca para a próxima câmera não envia mensagem. |
time |
string | Quando a mensagem foi criada, em ISO 8601 e UTC, com precisão de segundos: 2026-10-20T14:03:12Z. |
text, content |
string | A mesma frase duas vezes, no idioma do PanoPaper - em “live”, com o link da própria transmissão se ele for conhecido e, caso contrário, a página ao vivo do seu canal: text é o que o Slack mostra como mensagem, content o que o Discord mostra. Ela é feita para pessoas e o texto pode mudar, então não extraia nenhuma informação dela. |
Um campo sem valor fica de fora, nunca é enviado vazio nem como null. Os campos podem vir em qualquer ordem, e versões futuras do PanoPaper podem acrescentar campos: ignore os que você não conhece.
Mantendo o endereço em segredo
O PanoPaper não assina a mensagem nem acrescenta uma senha própria. Para garantir que só o PanoPaper possa enviar mensagens ao seu servidor, coloque um segredo no próprio endereço, como um caminho longo e aleatório ou um token na query string - os endereços de webhook do Home Assistant, por exemplo, já funcionam assim. É por isso que o endereço fica nas suas chaves.
Em um atalho
Um atalho recebe o mesmo JSON como um arquivo com o nome do evento, como “PanoPaper live.json”.
Atalhos e Siri também podem iniciar e parar uma transmissão.