Documentación

Listas de reproducción: comandos CLI

Prepara, valida, crea, modifica, exporta e importa listas de reproducción, gestiona páginas, revisiones e instancias y reemplaza una versión de aplicación.

Cada comando se ejecuta como describe la referencia de la CLI: banderas globales, salida JSON, códigos de salida, revisiones y reintentos.

Listas de reproducción

Una lista de reproducción es un documento JSON de páginas. playlist init prepara un documento a pantalla completa a partir de entradas ordenadas. playlist create y playlist update leen ese documento desde un archivo; playlist patch, playlist rename y playlist page add|replace|remove cambian una parte de él. La forma se resume bajo los comandos.

playlist init#

Prepare una lista de reproducción de pantalla completa editable a partir de archivos multimedia locales, ID de medios listos, ID de lanzamiento de aplicación, URL HTTP o HTTPS, o códigos de inserción de iframe pegados.

playlist init <inputs...> --name NAME --output FILE [--overwrite] [--screen-id ID]
              [--target-width PX --target-height PX] [--duration-ms MS] [--fit contain|cover|fill] [--sound]
              [--no-transcode] [--no-progress] [--poll-ms MS]
ParámetroTipoRequeridoPredeterminadoNotas
<inputs...>archivos, med_ IDs, rel_ IDs, URLs HTTP o HTTPS o códigos de inserción <iframe> pegadossíningunoOrden de reproducción. Los archivos locales de imagen, video y audio se cargan y esperan estar listos a menos que --no-transcode. Los medios existentes ya deben estar listos. Un archivo de audio o un ID de med_ de audio listo se convierte en la banda sonora, en el orden de entrada, en lugar de una página; al menos una entrada debe ser una página. Las URL HTTP y HTTPS pueden incluir hosts de la red local, credenciales integradas y tokens de pantalla como {screen.field.kiosk_id}, conservados tal como están escritos, y no se recuperan. Un código de inserción pegado se lee para obtener su src. La aplicación web del Player requiere URL HTTPS sin nombre de usuario ni contraseña.
--name NAMEstringsíningunoNombre para mostrar de la lista de reproducción.
--output FILErutasíningunoEscriba el documento editable de la lista de reproducción. Se crean los directorios padres. Exclusivo por defecto: un archivo existente no vacío falla con usage_error (salida 2) y se deja intacto.
--overwritebooleannoapagadoReemplazar un archivo de salida existente de forma atómica con un documento creado a partir de estas entradas.
--screen-id IDstringnoningunoLeer las dimensiones y la revisión de la pantalla objetivo. Una pantalla con un muro de video da el lienzo del muro y el format correspondiente.
--target-width PX / --target-height PXintegerjuntosno establecidoAnular tamaño del lienzo. Ambos o ninguno. Requerido cuando no se suministra pantalla o la pantalla reporta superficies desconocidas o múltiples.
--duration-ms MSintegerno8000Duración de las páginas que no son de video. Una página de aplicación se mantiene 24 horas (86400000) a menos que se indique.
--fitstringnocontaincontain, cover o fill para páginas de imagen y video. Aplicaciones e iframes usan fill.
--soundbooleannoapagadoReproduce el audio de las páginas de video. Sin ella, cada página de video queda en silencio. Una página con sonido pausa la banda sonora mientras se muestra.
--no-transcodebooleannoapagadoBytes del archivo subido aceptado sin cambios.
--no-progressbooleannoapagadoSuprimir progreso de carga en stderr.
--poll-ms MSintegerno1000Subir intervalo de sondeo.
screenrig playlist init med_01EXAMPLEIMAGE0000000000 med_01EXAMPLEVIDEO0000000000 --name "Lobby loop" --screen-id scr_01EXAMPLESCREEN00000000 --output lobby.json

La preparación escribe el documento local y puede subir medios; no crea una lista de reproducción remota ni asigna una pantalla. Inspeccione el documento, luego screen publish. Vea Preparar, publicar y editar listas de reproducción.

data informa output, width, height, page_count, soundtrack_tracks, release_ids, media_ids y uploads, y con --screen-id también screen_id, screen_revision y publish.argv; una pantalla con un muro de video añade format. Una página de aplicación configurada en menos de 60 segundos recibe una advertencia application_page_short.

playlist validate#

Valide un documento de lista de reproducción localmente antes de crear o actualizar. Sin red.

playlist validate <file>
ParámetroTipoRequeridoPredeterminadoNotas
<file>rutasíningunoEl documento de lista de reproducción, o - para stdin.
screenrig playlist validate ./lobby-loop.json

Los errores nombran rutas JSON exactas. Un pase significa que la forma local y la semántica cruzada de campos son válidas; autorización, preparación de medios, conteos de selectores dinámicos, duraciones y disponibilidad remota aún requieren verificaciones del servidor. playlist create, playlist update y screen publish ejecutan esta verificación antes de escribir. data informa valid, scope y server_checks, e incluye hallazgos lint de geometría, cada uno con page_id, code, id y message, que no hacen fallar la verificación: motion_overuse, collision, safe_margin y adjacent_repeat. Una página de aplicación que avanza en menos de 60 segundos recibe una advertencia application_page_short. Para ver cómo se ve una página, publíquela y ejecute screen screenshot.

playlist create#

Crea una lista de reproducción a partir de un documento JSON, de una plantilla o de la plantilla integrada Aviso urgente.

playlist create [file] [--from-template ID --name NAME [--set NAME=VALUE...] [--dry-run]] [--starter KEY [--name NAME]] [--format-region REGION --format-orientation ORIENTATION] [--note TEXT]
ParámetroTipoRequeridoPredeterminadoNotas
[file]rutanoningunoEl documento de lista de reproducción, o - para stdin. Indíquelo, o --from-template, o --starter. Contiene name, pages y, opcionalmente, audio, format y fields; cualquier otro miembro es un usage_error.
--from-template IDstringnoningunoCrea la lista de reproducción a partir de esta plantilla (un id pl_): sus páginas actuales con los valores de --set, validada como cualquier lista.
--name NAMEstringcon --from-templateningunoEl nombre de la nueva lista de reproducción. --dry-run no lo necesita, y --starter lo acepta de forma opcional.
--set NAME=VALUEstringnoningunoCon --from-template: el valor de un campo; para un campo de medio, el id de una imagen o un vídeo listo. Se puede repetir. NAME es un nombre de campo de 1 a 32 letras minúsculas, dígitos o guiones bajos, indicado una vez.
--dry-runbooleannoapagadoCon --from-template: comprueba los valores e informa del número de páginas sin crear nada.
--starter KEYstringnoningunoAñadir una plantilla integrada: urgent-notice, un titular y un mensaje para anuncios rápidos.
--format-region REGIONstringnoningunoheader, footer o side: convierte la lista de reproducción en una franja dibujada sobre la página a lo largo de ese borde y sustituye un format del archivo. Indíquela junto con --format-orientation. Consulte franjas.
--format-orientation ORIENTATIONstringcon --format-regionningunolandscape o portrait: la orientación de la pantalla para la que se hace la franja, tal como la ve el espectador.
--note TEXTstringnoningunoUna nota para la persona que revisa el cambio: texto plano, máximo 280 caracteres. Se ignora cuando el cambio se aplica de inmediato.
screenrig playlist create ./lobby-loop.json
screenrig playlist create --from-template pl_01EXAMPLETEMPLATE00000 --name "Monday notice" --set headline="Open late"

