Documentación

Sincronización de medios: comandos CLI

Mantén una carpeta de medios al día con SharePoint, OneDrive, Dropbox o Google Drive: añade cuentas, crea sincronizaciones y ejecútalas.

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

Sincronización de medios

Una sincronización de medios mantiene una carpeta de medios al día con una carpeta de SharePoint, OneDrive para el trabajo, Dropbox o Google Drive. Cada ejecución importa las imágenes (png, jpeg, webp, gif), los videos (mp4, webm) y el audio (mp3) que estén directamente dentro de la carpeta de origen; las subcarpetas se ignoran. Un archivo modificado reemplaza sus bytes bajo el mismo ID de medios, de modo que se actualiza toda lista de reproducción que lo reproduce, y un archivo eliminado o movido fuera en el origen deja de reproducirse: su medio se elimina o, mientras una pantalla aún lo muestra, se mueve a una subcarpeta Removed y se elimina cuando nada lo retiene. Los demás archivos se listan como omitidos con el motivo: muestre un archivo de Office o un PDF con un enlace de documento en una lista de reproducción, y exporte los MOV y similares como MP4 H.264. Una lista de reproducción reproduce la carpeta con un selector by:folder.

Toda sincronización lee a través de una cuenta del proyecto. Un ID de cuenta empieza por msa_ y un ID de sincronización por msy_. media sync account add microsoft365 guarda su propia aplicación de Microsoft Entra, o nombra una conexión de Microsoft del proyecto; media sync account add dropbox imprime un enlace de un solo uso para la persona propietaria de la cuenta de Dropbox; media sync account add google-drive lee las carpetas compartidas con la dirección de una cuenta de servicio, la de screenRIG o la suya propia. Pruebe la cuenta y cree después una sincronización a partir de la dirección de una carpeta: debe ejecutarse de inmediato.

Indique un secreto de cliente con --secret-file FILE y una clave de Google Drive con --key-file FILE, o - para stdin, nunca como argumento. Los secretos se sellan en el servidor y solo se devuelven como data.secret {set, hint}. Leer requiere acceso Read, y cualquier cambio requiere acceso Manage.

media sync account add microsoft365#

Agrega su propia aplicación de Microsoft Entra, o una conexión de Microsoft del proyecto, para que una sincronización pueda leer una carpeta de SharePoint o de OneDrive para el trabajo.

media sync account add microsoft365 --name NAME
    (--tenant-id TENANT --client-id ID --secret-file FILE | --connection-id ID)
ParámetroTipoRequeridoPredeterminadoNotas
--name NAMEstringsíningunoDe 1 a 80 caracteres.
--tenant-id TENANTstringsin --connection-idningunoEl ID de directorio (tenant) de su organización, o su dominio principal, como contoso.onmicrosoft.com; nunca common, organizations ni consumers. Junto con --client-id y --secret-file.
--client-id IDstringsin --connection-idningunoEl ID de aplicación (cliente) del registro de la aplicación, un GUID.
--secret-file FILEstringsin --connection-idningunoLee el valor del secreto de cliente desde este archivo, o - para stdin (nunca un argumento); el archivo contiene solo el valor.
--connection-id IDstringsin --tenant-idningunoInicia sesión mediante una conexión de Microsoft (pcn_…) del proyecto, en cualquiera de los dos modos, en lugar de --tenant-id, --client-id y --secret-file. No con ellas.
screenrig media sync account add microsoft365 --name Contoso --tenant-id contoso.onmicrosoft.com --client-id 0b1d2f3a-4c5e-4f60-8a7b-9c0d1e2f3a4b --secret-file secret.txt
screenrig media sync account add microsoft365 --name Contoso --connection-id pcn_01EXAMPLECONNECTION0000

En el centro de administración de Microsoft Entra, registre una aplicación de un solo tenant sin URI de redirección, agregue un secreto de cliente (copie su valor, no su ID de secreto), agregue el permiso de aplicación de Microsoft Graph Sites.Selected (y luego conceda a la aplicación acceso de lectura a cada sitio) o Files.Read.All, y conceda el consentimiento del administrador. La aplicación pertenece a este proyecto. Ejecute media sync account test a continuación.

media sync account add dropbox#

