Documentación

Enlaces de flota: comandos CLI

Crea enlaces de flota para gestores de dispositivos y traslada medios, listas, programaciones y pantallas de otra plataforma de señalización a screenRIG.

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

Migración

migrate traslada al proyecto los medios, las listas de reproducción, los diseños, las programaciones y las pantallas de su plataforma de señalización anterior. Se ejecuta en el CLI de su equipo: la clave de la plataforma se lee de un --credentials FILE de líneas NAME=VALUE, va solo a esa plataforma y nunca se almacena, imprime, registra ni envía a screenRIG, que ve escrituras ordinarias de medios, listas de reproducción, enlaces de flota, campañas y pantallas. migrate vendors lista las plataformas que lee, y la alternativa files lee una carpeta o .zip de medios de cualquier otra plataforma.

Siga los pasos en orden: migrate vendors (lo que admite una plataforma), migrate scan (lee la cuenta e informa de lo que se puede y no se puede migrar; no requiere inicio de sesión en screenRIG), migrate apply --dry-run (el plan), migrate apply (requiere acceso Manage), y luego migrate pair para cada pantalla.

--dir DIR es el directorio de migración, ./screenrig-migration-VENDOR por defecto, creado con el modo 0700. Contiene scan.json (el escaneo y su informe), map.json (en qué objeto se convirtió cada elemento anterior, vinculado a esta URL de API, proyecto, proveedor y cuenta de origen) y staging/ (descargas en curso). apply y pair usan el único directorio screenrig-migration-* del directorio de trabajo, o aceptan --dir; solo una de ellas se ejecuta a la vez en un directorio.

Código de problemaSalirSignificado
migration_dir_mismatch2El directorio se creó para otro proyecto, URL de API, proveedor o cuenta de origen. Use otro --dir.
vendor_refused3La plataforma rechazó la clave. Cree una clave de solo lectura (migrate vendors VENDOR indica cómo), corrija el archivo --credentials y ejecute el mismo comando de nuevo.
vendor_not_found4La plataforma respondió 404. Lo habitual es que --url sea incorrecto.
vendor_rate_limited7La plataforma está limitando la frecuencia de la clave. Ejecute el comando de nuevo más tarde.
vendor_file_gone8La dirección de un archivo multimedia caducó o está protegida. Ejecutar migrate scan de nuevo la renueva, y --files proporciona un archivo que sigue fallando.
vendor_file_stalled8Una descarga de medios dejó de responder. Ejecute apply de nuevo.
vendor_bad_response9La plataforma envió una respuesta que el CLI no puede usar.
vendor_unavailable9 o 10No se pudo acceder a la plataforma o siguió fallando.

migrate vendors#

Lista las plataformas que lee migrate, lo que admite cada una y cómo crear su clave de solo lectura.

migrate vendors [VENDOR]
ParámetroTipoRequeridoPredeterminadoNotas
VENDORstringnocada plataformaEl id de una plataforma. Un id que no figura en la lista es usage_error (salida 2), que nombra los ids que existen.
screenrig migrate vendors
screenrig migrate vendors files

Funciona sin conexión y no requiere inicio de sesión. data.vendors contiene, para cada plataforma, su id y name; inputs, con las flags que admite (cada una con flag y required, y values para una región) y las líneas credentials que contiene su archivo de clave (name, secret, required y help); connect, los pasos para crear una clave de solo lectura; maps, lo que se migra; skips, lo que no; docs; y example, un comando migrate scan que funciona. Las plataformas se ordenan por id con files al final. files acepta una carpeta o .zip y una zona horaria opcional, y no necesita clave.

migrate scan#

Lee una cuenta de señalización e informa de lo que se puede y no se puede migrar. Escribe scan.json y no envía nada a screenRIG.

migrate scan --from VENDOR [--url ADDRESS] [--region REGION] [--timezone ZONE] [--files PATH]
    [--credentials FILE] [--dir DIR]