data.id del sobre es el id pl_ que toma screen assign. Cuando el cambio espera revisión, data es {status: pending_review, review, playlist, next}: la lista existe con approved_revision: 0 y ninguna pantalla puede mostrarla hasta que una persona la apruebe (playlist_not_approved); next es screenrig reviews show ID. Una plantilla es una lista que declara fields; nunca se muestra en una pantalla (playlist_is_template), y una lista creada a partir de ella es una lista normal que se puede asignar, programar y revisar.

playlist update#

Reemplazar un documento de lista de reproducción.

playlist update <id> <file> [--format-region REGION --format-orientation ORIENTATION] [--expect-rev REVISION] [--note TEXT]
ParámetroTipoRequeridoPredeterminadoNotas
<id>stringsíningunoEl id de lista de reproducción pl_.
<file>rutasíningunoEl documento de reemplazo, o - para stdin. Contiene name, pages y, opcionalmente, audio, format y fields; cualquier otro miembro es un usage_error. Omitir audio elimina la banda sonora, omitir format convierte la lista de reproducción en una ordinaria, y los fields omitidos se conservan.
--format-region REGIONstringnoningunoheader, footer o side: convierte la lista de reproducción en una franja dibujada sobre la página a lo largo de ese borde y sustituye un format del archivo. Indíquela junto con --format-orientation. Consulte franjas.
--format-orientation ORIENTATIONstringcon --format-regionningunolandscape o portrait: la orientación de la pantalla para la que se hace la franja, tal como la ve el espectador.
--expect-rev REVISIONstringnoningunoPrecondición opcional de revisión. Omitir para escribir el recurso actual. Un valor obsoleto suministrado es revision_conflict: volver a obtener, reaplicar, reintentar.
--note TEXTstringnoningunoUna nota para la persona que revisa el cambio: texto plano, máximo 280 caracteres. Se ignora cuando el cambio se aplica de inmediato.
screenrig playlist update pl_01EXAMPLEPLAYLIST000000 ./lobby-loop.json

playlist show ID --output FILE escribe un archivo con esta forma. Para cambiar solo una parte de una lista de reproducción, use playlist patch, playlist rename o playlist page add|replace|remove.

Cuando el cambio espera revisión, la lista de reproducción en vivo sigue reproduciéndose sin cambios hasta que una persona aprueba la propuesta.

playlist patch#

Cambie solo los miembros de nivel superior suministrados de una lista de reproducción y conserve todo lo demás.

playlist patch <id> [file] [--name NAME] [--clear-audio] [--expect-rev REVISION] [--note TEXT]
ParámetroTipoRequeridoPredeterminadoNotas
<id>stringsíningunoEl id de lista de reproducción pl_.
[file]rutanoningunoUn objeto JSON parcial con cualquiera de name, pages, audio, format y fields, o - para stdin. pages, audio y format suministrados reemplazan el valor completo; los arreglos no se combinan. audio: null elimina la banda sonora y format: null elimina el formato.
--name NAMEstringnosin cambiosEstablezca el nombre, de 1 a 120 caracteres tras recortar, sin enviar el contenido. No junto con name en el archivo.
--clear-audiobooleannoapagadoQuite la banda sonora, como hace audio: null. Ninguna página puede conservar un audio_cue. No junto con audio en el archivo.
--expect-rev REVISIONstringnoningunoPrecondición opcional de revisión. Omitir para escribir el recurso actual. Un valor obsoleto suministrado es revision_conflict: volver a obtener, reaplicar, reintentar.
--note TEXTstringnoningunoUna nota para la persona que revisa el cambio: texto plano, máximo 280 caracteres. Se ignora cuando el cambio se aplica de inmediato.
screenrig playlist patch pl_01EXAMPLEPLAYLIST000000 --name "Lobby loop" --expect-rev 7
screenrig playlist patch pl_01EXAMPLEPLAYLIST000000 changes.json --expect-rev 7

Indique un archivo, --name o --clear-audio. Un cambio solo de nombre no vuelve a comprobar el contenido existente. Los pages y audio suministrados se comprueban juntos en el servidor. Un format de región es {"region": "header", "orientation": "landscape"}; consulte franjas. Con acceso Propose, o en un proyecto que requiere revisión para cambios de agente, el cambio espera como con playlist update y responde pending_review.

playlist rename#

Cambie el nombre de una lista de reproducción sin enviar su contenido.

playlist rename <id> --name NAME [--expect-rev REVISION] [--note TEXT]
ParámetroTipoRequeridoPredeterminadoNotas
<id>stringsíningunoEl id de lista de reproducción pl_.
--name NAMEstringsíningunoEl nuevo nombre, de 1 a 120 caracteres tras recortar.
--expect-rev REVISIONstringnoningunoPrecondición opcional de revisión. Omitir para escribir el recurso actual. Un valor obsoleto suministrado es revision_conflict: volver a obtener, reaplicar, reintentar.
--note TEXTstringnoningunoUna nota para la persona que revisa el cambio: texto plano, máximo 280 caracteres. Se ignora cuando el cambio se aplica de inmediato.
screenrig playlist rename pl_01EXAMPLEPLAYLIST000000 --name "Lobby loop" --expect-rev 7

La forma de playlist patch que cambia solo el nombre: las páginas, la banda sonora y los comentarios se quedan como están, y el contenido existente no se vuelve a comprobar. Un cambio de nombre propuesto espera la aprobación de una persona como cualquier otro cambio.

playlist page add#

Añada una página a una lista de reproducción sin enviar las demás.

playlist page add <playlist-id> (--file PAGE.json | --media MED_ID) [--seconds N] [--fit contain|cover] [--sound]
                  [--from WHEN] [--until WHEN] [--before PAGE_ID] [--page-id ID]
                  [--expect-rev REVISION] [--note TEXT]