Agrega una cuenta de Dropbox e imprime el enlace de un solo uso que su propietario abre, con la sesión iniciada en Dropbox, para conectarla.

media sync account add dropbox --name NAME [--app-key KEY]
ParámetroTipoRequeridoPredeterminadoNotas
--name NAMEstringsíningunoDe 1 a 80 caracteres.
--app-key KEYstringnola aplicación de Dropbox de screenRIGLa clave de su propia aplicación de Dropbox: de 1 a 64 letras y dígitos, nunca su secreto de aplicación.
screenrig media sync account add dropbox --name "Marketing Dropbox"
screenrig media sync account add dropbox --name "Marketing Dropbox" --app-key YOURAPPKEY

data.authorize_url es el enlace y data.authorize_expires_at su caducidad. La CLI nunca abre un navegador: envíe el enlace a la persona propietaria de la cuenta de Dropbox, que permite el acceso de solo lectura (files.metadata.read, files.content.read, account_info.read, sharing.read). Ejecute media sync account show hasta que data.state sea ready (empieza como pending_consent) y después media sync create dropbox. Su propia aplicación de Dropbox necesita esos permisos habilitados y el URI de redirección que muestra la salida.

media sync account add google-drive#

Agrega una cuenta de Google Drive, lista de inmediato, e imprime la dirección de la cuenta de servicio con la que se comparten las carpetas.

media sync account add google-drive --name NAME [--key-file FILE]
ParámetroTipoRequeridoPredeterminadoNotas
--name NAMEstringsíningunoDe 1 a 80 caracteres.
--key-file FILEstringnola cuenta de servicio de screenRIGLee la clave JSON de su propia cuenta de servicio de Google Cloud desde este archivo, o - para stdin (nunca un argumento).
screenrig media sync account add google-drive --name "Marketing Drive"
screenrig media sync account add google-drive --name "Marketing Drive" --key-file key.json

data.config.service_account_email es la dirección con la que compartir cada carpeta; basta con el rol Lector. Con la cuenta de servicio de screenRIG, una carpeta se sincroniza solo cuando un miembro de este proyecto con un correo electrónico verificado la compartió o es su propietario (de lo contrario, media_sync_sharer_not_member). Con su propia clave, se sincroniza cualquier carpeta compartida con la cuenta de servicio.

media sync account list#

Lista las cuentas de sincronización de medios de este proyecto con su tipo, estado y última prueba; no se devuelve ningún secreto.

media sync account list

Sin parámetros.

screenrig media sync account list

media sync account show#

Inspecciona una cuenta: su tenant y su ID de cliente, el estado, el secreto enmascarado y la última prueba.

media sync account show <id>
ParámetroTipoRequeridoPredeterminadoNotas
<id>stringsíningunoLa cuenta (msa_…).
screenrig media sync account show msa_01EXAMPLEACCOUNT0000000

Una cuenta de Dropbox muestra además quién la conectó y su app_key; una cuenta de Google Drive muestra su service_account_email.

media sync account update#

Cambia el nombre de una cuenta, el tenant, el ID de aplicación o el secreto de cliente de una aplicación de Microsoft, o sustituye la clave propia de una cuenta de Google Drive.

media sync account update <id> [--name NAME] [--tenant-id TENANT] [--client-id ID]
    [--secret-file FILE | --key-file FILE] [--expect-rev REVISION]
ParámetroTipoRequeridoPredeterminadoNotas
<id>stringsíningunoLa cuenta (msa_…).
--name NAMEstringnosin cambiosCambia el nombre de la cuenta.
--tenant-id TENANTstringnosin cambiosEl ID de directorio o el dominio principal del tenant.
--client-id IDstringnosin cambiosEl ID de aplicación (cliente) del registro de la aplicación.
--secret-file FILEstringnosin cambiosLee el valor del nuevo secreto de cliente desde este archivo, o - para stdin; sustituye el secreto almacenado. Un secreto omitido se conserva.
--key-file FILEstringnosin cambiosLee la clave JSON propia de una cuenta de Google Drive desde este archivo, o - para stdin; debe pertenecer a la misma cuenta de servicio. No con --secret-file.
--expect-rev REVISIONintegernoningunoRechaza el cambio salvo que la cuenta esté en esta revisión (revision_conflict, salida 6).
screenrig media sync account update msa_01EXAMPLEACCOUNT0000000 --secret-file new-secret.txt
screenrig media sync account update msa_01EXAMPLEACCOUNT0000000 --name "Contoso tenant" --expect-rev 2