ParámetroTipoRequeridoPredeterminadoNotas
--from VENDORstringsíningunoLa plataforma que se lee: un id de migrate vendors, o files.
--url ADDRESSstringpor plataformaningunoLa dirección de una plataforma autoalojada.
--region REGIONstringpor plataformaningunoLa región de una cuenta alojada, para una plataforma que tiene regiones.
--timezone ZONEstringnoningunoUn nombre de zona horaria IANA como America/Toronto, que se establece en cada pantalla cuya plataforma antigua no nombra ninguna. Sin él, una pantalla sigue la zona que informa su Player.
--files PATHrutapor plataformaningunoUna carpeta o .zip. Con --from files contiene los medios; con otra plataforma contiene los originales que la API de esa plataforma no puede entregar, emparejados con sus medios por nombre de archivo.
--credentials FILErutapor plataformaningunoEl archivo de clave: líneas NAME=VALUE con los nombres que lista migrate vendors VENDOR. Se omiten las líneas en blanco y los comentarios #, y un valor puede ir entre un par de comillas. Un nombre obligatorio que falta en el archivo es usage_error (salida 2), que lo nombra.
--dir DIRrutano./screenrig-migration-VENDOREl directorio de migración.
screenrig migrate scan --from files --files ./signage-media
screenrig migrate scan --from files --files ./signage-media.zip --dir ./old-signage --timezone America/Toronto

Una opción que la plataforma no admite, o una que necesita y falta, es usage_error (salida 2) y nombra lo que la plataforma admite. Ninguna opción recibe la clave en sí. Un escaneo nuevo reemplaza scan.json y conserva map.json, y sale con 0 cuando termina, aunque algunos elementos no puedan migrarse.

data es el informe: vendor, label, scanned_at, found y importable (conteos de media, playlists, layouts, schedules, groups y screens), not_imported (cada uno con kind, source_id, name, un reason y normalmente un paso next), lossy (cada uno con kind, source_id, name y el change que ocurre por el camino), notes, dir y scan_file. Un archivo que la plataforma entrega se descarga en apply. Un archivo que no entrega, o que entrega solo como copia recodificada, se empareja por nombre en --files; si no hay coincidencia, o hay varias, aparece en not_imported o lossy con el paso que lo corrige.

--from files no necesita clave. Lee cada archivo de imagen, video y audio por su contenido, no por su extensión. Un playlists.csv opcional en la raíz tiene las columnas playlist, file (una ruta o un nombre de archivo único), duration (segundos) y order; sin él, cada carpeta que contiene medios se convierte en una lista de reproducción en orden natural de nombre de archivo, y los archivos de la raíz forman una que lleva el nombre de la carpeta o del zip. Un screens.csv opcional tiene name, group (varios separados por ;), playlist y timezone, y cada fila se convierte en una pantalla en espera con sus grupos como etiquetas. Los demás archivos y las entradas de zip cifradas están en not_imported. Un escaneo de files no tiene programaciones: créelas con campaign create cuando existan las listas de reproducción.

migrate apply#

Importa lo que encontró el escaneo: medios, listas de reproducción y diseños, pantallas en espera y campañas. Se puede volver a ejecutar sin riesgo.

migrate apply [--dir DIR] [--dry-run] [--only KINDS] [--folder ID] [--canvas WIDTHxHEIGHT]
    [--credentials FILE] [--concurrency N] [--no-transcode]
ParámetroTipoRequeridoPredeterminadoNotas
--dir DIRrutanoel único directorio ./screenrig-migration-*El directorio de migración que contiene scan.json.
--dry-runbooleannoapagadoLee el proyecto e imprime el plan. No escribe nada y no necesita clave.
--only KINDSstringnolos cuatroSeparados por comas, cada uno como máximo una vez: media, playlists, screens, schedules.
--folder IDstringnouna carpeta de medios nueva llamada Imported from y el nombre de la plataformaUna carpeta de medios existente (mfd_…) para los medios importados.
--canvas WIDTHxHEIGHTstringno1920x1080El lienzo de las listas de reproducción simples, con cada lado de al menos 16 píxeles. Un diseño conserva su propio tamaño.
--credentials FILErutanoningunoEl archivo de clave, que se lee solo cuando se descarga un archivo multimedia de la plataforma.
--concurrency Nintegerno4Medios importados a la vez, de 1 a 8.
--no-transcodebooleannoapagadoSuba los bytes de origen sin cambios, como hace media upload.
screenrig migrate apply --dry-run
screenrig migrate apply --dir ./screenrig-migration-files
screenrig migrate apply --only media,playlists --concurrency 2

apply importa en orden: los medios en una carpeta, las listas de reproducción y los diseños, una pantalla en espera por cada pantalla anterior y una campaña por cada programación que las campañas pueden expresar. Solo vuelve a leer la plataforma para descargar archivos multimedia. Una lista de reproducción tiene una página por elemento: las imágenes y los videos llenan el lienzo, una dirección web se convierte en una página iframe, el audio se convierte en la banda sonora y una lista de reproducción anidada se incorpora en línea. Un diseño se convierte en una lista de reproducción en su propio lienzo, con una página por cada elemento de su zona principal. Una programación que se repite por mes, año, hora o minuto, o en un día de la semana numerado del mes, no puede convertirse en campaña: scan la lista en not_imported.