ParámetroTipoRequeridoPredeterminadoNotas
<playlist-id>stringsíningunoEl id de lista de reproducción pl_.
--file PAGE.jsonrutaexactamente uno de --file, --medianingunoUn objeto de página añadido tal como está escrito, o - para stdin. --seconds y --fit no se le aplican.
--media MED_IDstringexactamente uno de --file, --medianingunoUna imagen o video listo. La página lo muestra a lienzo completo en el lienzo de la lista de reproducción (el lienzo del muro para un muro de video, si no el de la primera página ordinaria) con la transición de la primera página ordinaria, y no tiene fechas a menos que las indique. Una imagen avanza tras --seconds; un video se reproduce hasta el final, sin sonido salvo con --sound.
--seconds Nintegerno10Cuánto tiempo se muestra una imagen, de 1 a 86400.
--fitstringnocontaincontain o cover.
--soundbooleannoapagadoReproduce el audio del video. Solo para un video; la página pausa la banda sonora mientras se muestra y no puede llevar un audio_cue. No se combina con --file, cuya página lleva su propio muted.
--from WHENstringnoningunoPrimera vez que se muestra la página: YYYY-MM-DDTHH:MM, o YYYY-MM-DD para las 00:00, en la zona horaria de cada pantalla.
--until WHENstringnoningunoFin de la visualización de la página, exclusivo: YYYY-MM-DDTHH:MM, o YYYY-MM-DD para el final de ese día.
--before PAGE_IDstringnoal finalColoque la página delante de esta página.
--page-id IDstringnoup- y ocho letras minúsculas o dígitosEl id de la página nueva: una letra, luego letras, dígitos, - o _, como máximo 64 caracteres.
--expect-rev REVISIONstringnoningunoPrecondición opcional de revisión. Omitir para escribir el recurso actual. Un valor obsoleto suministrado es revision_conflict: volver a obtener, reaplicar, reintentar.
--note TEXTstringnoningunoUna nota para la persona que revisa el cambio: texto plano, máximo 280 caracteres. Se ignora cuando el cambio se aplica de inmediato.
screenrig playlist page add pl_01EXAMPLEPLAYLIST000000 --media med_01EXAMPLEIMAGE0000000000 --from 2026-12-01 --until 2026-12-24
screenrig playlist page add pl_01EXAMPLEPLAYLIST000000 --media med_01EXAMPLEVIDEO0000000000 --before up-ab12cd34 --note "Winter menu"
screenrig playlist page add pl_01EXAMPLEPLAYLIST000000 --file page.json --page-id welcome

La página se muestra desde --from hasta --until, sin incluirlo. Las páginas terminadas permanecen hasta que alguien las elimine. La respuesta es la lista de reproducción actualizada.

Con acceso Propose, en un proyecto que requiere revisión para cambios de agente, o como miembro usuario de carga cuyos cambios se revisan, el cambio responde pending_review (ok: true, salida 0). Un cambio de página posterior en la misma lista de reproducción por el mismo proponente se une a esa revisión mientras espera, de modo que las cargas sucesivas no se reemplazan entre sí. Una lista de reproducción que ninguna persona ha aprobado aún responde playlist_not_approved. Un usuario de carga solo añade páginas de medios de sus propias carpetas a sus propias listas de reproducción; cualquier otra cosa es outside_upload_scope, cuyo upload_scope enumera lo que puede usar. Consulte Usuarios de carga.

playlist page replace#

Reemplace una página de una lista de reproducción, conservando su posición y su id.

playlist page replace <playlist-id> <page-id> [--file PAGE.json | --media MED_ID] [--seconds N] [--fit contain|cover]
                      [--sound] [--from WHEN] [--until WHEN | --always] [--expect-rev REVISION] [--note TEXT]
ParámetroTipoRequeridoPredeterminadoNotas
<playlist-id>stringsíningunoEl id de lista de reproducción pl_.
<page-id>stringsíningunoLa página a reemplazar.
--file PAGE.jsonrutanoningunoLa página nueva completa, o - para stdin. Su id debe ser <page-id> o estar ausente. No junto con --media.
--media MED_IDstringnoningunoSustituya los medios de la página; todo lo demás, fechas incluidas, queda como está almacenado. Una imagen por otra imagen conserva el lienzo, el ajuste, los segundos y las fechas, y lo mismo ocurre con un video por otro video. Una imagen por un video, o al revés, se reconstruye como una página de medios en el lienzo de la lista de reproducción que conserva el id, la transición y las fechas. Requiere una página con una sola primitiva.
--seconds Nintegernosin cambiosCuánto tiempo se muestra una imagen, de 1 a 86400. No con --file.
--fitstringnosin cambioscontain o cover. No con --file.
--soundbooleannoapagadoReproduce el audio del video de la página, solo o con --media. Solo para una página con una única primitiva de video; sin ella, un reemplazo conserva si la página tenía sonido. No se combina con --file.
--from WHENstringnosin cambiosPrimera vez que se muestra la página: YYYY-MM-DDTHH:MM, o YYYY-MM-DD para las 00:00, en la zona horaria de cada pantalla. Cambia solo ese límite.
--until WHENstringnosin cambiosFin de la visualización de la página, exclusivo: YYYY-MM-DDTHH:MM, o YYYY-MM-DD para el final de ese día. Cambia solo ese límite.
--alwaysbooleannoapagadoQuite las fechas de la página, from y until. Se conservan el apagado, las ventanas semanales o la condición de datos que el proyecto haya definido. No junto con --from ni --until.
--expect-rev REVISIONstringnoningunoPrecondición opcional de revisión. Una página derivada de la almacenada queda sujeta a la revisión con la que se leyó, a menos que indique una. Un valor obsoleto es revision_conflict.
--note TEXTstringnoningunoUna nota para la persona que revisa el cambio: texto plano, máximo 280 caracteres. Se ignora cuando el cambio se aplica de inmediato.
screenrig playlist page replace pl_01EXAMPLEPLAYLIST000000 up-ab12cd34 --media med_01EXAMPLEIMAGE0000000000
screenrig playlist page replace pl_01EXAMPLEPLAYLIST000000 up-ab12cd34 --until 2026-12-31
screenrig playlist page replace pl_01EXAMPLEPLAYLIST000000 up-ab12cd34 --always

Indique al menos uno de --file, --media, --sound, --from, --until o --always. Las banderas de fecha también funcionan en una página con varias primitivas; cambiar los medios, el ajuste o los segundos requiere una página con una sola primitiva, o la página completa en --file. Se rechaza un id de página desconocido. Las reglas de revisión y de usuario de carga son las de playlist page add; un usuario de carga solo reemplaza una página de medios de sus propias carpetas.

playlist page remove#

Elimine una página de una lista de reproducción.