Se requiere al menos un cambio. Un cambio de credenciales borra last_test: pruebe la cuenta de nuevo. Los secretos de cliente de Entra caducan, así que reemplace aquí el secreto antes de que caduque.

media sync account connect#

Genera un nuevo enlace de un solo uso para conectar, o reconectar, una cuenta de Dropbox.

media sync account connect <id>
ParámetroTipoRequeridoPredeterminadoNotas
<id>stringsíningunoLa cuenta (msa_…).
screenrig media sync account connect msa_01EXAMPLEACCOUNT0000000

data.authorize_url y data.authorize_expires_at llevan el enlace, que sustituye al anterior. Envíelo a la persona propietaria de la cuenta de Dropbox. Úselo cuando la persona no haya terminado o la cuenta esté en reconnect_required (Dropbox ya no acepta la conexión). Una cuenta conectada sigue conectada hasta que se completa el nuevo consentimiento, y otra cuenta de Dropbox que inicie sesión se queda con la conexión.

media sync account test#

Comprueba una cuenta: el inicio de sesión y los permisos de Graph de una aplicación de Microsoft, o la conexión o la clave de una cuenta de Dropbox o de Google Drive.

media sync account test <id>
ParámetroTipoRequeridoPredeterminadoNotas
<id>stringsíningunoLa cuenta (msa_…).
screenrig media sync account test msa_01EXAMPLEACCOUNT0000000

La respuesta se guarda como last_test. Para una aplicación de Microsoft informa de credentials (Microsoft emitió un token; un rechazo lleva su código AADSTS, como AADSTS7000215 cuando el secreto es el ID en lugar del valor) y permissions (los permisos de aplicación de Graph que lleva el token). Sites.Selected por sí solo es una advertencia: cada sitio sigue necesitando su concesión, y un enlace para compartir necesita Files.Read.All. La prueba no juzga la concesión de un sitio ni una carpeta: media sync create lee la carpeta que usted indica. Una comprobación fallida es data.ok false con salida 0.

media sync account delete#

Elimina una cuenta que ninguna sincronización usa.

media sync account delete <id> [--expect-rev REVISION]
ParámetroTipoRequeridoPredeterminadoNotas
<id>stringsíningunoLa cuenta (msa_…).
--expect-rev REVISIONintegernoningunoRechaza la eliminación salvo que la cuenta esté en esta revisión (revision_conflict, salida 6).
screenrig media sync account delete msa_01EXAMPLEACCOUNT0000000

Mientras haya sincronizaciones que usen la cuenta, la respuesta es resource_conflict (salida 5), que las nombra: elimínelas primero.

media sync create sharepoint#

Sincroniza una carpeta de SharePoint o de OneDrive para el trabajo en una carpeta de medios.

media sync create sharepoint --account-id ID --url URL [--folder-id ID] [--every DURATION] [--name NAME]
ParámetroTipoRequeridoPredeterminadoNotas
--account-id IDstringsíningunoLa cuenta por la que leer (msa_…).
--url URLstringsíningunoLa dirección de la carpeta en SharePoint, como https://contoso.sharepoint.com/sites/Marketing/Shared%20Documents/Lobby%20Signs, que funciona con Sites.Selected una vez concedido el sitio, o su enlace para compartir (Compartir, Copiar vínculo), que necesita Files.Read.All. El OneDrive personal (onedrive.live.com, 1drv.ms) no se puede leer con una aplicación de organización.
--folder-id IDstringnouna carpeta de medios nueva con el nombre de la carpeta de origenLa carpeta de medios (mfd_…) en la que se colocan los archivos.
--every DURATIONstringno15mCon qué frecuencia buscar cambios, de 5 minutos a 24 horas: 15m, 1h, 6h o simplemente segundos (de 300 a 86400).
--name NAMEstringnoel nombre de la carpeta de origenDe 1 a 80 caracteres.
screenrig media sync create sharepoint --account-id msa_01EXAMPLEACCOUNT0000000 --url https://contoso.sharepoint.com/sites/Marketing/Shared%20Documents/Lobby%20Signs
screenrig media sync create sharepoint --account-id msa_01EXAMPLEACCOUNT0000000 --url "https://contoso.sharepoint.com/:f:/s/Marketing/EabcDEF" --folder-id mfd_01EXAMPLEFOLDER000000000 --every 1h --name "Lobby signs"

