Envíos
POST /v1/casts acepta:
| Campo | Tipo | Notas |
|---|---|---|
url | string, obligatorio | http o https, hasta 4096 caracteres, sin usuario ni contraseña en la URL. HLS (.m3u8), DASH (.mpd), MP4 o WebM. |
title | string | Se muestra grande en el reproductor. |
poster | URL | Imagen mientras carga. |
subtitles | lista | { url, lang, label? }, WebVTT, SRT o TTML. El primero se activa solo. Hasta 20. |
startPosition | número | Segundos desde los que empezar. |
drm | objeto | { system: "widevine" | "playready", licenseUrl }. licenseUrl debe ser https y público. |
json
{
"url": "https://example.com/pelicula.mpd",
"title": "Mi película",
"subtitles": [{ "url": "https://example.com/es.vtt", "lang": "es", "label": "Español" }],
"startPosition": 90,
"drm": { "system": "widevine", "licenseUrl": "https://licencias.example.com" }
}Videos de tu red local
Puedes enviar http://192.168.1.20:8096/peli.m3u8, http://nas.local/… o http://localhost:…: el servidor de PlayerOFF nunca abre la URL, solo la reenvía al TV.
- En las apps de Samsung y LG funcionan sin restricciones.
- En un navegador, si el receptor está abierto por
https://, el navegador bloquea videoshttp://(contenido mixto) y algunos piden permiso para acceder a la red local. El receptor explica qué hacer en pantalla.
Reemplazo
Un envío nuevo reemplaza al que se está reproduciendo; no hay cola. El TV muestra el aviso "Nuevo video".
Estados de un envío
GET /v1/casts/{castId} (o el evento cast de GET /v1/sessions/events) devuelve:
status | Significa |
|---|---|
pending | Todavía no llega al TV. |
delivered | El TV lo recibió y lo está cargando. |
playing | Empezó a reproducirse (sigue así aunque se pause). |
ended | Llegó al final. |
stopped | Se cerró el reproductor (desde el TV, con stop o porque llegó otro video). |
failed | No se pudo reproducir; error dice por qué (network, unsupported, drm, mixed-content, local-network…). |
expired | No llegó al TV en 5 minutos, o lo reemplazó otro envío antes de llegar. |
Para el detalle de la reproducción (posición, pistas, volumen) usa Control remoto.
Formatos
HLS, DASH, MP4 (H.264/AAC) y WebM funcionan en todas partes. Para lo demás, cada TV usa el mejor reproductor que tiene:
| TV | Reproductor | Además abre |
|---|---|---|
| Android TV / Google TV / Fire TV | ExoPlayer (nativo) | MKV, AVI, TS; HEVC, AC3/E-AC3 y DTS si el TV los decodifica o los pasa al equipo de sonido; Widevine L1 |
| Samsung (Tizen) | Shaka, y AVPlay (nativo) para MKV, AVI, TS, WMV, FLV y MOV, o cuando Shaka no puede con un archivo | Lo que decodifique el TV |
| LG (webOS), Hisense (VIDAA), navegador | Shaka Player sobre el navegador | Lo que soporte el navegador del TV |
Con AVPlay (Samsung) hay tres límites: no carga subtítulos externos (sí los que vienen dentro del archivo), no reproduce DRM (los videos con DRM siguen en Shaka) y no tiene volumen propio: el comando volume no cambia nada y el TV avisa que se use su control.