playlist page remove <playlist-id> <page-id> [--expect-rev REVISION] [--note TEXT]
ParámetroTipoRequeridoPredeterminadoNotas
<playlist-id>stringsíningunoEl id de lista de reproducción pl_.
<page-id>stringsíningunoLa página a eliminar.
--expect-rev REVISIONstringnoningunoPrecondición opcional de revisión. Omitir para escribir el recurso actual. Un valor obsoleto suministrado es revision_conflict: volver a obtener, reaplicar, reintentar.
--note TEXTstringnoningunoUna nota para la persona que revisa el cambio: texto plano, máximo 280 caracteres. Se ignora cuando el cambio se aplica de inmediato.
screenrig playlist page remove pl_01EXAMPLEPLAYLIST000000 up-ab12cd34

Una lista de reproducción conserva de 1 a 100 páginas y una página ordinaria sin visibility, por lo que eliminar la última página sin fechas es invalid_request. Una página desconocida es not_found. Las reglas de revisión y de usuario de carga son las de playlist page add.

playlist show#

Lea una lista de reproducción, incluida su revisión actual, o escríbala como un documento editable.

playlist show <id> [--output FILE [--overwrite]] [--editable]
ParámetroTipoRequeridoPredeterminadoNotas
<id>stringsíningunoEl id de lista de reproducción pl_.
--output FILErutanoningunoEscriba el documento editable en FILE e informe su ruta, playlist_id y revision. El archivo está listo para playlist update tal como está escrito. Se crean los directorios padres. Exclusivo por defecto. Tiene prioridad sobre --editable.
--overwritebooleannoapagadoReemplazar un archivo --output existente de forma atómica. Un archivo vacío que deja una ejecución interrumpida se reemplaza aun sin esta bandera.
--editablebooleannoapagadoDevuelva el documento editable y su revisión en el sobre como data.document, data.playlist_id y data.revision.
screenrig playlist show pl_01EXAMPLEPLAYLIST000000
screenrig playlist show pl_01EXAMPLEPLAYLIST000000 --output playlist.json
screenrig playlist show pl_01EXAMPLEPLAYLIST000000 --editable

show simple es una respuesta de inspección. Devuelve la versión en vivo. approved_revision es 0 para una playlist que ninguna persona ha aprobado aún, y approval nombra la revisión abierta mientras un cambio espera; reviews show ID devuelve la propuesta. Cuando hay notas abiertas sobre la playlist, la advertencia notes_about_resource las cuenta y nombra screenrig notes --about ID, y --human enumera hasta cinco.

playlist list#

Listar las playlists del proyecto.

playlist list [--templates] [--library]
ParámetroTipoRequeridoPredeterminadoNotas
--templatesbooleannoapagadoSolo plantillas: listas de reproducción que declaran campos.
--librarybooleannoapagadoEnumera en su lugar las listas de reproducción de la Biblioteca de la organización, en solo lectura: asígnelas a pantallas, horarios y pilas, o copie una con playlist create --from-template; cámbielas solo en el proyecto Biblioteca.
screenrig playlist list --templates
screenrig playlist list --library

playlist fields#

Muestra los campos de una plantilla o los valores de una copia, o cambia los valores y pone la copia al día.

playlist fields <id> [--set NAME=VALUE...] [--clear NAME...] [--refresh] [--expect-rev REVISION] [--note TEXT]
ParámetroTipoRequeridoPredeterminadoNotas
<id>stringsíningunoEl id pl_ de una plantilla o de una lista de reproducción creada a partir de una.
--set NAME=VALUEstringnoningunoEstablezca el valor de un campo. Se puede repetir; NAME es un nombre de campo de 1 a 32 letras minúsculas, dígitos o guiones bajos, indicado una vez.
--clear NAMEstringnoningunoBorra el valor de un campo opcional. Se puede repetir.
--refreshbooleannoapagadoVuelve a crear las páginas con la revisión actual de la plantilla, sean cuales sean los valores.
--expect-rev REVISIONstringnoningunoExige opcionalmente esta revisión del recurso.
--note TEXTstringnoningunoUna nota para la persona que revisa el cambio.
screenrig playlist fields pl_01EXAMPLECOPY00000000 --set headline="Closed today"

Sin opciones muestra los campos de una plantilla y cuántas listas se crearon a partir de ella, o los valores de una copia, la revisión de la plantilla con la que se creó y si la plantilla tiene una más reciente. data.kind es template o instance: una plantilla informa fields y instances, una copia template_id, template_revision, template_current_revision, outdated y values. Cada cambio, y --refresh solo, vuelve a crear las páginas de la copia con la revisión actual de la plantilla, que es como un cambio de marca hecho en la plantilla llega a las copias existentes; nada se envía a ellas por sí solo. Los valores se comprueban como al crear. Con acceso Propose, un cambio se convierte en una revisión.

playlist instances#

Lista las listas de reproducción creadas a partir de una plantilla y la revisión de la plantilla con la que se creó cada una.

playlist instances <id>
ParámetroTipoRequeridoPredeterminadoNotas
<id>stringsíningunoEl id pl_ de la plantilla.
screenrig playlist instances pl_01EXAMPLETEMPLATE00000

outdated marca una lista de reproducción creada con una revisión anterior de la plantilla; playlist fields ID --refresh la pone al día.

playlist revisions#

Listar las revisiones de una playlist, la más reciente primero.

playlist revisions <id> [--after CURSOR]
ParámetroTipoRequeridoPredeterminadoNotas
<id>stringsíningunoEl id de lista de reproducción pl_.
--after CURSORstringnoningunoEl data.next_cursor de la página anterior.
screenrig playlist revisions pl_01EXAMPLEPLAYLIST000000

Cada revisión en data.items indica qué la creó (created, edited, promoted con la revisión que copió como restored_from, o baseline, la revisión que tenía la playlist cuando empezó su historial), quién la hizo, cuándo, su nombre, cuántas páginas tiene y si es current. Una página contiene como máximo 50 revisiones; mientras data.next_cursor sea una cadena, quedan revisiones anteriores, y null marca la última página. Las revisiones se conservan mientras exista la playlist.

playlist revision show#

Leer una revisión y la playlist tal como estaba en ella.

playlist revision show <id> --revision N
ParámetroTipoRequeridoPredeterminadoNotas
<id>stringsíningunoEl id de lista de reproducción pl_.
--revision NintegersíningunoLa revisión que se lee.
screenrig playlist revision show pl_01EXAMPLEPLAYLIST000000 --revision 3

data.revision contiene los campos que playlist revisions enumera, y data.playlist la lista de reproducción tal como estaba: nombre, páginas, banda sonora y formato, con revision establecido en esta. Una revisión que la lista nunca tuvo, o una anterior al inicio de su historial, es not_found.