--dry-run lee solo el proyecto y responde data.plan (para media, playlists, layouts, screens y schedules: conteos create, reuse, recreate, waiting y fail), data.items, data.bytes por descargar, conteos data.placeholders y data.project, los enlaces de flota y las campañas en uso frente a sus máximos de 50 y 100. El progreso va a stderr como líneas JSON (migrate_progress con phase, done y total), o como texto con --human. Una nueva ejecución reutiliza lo que aún existe, vuelve a crear lo que haya eliminado y nunca cambia lo que creó. Una ejecución real responde data.applied (los mismos conteos), data.waiting (elementos que esperan a un medio o a una lista de reproducción que no está importada, cada uno con un reason), data.failed, data.placeholders (una entrada por pantalla anterior con su source_id, name y state: linked, unlinked, paired, finished o waiting), data.tags y data.folder_id.

Un grupo se convierte en una etiqueta formada por letras y dígitos, numerada cuando coincide con una etiqueta que lleva otra pantalla. Una campaña apunta a las etiquetas de los grupos y las pantallas que nombra su programación, con sus fechas, días, horas y prioridad. Una campaña lee sus fechas y horas en la zona horaria propia de cada pantalla y necesita una lista de reproducción predeterminada (no_default_playlist): scan indica las pantallas que carecen de ella, y screen assign la establece tras la vinculación.

Una pantalla en espera es un enlace de flota de una sola pantalla que lleva el nombre anterior, los grupos como etiquetas y la lista de reproducción. Una organización tiene como máximo 50 enlaces de flota entre todos sus proyectos; el resto aparece como unlinked en data.placeholders y espera un código de Player (migrate pair). Un Player que abre un enlace se convierte en una pantalla, y volver a ejecutar apply le da el nombre anterior y la zona horaria y elimina el enlace. apply nunca imprime la URL de un enlace de flota: fleet-links show sí.

Un elemento que falla conserva ok true con data.failed (cada uno con key, name, code, status y detail) y la advertencia migration_items_failed; los elementos que dependen de él esperan, y el código de salida sigue el estado del último fallo. Un archivo multimedia que falla por sí solo (una dirección caducada, una respuesta que no es un archivo, una descarga que deja de responder) hace fallar únicamente ese medio; para una dirección caducada, ejecute migrate scan de nuevo. Un rechazo que se repetiría en todos los elementos (quota_exceeded, campaign_limit_reached, insufficient_access, pending_review, la plataforma que rechaza la clave, una conexión perdida) termina la ejecución con data.stopped (code, detail y next) y el código de salida de ese problema. Corrija la causa y ejecute el mismo comando de nuevo: continúa donde se detuvo.

migrate pair#

Vincula un código de Player a una pantalla en espera, con su nombre anterior, lista de reproducción, zona horaria y etiquetas.

migrate pair <CODE...> --screen ID_OR_NAME [--dir DIR]
ParámetroTipoRequeridoPredeterminadoNotas
<CODE...>stringsíningunoEl código que muestra el Player, como ABC 234: seis caracteres de 23456789ABCDEFGHJKMNPQRSTUVWXYZ, en mayúsculas o minúsculas. Los espacios y guiones entre ellos se ignoran, así que no necesita comillas.
--screen ID_OR_NAMEstringsíningunoLa pantalla en espera: su id de origen o su nombre anterior exacto. Un nombre que comparten dos pantallas lista sus ids.
--dir DIRrutanoel único directorio ./screenrig-migration-*El directorio de migración.
screenrig migrate pair ABC 234 --screen "Front desk"
screenrig migrate pair ABC234 --screen 3 --dir ./old-signage

Ejecute primero migrate apply: la vinculación necesita el mapa y la lista de reproducción que creó. pair reclama el código para la pantalla con su nombre anterior, establece su lista de reproducción, zona horaria y campo migrated_from, establece sus etiquetas, elimina el enlace de la pantalla en espera y registra el resultado. data contiene source_id, name, screen_id, steps (paired, updated, tagged, link deleted, recorded), next y, cuando esta ejecución reclamó el código, public_url. Cada paso se registra al completarse, así que una nueva ejecución termina lo que dejó una vinculación interrumpida. Una pantalla que ya está vinculada es resource_conflict (salida 5), que la nombra. El Player termina de vincularse la próxima vez que contacta con el servicio; screen show informa entonces state active.

Otros grupos de comandos