Una carpeta que Microsoft rechaza da media_sync_source_refused (salida 5), con el permiso que hay que conceder; no se guarda nada.

media sync create dropbox#

Sincroniza una carpeta de Dropbox en una carpeta de medios.

media sync create dropbox --account-id ID --url URL|PATH [--folder-id ID] [--every DURATION] [--name NAME]
ParámetroTipoRequeridoPredeterminadoNotas
--account-id IDstringsíningunoLa cuenta de Dropbox conectada por la que leer (msa_…).
--url URLstringsíningunoLa dirección de la carpeta en Dropbox (https://www.dropbox.com/home/...), un enlace de carpeta compartida que la cuenta ha añadido a su Dropbox, o una ruta que empieza por /. Una carpeta de espacio de equipo se lee desde la raíz del equipo.
--folder-id IDstringnouna carpeta de medios nueva con el nombre de la carpeta de origenLa carpeta de medios (mfd_…) en la que se colocan los archivos.
--every DURATIONstringno15mCon qué frecuencia buscar cambios, de 5 minutos a 24 horas: 15m, 1h, 6h o simplemente segundos (de 300 a 86400).
--name NAMEstringnoel nombre de la carpeta de origenDe 1 a 80 caracteres.
screenrig media sync create dropbox --account-id msa_01EXAMPLEACCOUNT0000000 --url https://www.dropbox.com/home/Marketing/Lobby%20Signs
screenrig media sync create dropbox --account-id msa_01EXAMPLEACCOUNT0000000 --url /Marketing/Lobby --folder-id mfd_01EXAMPLEFOLDER000000000 --every 1h --name "Lobby signs"

Cada ejecución continúa desde la posición guardada de Dropbox en la carpeta y lee solo lo que cambió. Una carpeta que la cuenta no puede abrir da media_sync_source_refused, y una conexión que Dropbox ya no acepta da dropbox_reconnect_required (media sync account connect): ambas con salida 5, sin guardar nada.

media sync create google-drive#

Sincroniza una carpeta de Google Drive compartida con la cuenta de servicio de una cuenta en una carpeta de medios.

media sync create google-drive --account-id ID --url URL|ID [--folder-id ID] [--every DURATION] [--name NAME]
ParámetroTipoRequeridoPredeterminadoNotas
--account-id IDstringsíningunoLa cuenta de Google Drive por la que leer (msa_…).
--url URLstringsíningunoLa dirección de la carpeta (https://drive.google.com/drive/folders/ID), o su ID. Comparta primero la carpeta con el service_account_email de la cuenta; basta con el rol Lector.
--folder-id IDstringnouna carpeta de medios nueva con el nombre de la carpeta de origenLa carpeta de medios (mfd_…) en la que se colocan los archivos.
--every DURATIONstringno15mCon qué frecuencia buscar cambios, de 5 minutos a 24 horas: 15m, 1h, 6h o simplemente segundos (de 300 a 86400).
--name NAMEstringnoel nombre de la carpeta de origenDe 1 a 80 caracteres.
screenrig media sync create google-drive --account-id msa_01EXAMPLEACCOUNT0000000 --url https://drive.google.com/drive/folders/1AbCdEfGhIjKlMnOpQrStUvWxYz --folder-id mfd_01EXAMPLEFOLDER000000000 --every 1h
screenrig media sync create google-drive --account-id msa_01EXAMPLEACCOUNT0000000 --url 1AbCdEfGhIjKlMnOpQrStUvWxYz

Con la cuenta de servicio de screenRIG, la carpeta se sincroniza solo cuando un miembro de este proyecto con un correo electrónico verificado la compartió o es su propietario (media_sync_sharer_not_member, salida 3, no se guarda nada). Cada ejecución lo comprueba de nuevo, y una carpeta que se queda sin esa persona que la compartía detiene la sincronización en estado error conservando sus medios: vuelva a compartirla desde la cuenta de Google de un miembro y después ejecute media sync update ID --resume. Los archivos de Google Docs, Sheets y Slides se omiten como unsupported_type. Una carpeta que la dirección no puede abrir da media_sync_source_refused (salida 5): compártala con la cuenta de servicio.

media sync list#

Lista las sincronizaciones de medios de este proyecto con su carpeta de medios, cadencia, estado y estado de la última ejecución.

media sync list

Sin parámetros.

screenrig media sync list

media sync show#

Inspecciona una sincronización y el resumen de su última ejecución.

media sync show <id>
ParámetroTipoRequeridoPredeterminadoNotas
<id>stringsíningunoLa sincronización (msy_…).
screenrig media sync show msy_01EXAMPLESYNC000000000

data.last_run lleva status (ok, partial o error), added, updated, removed, pending_delete (archivos eliminados que una pantalla aún conserva, a la espera en la carpeta Removed), skipped_total y skipped, los primeros 20 archivos omitidos con el motivo de cada archivo (unsupported_type, too_large, storage, subfolder, download_failed, unreadable, in_use); una ejecución fallida lleva error con un code y un detail que indican la solución. data.source añade path para Dropbox y shared_by para Google Drive.

Una sincronización en estado error necesita una reparación. Se eliminó su carpeta de medios: apúntela a otra con media sync update --folder-id. Se eliminó o movió su carpeta de origen: elimine la sincronización y cree otra. Para Google Drive con la cuenta de servicio de screenRIG, la carpeta se quedó sin una persona verificada que la comparta (sharer_not_member): vuelva a compartirla desde la cuenta de Google de un miembro del proyecto y después media sync update ID --resume. Una ejecución de Dropbox falla con reconnect_required cuando Dropbox deja de aceptar la conexión (media sync account connect).

media sync update#

Cambia el nombre, la cadencia o la carpeta de medios de una sincronización, o la pausa y la reanuda.

media sync update <id> [--name NAME] [--every DURATION] [--folder-id ID]
    [--pause | --resume] [--expect-rev REVISION]
ParámetroTipoRequeridoPredeterminadoNotas
<id>stringsíningunoLa sincronización (msy_…).
--name NAMEstringnosin cambiosCambia el nombre de la sincronización.
--every DURATIONstringnosin cambiosCon qué frecuencia buscar cambios, de 5 minutos a 24 horas.
--folder-id IDstringnosin cambiosLlena esta carpeta de medios (mfd_…) en su lugar. La siguiente ejecución vuelve a leer todo el origen y coloca en ella todos los archivos sincronizados.
--pausebooleannoapagadoDeja de ejecutarse hasta que se reanude. No con --resume.
--resumebooleannoapagadoVuelve a ejecutarla; también reinicia una sincronización que un error detuvo. No con --pause.
--expect-rev REVISIONintegernoningunoRechaza el cambio salvo que la sincronización esté en esta revisión (revision_conflict, salida 6).
screenrig media sync update msy_01EXAMPLESYNC000000000 --every 1h
screenrig media sync update msy_01EXAMPLESYNC000000000 --pause
screenrig media sync update msy_01EXAMPLESYNC000000000 --folder-id mfd_01EXAMPLEFOLDER000000000 --expect-rev 3

Se requiere al menos un cambio.

media sync run#

Ejecuta una sincronización ahora en lugar de a su próxima hora.

media sync run <id>
ParámetroTipoRequeridoPredeterminadoNotas
<id>stringsíningunoLa sincronización (msy_…).
screenrig media sync run msy_01EXAMPLESYNC000000000

La sincronización se ejecuta en unos 30 segundos, y media sync show muestra entonces su última ejecución. Una sincronización en pausa debe reanudarse antes.

media sync delete#

Detiene una sincronización; sus medios y su carpeta permanecen.

media sync delete <id> [--expect-rev REVISION]
ParámetroTipoRequeridoPredeterminadoNotas
<id>stringsíningunoLa sincronización (msy_…).
--expect-rev REVISIONintegernoningunoRechaza la eliminación salvo que la sincronización esté en esta revisión (revision_conflict, salida 6).
screenrig media sync delete msy_01EXAMPLESYNC000000000

La sincronización olvida qué archivo de origen se convirtió en qué medio. Los medios importados y la carpeta de medios permanecen, y no se elimina nada.

Otros grupos de comandos