playlist promote#

Volver a hacer actual una revisión anterior copiándola como una nueva revisión.

playlist promote <id> --revision N --expect-rev CURRENT
ParámetroTipoRequeridoPredeterminadoNotas
<id>stringsíningunoEl id de lista de reproducción pl_.
--revision NintegersíningunoLa revisión que se copia.
--expect-rev CURRENTstringsíningunoLa revisión actual de la playlist (playlist show). Un valor obsoleto es revision_conflict: vuelva a leer la playlist y reintente.
screenrig playlist promote pl_01EXAMPLEPLAYLIST000000 --revision 3 --expect-rev 9

Las páginas, la banda sonora y el formato de la revisión pasan a ser la siguiente revisión. El nombre se mantiene, las revisiones anteriores siguen en la lista y cada pantalla que muestra la playlist se actualiza; el comando regresa una vez que la playlist está escrita y no espera a los Players. Las páginas se resuelven de nuevo como en cualquier escritura: un selector coincide con los medios de hoy, y los medios o la aplicación que usó la revisión y que ya no existen o no están listos hacen que se rechace la promoción con el problema que recibiría una escritura. Promover requiere una credencial que publique en vivo; una cuyos cambios esperan revisión recibe forbidden, y una playlist que ninguna persona ha aprobado aún es playlist_not_approved. Una revisión cuyo contenido ya es el actual no cambia nada. Promover es una función de Premium: un plan sin ella responde feature_not_in_plan (salida 8), mientras que playlist revisions y playlist revision show están en todos los planes.

playlist delete#

Eliminar una lista de reproducción.

playlist delete <id> [--expect-rev REVISION]
ParámetroTipoRequeridoPredeterminadoNotas
<id>stringsíningunoEl id de lista de reproducción pl_.
--expect-rev REVISIONstringnoningunoPrecondición opcional de revisión. Omitir para escribir el recurso actual. Un valor obsoleto suministrado es revision_conflict: volver a obtener, reaplicar, reintentar.
screenrig playlist delete pl_01EXAMPLEPLAYLIST000000

Una lista de reproducción no se elimina mientras una pantalla, archivada o aún en vinculación, la tenga como predeterminada, en su programación de listas de reproducción o como toma de control, mientras una carpeta de pantallas la tenga como predeterminada, o mientras una campaña la reproduzca: la respuesta es resource_conflict (salida 5). Cambie primero esos elementos.

playlist export#

Exporta archivos de imagen y vídeo, audio de la banda sonora y URL de iframe como un paquete portátil de lista de reproducción.

playlist export <id> --output DIRECTORY [--skip-applications]
ParámetroTipoRequeridoPredeterminadoNotas
<id>stringsíningunoEl id de lista de reproducción pl_.
--output DIRECTORYrutasíningunoDirectorio de destino. No debe existir ya; el paquete se escribe a través de un hermano temporal y se renombra en su lugar.
--skip-applicationsbooleannoapagadoElimina las primitivas de aplicación y las páginas vacías o controladas por una aplicación. Debe quedar al menos una página. El resultado enumera los ID de las primitivas y páginas omitidas.
screenrig playlist export pl_01EXAMPLEPLAYLIST000000 --output ./lobby-bundle

El paquete contiene un manifiesto, el documento de la lista de reproducción y archivos de imagen, vídeo y audio de la banda sonora direccionados por contenido. Incluye name, audio y pages; un format y los fields de una plantilla se quedan fuera. Los selectores dinámicos all, tag y folder se fijan en ID exactos, las URL de iframe se conservan y los comentarios se excluyen.

Las tarjetas, los flujos y las páginas adslot detienen la exportación antes de descargar los archivos multimedia. Las aplicaciones también la detienen de forma predeterminada; --skip-applications elimina las primitivas de aplicación y las páginas vacías o controladas por una aplicación, e informa de los ID de las primitivas y páginas omitidas. Debe quedar al menos una página. Las tarjetas, los flujos y las páginas adslot siguen deteniendo la exportación con esta opción.

Para obtener un documento editable que conserve las referencias a tarjetas y aplicaciones, usa screenrig playlist show pl_01EXAMPLEPLAYLIST000000 --output playlist.json. El documento utiliza recursos existentes del mismo proyecto.

playlist import#

Crear una lista de reproducción desde un directorio de paquete, o actualizar una existente desde él.

playlist import <directory> [--name NAME] [--update ID [--expect-rev REVISION]] [--poll-ms MS] [--note TEXT]
ParámetroTipoRequeridoPredeterminadoNotas
<directory>rutasíningunoUn directorio de paquete escrito por playlist export.
--name NAMEstringnoel nombre de la playlist del paqueteDe 1 a 120 caracteres. Nombra la nueva lista de reproducción, o cambia el nombre de la que --update reemplaza.
--update IDstringnose crea una nueva lista de reproducciónActualizar esta lista de reproducción pl_ en lugar de crear una. Afecta a todas las pantallas asignadas. Acepta --expect-rev opcional.
--expect-rev REVISIONstringnoningunoCon --update: la revisión actual de la lista de reproducción de destino.
--poll-ms MSintegerno1000Intervalo de sondeo de las cargas mientras los medios quedan listos.
--note TEXTstringnoningunoUna nota para la persona que revisa el cambio cuando espera revisión, de máximo 280 caracteres.
screenrig playlist import ./lobby-bundle
screenrig playlist import ./lobby-bundle --name "Lobby loop (copy)"
screenrig playlist import ./lobby-bundle --update pl_01EXAMPLEPLAYLIST000000

Los nombres para mostrar de listas de reproducción pueden repetirse. La importación crea una lista separada incluso cuando su nombre coincide; use --update con un ID para reemplazar una lista existente.

La importación valida todo el paquete localmente antes de tocar el proyecto: manifiesto, documento, rutas, tipos de medios, longitudes y hashes. Los medios existentes se reutilizan si coinciden exactamente en nombre de archivo, tipo de medio, longitud en bytes, hash y etiqueta; el resto se carga sin conversión, y la lista de reproducción se escribe solo después de que cada objeto está listo. data informa mode (create o update), source_playlist_id, playlist, directory y media con total, reused y uploaded.

Con acceso Propose, o en un proyecto que requiere revisión para cambios de agente, los medios se siguen cargando y la escritura de la lista de reproducción se convierte en una revisión: data.status es pending_review, data.review la nombra y data.next es screenrig reviews show ID. Nada cambia en pantalla hasta que una persona aprueba.

