Automatización de transmisiones
PanoPaper puede avisar a un sitio web, a un sistema domótico como Home Assistant, a un servicio de chat como Slack o Discord, o a un atajo cuando empieza y cuando termina una emisión, con el enlace para verla; por ejemplo, para mostrar un botón “Ver en directo” en tu propio sitio web o para publicar en el canal de tu equipo.
Configúralo en Cuando emites en directo: el botón con la antena, al final de las pestañas de los servicios en Ajustes ▸ Transmisión. Cuando hay algo configurado, la antena se muestra en color, y al señalar el botón se indica qué está activado.
Webhook y atajo
- “Llamar a un webhook” - PanoPaper envía un mensaje a una dirección web: tu propio servidor, un sistema domótico como Home Assistant o un servicio que acepte webhooks. Haz clic en “Establecer…” para escribir o pegar la dirección, y en “Editar…” para cambiarla; se guarda en tu llavero, porque una dirección así suele contener un secreto. “Probar” envía al momento un mensaje de ejemplo y muestra la respuesta del servidor. Si el servidor responde con una página web, lo más probable es que la dirección sea un sitio web y no un webhook.
- “Ejecutar un atajo” (edición web) - ejecuta el atajo que elijas debajo, con el mismo mensaje como entrada: un pequeño archivo JSON que el atajo puede leer como diccionario.
Cuándo salen los mensajes
Un mensaje “live” sale en cuanto el servicio acepta tu emisión, y otra vez cada vez que un servicio se suma o se detiene mientras otro sigue; “stopped” sale cuando se detiene el último. Hacer clic en Terminar emisión en YouTube Studio no detiene la emisión de PanoPaper, así que no se envía nada hasta que la detienes en PanoPaper.
Con tu cuenta de YouTube conectada, un mensaje “live” para YouTube incluye también los enlaces de la propia transmisión; PanoPaper espera hasta medio minuto a que YouTube informe del vídeo antes de enviarlo. Mientras emites en directo, también sale un mensaje “viewers” cada vez que cambia el número de personas que están viendo en YouTube; PanoPaper lo consulta cada cinco minutos.
El mensaje
PanoPaper envía el mensaje como HTTP POST con el tipo de contenido application/json, en UTF-8, y el agente de usuario PanoPaper/ seguido de su versión. Cualquier respuesta 2xx cuenta como recibida, y el cuerpo de la respuesta no se lee. Cada intento espera hasta 15 segundos una respuesta. Si falla la red, o el servidor responde 408, 429 o 5xx, PanoPaper lo vuelve a intentar a los 5 segundos y una última vez 30 segundos después; con otras respuestas no se reintenta, y “Probar” lo intenta solo una vez. Los mensajes salen uno tras otro, en el orden en que pasaron las cosas, así que un “stopped” nunca llega antes que su “live”.
Un mensaje “live” para YouTube y Facebook, con tu cuenta de 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á en directo en YouTube y Facebook: https://www.youtube.com/watch?v=AbCdEfGhIjK",
"content" : "Port Dome está en directo en YouTube y Facebook: https://www.youtube.com/watch?v=AbCdEfGhIjK"
}
| Campo | Tipo | Contenido |
|---|---|---|
event |
cadena | live, stopped, viewers o test. Usa este campo, y no text, para saber qué ha pasado. |
services |
array de cadenas | Los servicios: YouTube, Facebook y, para otro servicio, el nombre de su servidor, como live.twitch.tv (un nombre de más de 20 caracteres se envía como “Servidor personalizado”, en el idioma de PanoPaper). En “live” y “viewers”, todos los servicios que están en antena en ese momento; en “stopped”, los que estaban en antena; en “test”, los que están listos para emitir en directo. |
watch |
cadena (URL) | El enlace para verla: la página en directo de tu canal, https://www.youtube.com/@<channel>/live - o, con tu cuenta conectada y “Hacer pública la transmisión” desactivado, la página propia de la transmisión, ya que una transmisión oculta no aparece en tu página en directo. Solo cuando YouTube está entre los servicios y has indicado tu Canal, y en “test” siempre que hayas indicado tu Canal. |
videoId |
cadena | El ID de vídeo de la transmisión en YouTube. Solo con tu cuenta de YouTube conectada, una vez que YouTube ha informado del vídeo: en “live”, “viewers” y “test”, nunca en “stopped”. |
video |
cadena (URL) | La página de la propia transmisión, https://www.youtube.com/watch?v=<videoId>. Se envía junto con videoId. |
embed |
cadena (URL) | La transmisión para mostrarla en una página web, https://www.youtube.com/embed/<videoId>, como dirección de un <iframe>. Se envía junto con videoId. |
viewers |
entero | Cuántas personas están viendo en YouTube, según las cuenta YouTube. Solo con tu cuenta de YouTube conectada y una vez que PanoPaper lo ha consultado, alrededor de un minuto después de que empiece la transmisión: en “viewers”, y en “live” y “test” mientras se conoce; nunca en “stopped”. |
camera |
cadena | El nombre de la cámara tal como lo muestra PanoPaper: la cámara en antena y, en “stopped”, la última que lo estuvo. Con cámaras por turnos, la que estaba en antena cuando se envió el mensaje - pasar a la siguiente cámara no envía ningún mensaje. |
time |
cadena | Cuándo se creó el mensaje, en ISO 8601 y UTC, al segundo: 2026-10-20T14:03:12Z. |
text, content |
cadena | La misma frase dos veces, en el idioma de PanoPaper - en “live”, con el enlace de la propia transmisión si se conoce y, si no, con la página en directo de tu canal: text es lo que Slack muestra como mensaje, y content, lo que muestra Discord. Está pensada para personas y su redacción puede cambiar, así que no saques datos de ella. |
Un campo sin valor se omite: nunca se envía vacío ni como null. Los campos pueden llegar en cualquier orden, y las versiones futuras de PanoPaper pueden añadir campos: ignora los que no conozcas.
Mantener la dirección en secreto
PanoPaper no firma el mensaje ni añade una contraseña propia. Para asegurarte de que solo PanoPaper pueda enviar mensajes a tu servidor, pon un secreto en la propia dirección, como una ruta larga y aleatoria o un token en la cadena de consulta - las direcciones de webhook de Home Assistant, por ejemplo, ya funcionan así. Por eso la dirección se guarda en tu llavero.
En un atajo
Un atajo recibe el mismo JSON como un archivo con el nombre del evento, como “PanoPaper live.json”.
Atajos y Siri también pueden emitir en directo y detener una transmisión.