La importación nunca elimina ni poda medios remotos. Si un paso posterior falla después de que se haya iniciado una carga, el error lista los objetos confirmados como listos y dice si comenzó la escritura de la lista de reproducción. Reintentar el mismo paquete reutiliza esos objetos.

playlist replace-release#

Haga una vista previa o aplique el reemplazo de una versión de aplicación en una lista de reproducción, con las pantallas a las que llega.

playlist replace-release <id> --page PAGE_ID --primitive PRIMITIVE_ID --release-id REL_ID
                         [--apply [--expect-rev REVISION] [--expect-impact TOKEN] [--note TEXT]]
ParámetroTipoRequeridoPredeterminadoNotas
<id>stringsíningunoEl id de lista de reproducción pl_.
--page PAGE_IDstringsíningunoEl id exacto de la página que contiene la aplicación.
--primitive PRIMITIVE_IDstringsíningunoEl id exacto de la primitiva application de esa página.
--release-id REL_IDstringsíningunoLa nueva versión inmutable rel_, a partir de data.application.release_id de app update.
--applybooleannoapagadoEscriba el reemplazo. Sin esto, el comando es una vista previa de solo lectura.
--expect-rev REVISIONstringnoningunoCon --apply: la revisión de la lista de reproducción de la vista previa. Una revisión actual diferente es revision_conflict, y el servidor lo comprueba de forma atómica.
--expect-impact TOKENstringnoningunoCon --apply: data.impact de la vista previa. Si el reemplazo o las pantallas afectadas cambiaron desde entonces, la escritura es resource_conflict: vuelva a hacer la vista previa.
--note TEXTstringnoningunoCon --apply: una nota para la persona que revisa el cambio cuando espera revisión.
screenrig playlist replace-release pl_01EXAMPLEPLAYLIST000000 --page board-page --primitive board --release-id rel_NEW
screenrig playlist replace-release pl_01EXAMPLEPLAYLIST000000 --page board-page --primitive board --release-id rel_NEW --apply

La vista previa enumera las pantallas activas, con vinculación pendiente y archivadas cuya asignación predeterminada, entradas de programación almacenadas (incluidas las pausadas y futuras), toma de control o lista de reproducción efectiva actual (incluida la reproducción por campaña y por carpeta heredada) hace referencia a la lista de reproducción. data incluye previous_release_id, release_id, revision, affected_screens (cada uno con id, label, state y revision), impact y applied. Un --apply directo omite la consulta de pantallas, por lo que affected_screens se omite a menos que se indique --expect-impact. Una versión ya fijada se completa correctamente sin escribir. En revisión, --apply propone la nueva fijación. Consulte Reemplazar una versión de aplicación.

El documento de la lista de reproducción

Una lista de reproducción es name (de 1 a 120 caracteres) más pages (de 1 a 100), con una banda sonora audio opcional y un format opcional. Cada página lleva id, canvas, transition, advance, visibility opcional, audio_cue opcional y primitives (de 1 a 24). Los ids de página, de primitiva y de pista son una letra seguida de hasta 63 letras, dígitos, _ o -; los ids de página son únicos en la lista de reproducción y los de primitiva en su página. Un canvas toma width y height de 1 a 1000000, un background y un viewport_fit opcional: consulte Fondo de página y movimiento.

Un format convierte una lista de reproducción en un muro de video, {displays, arrangement, orientation} con columns para un grid, o en una franja, {region, orientation}. Un muro tiene de 2 a 12 pantallas de 1920 x 1080 (1080 x 1920 en vertical), cada página ordinaria tiene el lienzo del muro, y el displays de una primitiva nombra los mosaicos que cubre en lugar de rect. Consulte Muros de video y Franjas. Una página de espacio publicitario, {id, type: "adslot", adslot_id} con visibility opcional, no contiene lienzo ni primitivas; una lista de reproducción contiene como máximo 16 de ellas y conserva una página ordinaria sin visibility.

Una plantilla añade fields al documento, [{name, label, type, required, max_length?}] con type de text, media o url, y puede marcar cualquier primitiva como locked: true. Una página lee un campo como {field.NAME} en los params de una tarjeta (campos de texto y de dirección), como selector.media_id de una imagen o un vídeo (un campo de medio) o como src completo de un iframe (un campo de dirección). Cada marcador debe nombrar un campo declarado del tipo correcto, cada campo debe leerse y una primitiva bloqueada no lee ninguno; playlist validate lo comprueba sin conexión. Solo el propietario o un miembro que pueda aprobar cambia una primitiva bloqueada (primitive_locked). Una plantilla declara como máximo 16 campos: name es de 1 a 32 letras minúsculas, dígitos o guiones bajos, label de hasta 60 caracteres, y el max_length de un campo de texto (predeterminado 200) de hasta 2000. Un campo de medio o de dirección opcional que se deja sin valor omite la primitiva que lo lee. Declarar fields y bloquear una primitiva son plantillas de listas de reproducción, una función de Premium. Un format de muro de video de 2 o 3 pantallas requiere Plus, y uno de 4 a 12 pantallas, Enterprise. Un plan sin la función responde feature_not_in_plan con required_plan, mientras que una escritura que conserva lo que la lista de reproducción ya tiene sigue disponible. Crear una copia a partir de una plantilla está incluido en todos los planes.

Las seis primitivas son image, video subido, stream en vivo, iframe web y application, y card. El texto y el marco no son tipos de transmisión: coloque una card para texto en vivo, o suba una imagen fija terminada que haya hecho su agente y colóquela como imagen.

Un flujo toma una o dos fuentes ordenadas con protocolos únicos y una imagen lista del mismo proyecto como fallback_media_id. Use como máximo un flujo por página y avance basado en duración. HLS usa una URL HTTPS pública; los Players de Android y Qt se conectan directamente a las transmisiones RTSP de las cámaras, con las credenciales incluidas. Consulte los detalles del transporte de cámaras para conocer los formatos de URL que abre cada Player; la multidifusión UDP/MPEG-TS directa opcional en Android y Qt usa un grupo IPv4 en 239/8 y un puerto. Una fuente puede dar solo su url y dejar que el esquema indique el protocolo. Otros Players seleccionan la alternativa HLS o muestran el fallback. Los bytes del flujo no se almacenan en caché para reproducción. El audio está silenciado por defecto; muted con el valor false lo reproduce, con las reglas del sonido de un video que se indican más abajo. La importación y exportación de paquetes de listas de reproducción no admiten flujos.

{
  "id": "live",
  "primitive": "stream",
  "sources": [
    {
      "protocol": "udp-mpegts",
      "group": "239.10.0.1",
      "port": 5000
    },
    {
      "protocol": "hls",
      "url": "https://example.com/live.m3u8"
    }
  ],
  "fallback_media_id": "med_fallback",
  "muted": true,
  "rect": {
    "x": 0,
    "y": 0,
    "width": 1920,
    "height": 1080
  },
  "layer": 0,
  "content_fit": "contain"
}

Utilice este primitivo en una página con advance: {"mode":"duration","after_ms":30000}. Reemplace el ejemplo de fuente y el ID de respaldo. Requisitos del Player y configuración del transporte.

Cada primitiva es plana: id, primitive, los campos propios de esa primitiva, luego rect, layer, content_fit, y enter y motion opcionales. No hay ningún objeto de contenido anidado. rect es x, y, width y height en unidades de lienzo y layer un número entero de 0 a 1024. Un rect puede extenderse más allá del lienzo como sangrado: los Players ajustan el contenido a todo el rect y luego lo recortan al lienzo, así que use content_fit cover o fill para llenar el lienzo visible. Una tarjeta se coloca mediante layout y necesita un rect solo para free; en una lista de reproducción de muro displays reemplaza a rect.

Las primitivas de imagen y video requieren un selector. selector.by es id con un media_id listo y one_at_a_time false, ids con de 1 a 1024 media_ids listos únicos, all para todos los objetos listos de esa primitiva, tag que coincide con ^[A-Za-z0-9]{1,32}$, o folder con el folder_id de una carpeta de medios mfd_ existente, que reproduce directamente los archivos listos que contiene y ninguno de sus subcarpetas. No ponga media_id en la propia primitiva ni envíe elementos resueltos por el servidor. Una primitiva application fija un release_id y una primitiva iframe toma un src y un title de 1 a 200 caracteres, por lo que ninguna de las dos toma un selector. src es cualquier página http o https a la que la pantalla pueda llegar, incluida una página de la LAN o una detrás de un inicio de sesión; un enlace de YouTube se guarda como su incrustación con reproducción automática. src, y el fallback_src opcional de un iframe, pueden llevar tokens de pantalla como {screen.field.kiosk_id}, y una primitiva application puede llevar params con los mismos tokens, de modo que una lista de reproducción da a cada pantalla su propia página. Los Players Android, Amazon Signage Stick, Linux, Raspberry Pi y Windows abren la página directamente. El Player web y los Players macOS, Samsung Tizen, LG webOS y BrightSign la enmarcan, por lo que una página que envía X-Frame-Options (DENY, SAMEORIGIN o el obsoleto ALLOW-FROM), o una lista Content-Security-Policy frame-ancestors sin el origen del Player, muestra un marco bloqueado en ellos, y el Player web solo muestra páginas https sin inicio de sesión en la dirección. Cuando la publicación detecta una página HTTPS pública que rechaza ser enmarcada, la escritura igualmente tiene éxito y la CLI imprime la entrada warnings del servidor: el código iframe_framing_refused, page_id, primitive_id y src, el encabezado que la rechazó y el paso siguiente (use una página que permita el marco desde el origen del Player, o pida a su propietario que permita ese origen). El servidor también añade una advertencia playlist.iframe_framing_refused al registro de eventos, una por cada página que la rechaza, que events list imprime con primitive_id. Una página de la LAN, una página http y una página a la que el servidor no puede llegar en unos segundos no se comprueban. Un Player informa de una lista de reproducción como en reproducción una vez que su manifiesto está en pantalla, por lo que una publicación verificada no prueba que una página iframe se haya mostrado: actúe según la advertencia, o mire la pantalla. Ambas primitivas web requieren content_fit de fill, porque ninguna tiene un tamaño intrínseco.

Un iframe también toma reload_s (0, el predeterminado, nunca recarga; de 60 a 86400 carga src de nuevo cada reload_s segundos mientras la página está en pantalla), fallback_src (la página que se muestra cuando src no carga, con las formas y reglas de src; un src recuperado la reemplaza en la siguiente recarga) y navigation_allowlist (de 1 a 64 fuentes de host con la forma [scheme://]host[:port][path], como example.com, *.example.com o https://example.com/docs/; con una lista, los enlaces de la página, las navegaciones por script y las redirecciones llegan solo a src, fallback_src y direcciones que coincidan; omítalo para no tener restricción, una lista vacía se rechaza). Un código de inserción <iframe> pegado se lee para obtener su src. Un enlace para compartir, de Publicar en la Web o de inserción de Google Slides, Docs o Sheets, o un enlace Insertar de Microsoft 365, se almacena reconstruido para la pantalla: las presentaciones de Slides y PowerPoint se repiten en bucle, una presentación de Slides avanza con el retardo propio del enlace limitado a la duración de la página (dé a la página el tiempo de la presentación completa), y Docs, Sheets, Word y Excel se recargan cada 5 minutos. Un archivo que pide a los espectadores iniciar sesión se rechaza con document_not_shared, cuyo detalle nombra el ajuste de uso compartido que hay que cambiar. Consulte Mostrar una página web, un video o un documento.

advance.mode es duration con after_ms, que en una página con exactamente un video de YouTube (no una lista de reproducción ni una transmisión en vivo) también puede llevar until establecido en video_end para que la página dure hasta que termine el video y after_ms sea el tiempo que se muestra cuando la pantalla no puede leer la duración del video, media_end en una página con exactamente una primitiva de imagen o video, audio_end en una página cuyo audio_cue nombra una pista de banda sonora, o application con max_ms cuando la aplicación termina su propio turno llamando a window.screenrig.nextPage(). Una página application necesita exactamente una primitiva marcada controller; todos los demás modos lo prohíben. after_ms, max_ms y dwell_ms son milisegundos enteros de 1000 a 86400000, y una imagen en una página media_end necesita dwell_ms. Una página contiene como máximo un stream y como máximo dos primitivas application o iframe, y media_end prohíbe ambos.

transition.type es uno de crossfade, swipe-left, swipe-right, swipe-up, swipe-down, dip, wipe-left, wipe-right, wipe-up, wipe-down, slide-left, slide-right, slide-up, slide-down o stinger. duration_ms es obligatorio, de 0 a 60000. playlist init escribe un fundido cruzado de 200 ms. Deslizar mueve ambas páginas juntas como un carrusel. Deslizar lateral mueve la página entrante sobre la saliente, que se desplaza una cuarta parte. Barrido descubre la página entrante detrás de un borde duro en movimiento. Sumergir desvanece la página saliente a un color sólido y luego a la página entrante; color es un #RRGGBB opcional, predeterminado #000000, y válido solo en dip. Los nombres de dirección indican la dirección del movimiento: wipe-left es un borde que se mueve hacia la izquierda. ease es opcional: linear, in, out o in-out; el predeterminado es linear para crossfade y swipe-* y in-out para dip, wipe-* y slide-*; no está permitido en stinger. La página entrante controla su transición. La primera página de una lista de reproducción no reproduce transición.

Un stinger es un gráfico temático a pantalla completa que cubre la página saliente, intercambia la página entrante mientras la pantalla está cubierta y luego la descubre. Úselo para nombrar una sección de una lista de reproducción: colóquelo en la primera página de la sección. El objeto stinger es obligatorio para type: "stinger" y no está permitido en otros tipos. Todos sus miembros son opcionales. theme es uno de neomustard (el predeterminado), cyanotype, propaganda, signal, avant-garde, bloom o primetime, y coincide con los temas de la tarjeta. title tiene hasta 40 caracteres y subtitle hasta 60, establecidos en el tipo de visualización del tema. logo es media: más el id de una imagen lista en el proyecto, por ejemplo media:med_01EXAMPLE. accent es un #RRGGBB opcional que reemplaza el acento del tema. duration_ms para un stinger es de 2000 a 6000 y cubre todo el bumper; las duraciones típicas son de 2700 a 4000. El título se muestra completamente durante hang_ms, de 0 a 6000, predeterminado 1000 (un segundo), y hang_ms es como máximo el 60 % de duration_ms; una duración más larga necesita un duration_ms más largo. Un Player que no puede dibujar un stinger reproduce un fundido cruzado de la misma duración. Vea la página en vivo Tarjeta Stinger para observar la transición.

El siguiente ejemplo muestra una transición de página con stinger:

{ "type": "stinger", "duration_ms": 3500, "stinger": { "theme": "primetime", "title": "BREAKFAST", "subtitle": "Served until 11", "logo": "media:med_01EXAMPLE", "hang_ms": 1000 } }

Un objeto enter opcional en una primitiva añade una animación de objeto: fade-up, fade-down, fade-left, fade-right, fade-in, zoom-in o zoom-out, y un stagger opcional de 0 a 8 retrasa su inicio 120 ms por paso. Un motion opcional mantiene en movimiento una primitiva después de que entra: spin y drift giran o deslizan una imagen o un video, y path mueve una imagen, un video, una aplicación o un iframe a lo largo de puntos de referencia. Consulte Fondo de página y movimiento.

Un objeto de página visibility opcional limita cuándo se reproduce la página: un booleano enabled obligatorio, límites civiles from y until opcionales, y hasta 16 windows recurrentes de días y horas civiles. from y until son YYYY-MM-DDTHH:MM en la zona horaria de cada pantalla, from inclusivo y until exclusivo y posterior a from; una ventana es days (mon a sun) con start y end como HH:MM, indicados juntos o ambos omitidos para el día completo, y un end igual o anterior a start cruza la medianoche. enabled: false oculta la página; enabled: true necesita al menos uno de from, until, windows o data. Cada playlist mantiene al menos una página sin campo visibility alguno. Una pantalla lee estas horas en su zona horaria efectiva: su anulación o, si no, la zona que informa su Player o, si no, UTC.

Una condición visibility.data de página, {key, path?, equals?}, muestra la página solo mientras un documento de datos de tarjeta coincide: key es una clave de datos de tarjeta o un ID de tarjeta, path un puntero RFC 6901 dentro del documento, y equals una cadena, un número, un booleano o null (omítalo para comprobar que el valor existe). La clave {screen.weather} lee el clima de la ubicación propia de cada pantalla, que establece screen update ID --location LAT,LON: {"enabled":true,"data":{"key":"{screen.weather}","path":"/condition","equals":"rain"}} muestra la página solo mientras llueve donde está esa pantalla. El documento del clima tiene condition (clear, cloud, fog, rain, snow, storm o wind), band (freezing por debajo de 0 °C, cold de 0 a 9, mild de 10 a 17, warm de 18 a 24, hot desde 25), temperatureC en grados enteros e isDay. Es el clima actual de la celda de 0,25 grados de la pantalla, actualizado cada hora aproximadamente, no un pronóstico. Una pantalla sin ubicación nunca muestra la página, y la publicación rechaza un path o un equals que el documento no puede contener, como cloudy en lugar de cloud. En un Player que no declara la capacidad de host page.conditions, una página así queda deshabilitada. Las condiciones de datos son una función de Plus: sin ella, una escritura que añade una condición visibility.data que una página aún no tiene recibe feature_not_in_plan, mientras que conservar o quitar una condición guardada y la visibilidad por franjas horarias siguen disponibles. Mantenga una página ordinaria sin visibility como respaldo.

Un primitivo video o stream se reproduce sin sonido salvo que establezca muted en false. Entonces reproduce su sonido al volumen de la pantalla mientras su página es la actual, y esa página pausa la banda sonora de la lista de reproducción, que se reanuda desde el mismo punto en la página siguiente sin sonido. Varios primitivos en una página reproducen todos su sonido. Una página con sonido no puede llevar un audio_cue: una escritura que añade uno responde invalid_request en pages[i].audio_cue, «a page with sound cannot cue the soundtrack», mientras que una página antigua ya almacenada que tiene ambos sigue reproduciéndose. Los anuncios siguen silenciados.

Un objeto audio opcional de nivel superior añade una banda sonora que se reproduce continuamente mientras cambian las páginas y se pausa en una página con sonido. tracks lista de 1 a 128 entradas en orden de reproducción, cada una con un id único (el patrón de id de página) y el media_id de un objeto de medios audio listo. loop por defecto es true y reinicia en la primera pista tras la última; volume por defecto es 1 y varía de 0 a 1, multiplicado por el volumen del Player; cued por defecto es false, y true detiene la banda sonora tras cada pista para que una pista se reproduzca solo cuando una página audio_cue la inicia. Una página ordinaria puede llevar audio_cue con un id track de esa lista y un booleano restart opcional (por defecto false): cuando aparece la página, el Player cambia a esa pista desde su inicio, reiniciándola solo si ya está reproduciéndose y restart es true. Las señales son indicios, las páginas de espacios publicitarios no pueden llevarlas, y una señal sin banda sonora es rechazada. Una página con advance {"mode":"audio_end"} termina cuando termina la pista que su audio_cue nombra, por lo que requiere esa señal y una banda sonora, no toma after_ms, y sigue las reglas duration para primitivos de imagen y video; un primitivo stream aún necesita una página duration, y una aplicación en la página nunca es su controlador; max_ms es un indicio opcional que el servidor anula. playlist update reemplaza todo el documento, por lo que omitir audio elimina la banda sonora; playlist patch la conserva a menos que se suministre audio, y --clear-audio o audio: null la elimina. Una franja no tiene banda sonora. Creación de banda sonora.

Otros grupos de comandos