Documentação

Sincronização de mídia: comandos da CLI

Mantenha uma pasta de mídia em dia com SharePoint, OneDrive, Dropbox ou Google Drive: adicione contas, crie sincronizações e execute-as.

Cada comando funciona como descrito na referência da CLI: flags globais, saída JSON, códigos de saída, revisões e tentativas.

Sincronização de mídia

Uma sincronização de mídia mantém uma pasta de mídia em sincronia com uma pasta do SharePoint, do OneDrive for Business, do Dropbox ou do Google Drive. Cada execução importa as imagens (png, jpeg, webp, gif), os vídeos (mp4, webm) e o áudio (mp3) diretamente dentro da pasta de origem; as subpastas são ignoradas. Um arquivo alterado substitui seus bytes sob o mesmo ID de mídia, então toda playlist que o reproduz é atualizada, e um arquivo removido ou movido para fora na origem deixa de ser reproduzido: sua mídia é excluída ou, enquanto uma tela ainda a exibe, movida para uma subpasta Removed e excluída quando nada a mantém. Os outros arquivos são listados como ignorados com o motivo: mostre um arquivo do Office ou um PDF com um link de documento em uma playlist e exporte MOV e semelhantes como MP4 H.264. Uma playlist reproduz a pasta com um seletor by:folder.

Toda sincronização lê por meio de uma conta do projeto. Um ID de conta começa com msa_ e um ID de sincronização com msy_. media sync account add microsoft365 armazena seu próprio aplicativo do Microsoft Entra ou nomeia uma conexão da Microsoft do projeto; media sync account add dropbox imprime um link de uso único para a pessoa dona da conta do Dropbox; media sync account add google-drive lê as pastas compartilhadas com o endereço de uma conta de serviço, a do screenRIG ou a sua própria. Teste a conta e depois crie uma sincronização a partir do endereço de uma pasta: ela está pronta para ser executada de imediato.

Informe um segredo de cliente com --secret-file FILE e uma chave do Google Drive com --key-file FILE, ou - para stdin, nunca como argumento. Os segredos são selados no servidor e mostrados de volta apenas como data.secret {set, hint}. A leitura exige acesso Read, e toda alteração exige acesso Manage.

media sync account add microsoft365#

Adiciona seu próprio aplicativo do Microsoft Entra, ou uma conexão da Microsoft do projeto, para que uma sincronização possa ler uma pasta do SharePoint ou do OneDrive for Business.

media sync account add microsoft365 --name NAME
    (--tenant-id TENANT --client-id ID --secret-file FILE | --connection-id ID)
ParâmetroTipoObrigatórioPadrãoNotas
--name NAMEstringsimnenhum1 a 80 caracteres.
--tenant-id TENANTstringsem --connection-idnenhumO ID do diretório (tenant) da sua organização, ou o domínio primário dele, como contoso.onmicrosoft.com; nunca common, organizations ou consumers. Junto com --client-id e --secret-file.
--client-id IDstringsem --connection-idnenhumO ID do aplicativo (cliente) do registro de aplicativo, um GUID.
--secret-file FILEstringsem --connection-idnenhumLê o Valor do segredo de cliente deste arquivo, ou - para stdin (nunca como argumento); o arquivo contém apenas o Valor.
--connection-id IDstringsem --tenant-idnenhumFaz login por meio de uma conexão da Microsoft (pcn_…) do projeto, em qualquer um dos modos, em vez de --tenant-id, --client-id e --secret-file. Não com eles.
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

No centro de administração do Microsoft Entra, registre um aplicativo de locatário único sem URI de redirecionamento, adicione um segredo de cliente (copie o Valor, não o ID do segredo), adicione a permissão de aplicativo Sites.Selected do Microsoft Graph (e depois conceda ao aplicativo acesso de leitura a cada site) ou Files.Read.All, e conceda o consentimento do administrador. O aplicativo pertence a este projeto. Execute media sync account test em seguida.

media sync account add dropbox#

Adiciona uma conta do Dropbox e imprime o link de uso único que seu dono abre, logado no Dropbox, para conectá-la.

media sync account add dropbox --name NAME [--app-key KEY]
ParâmetroTipoObrigatórioPadrãoNotas
--name NAMEstringsimnenhum1 a 80 caracteres.
--app-key KEYstringnãoo aplicativo do Dropbox do screenRIGA chave do seu próprio aplicativo do Dropbox (app key): de 1 a 64 letras e dígitos, nunca o segredo do aplicativo.
screenrig media sync account add dropbox --name "Marketing Dropbox"
screenrig media sync account add dropbox --name "Marketing Dropbox" --app-key YOURAPPKEY

data.authorize_url é o link e data.authorize_expires_at sua expiração. O CLI nunca abre um navegador: envie o link à pessoa dona da conta do Dropbox, que permite acesso somente leitura (files.metadata.read, files.content.read, account_info.read, sharing.read). Execute media sync account show até que data.state seja ready (começa como pending_consent) e depois media sync create dropbox. Seu próprio aplicativo do Dropbox precisa ter essas permissões ativadas e o redirect URI que a saída imprime.

media sync account add google-drive#

Adiciona uma conta do Google Drive, pronta de imediato, e imprime o endereço da conta de serviço com o qual as pastas são compartilhadas.

media sync account add google-drive --name NAME [--key-file FILE]
ParâmetroTipoObrigatórioPadrãoNotas
--name NAMEstringsimnenhum1 a 80 caracteres.
--key-file FILEstringnãoa conta de serviço do screenRIGLê a chave JSON da sua própria conta de serviço do Google Cloud deste arquivo, ou - para stdin (nunca como 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 é o endereço com o qual compartilhar cada pasta; Viewer basta. Pela conta de serviço do screenRIG, uma pasta só sincroniza quando um membro deste projeto com e-mail verificado a compartilhou ou é o proprietário dela (media_sync_sharer_not_member caso contrário). Com sua própria chave, qualquer pasta compartilhada com a conta de serviço sincroniza.

media sync account list#

Lista as contas de sincronização de mídia deste projeto com o tipo, o estado e o último teste de cada uma; nenhum segredo é devolvido.

media sync account list

Sem parâmetros.

screenrig media sync account list

media sync account show#

Inspeciona uma conta: seu tenant e ID de cliente, o estado, o segredo mascarado e o último teste.

media sync account show <id>
ParâmetroTipoObrigatórioPadrãoNotas
<id>stringsimnenhumA conta (msa_…).
screenrig media sync account show msa_01EXAMPLEACCOUNT0000000

Uma conta do Dropbox também mostra quem a conectou e seu app_key; uma conta do Google Drive mostra seu service_account_email.

media sync account update#

Renomeia uma conta, altera o tenant, o ID do aplicativo ou o segredo de cliente de um aplicativo da Microsoft, ou substitui a chave própria de uma conta do 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âmetroTipoObrigatórioPadrãoNotas
<id>stringsimnenhumA conta (msa_…).
--name NAMEstringnãoinalteradoRenomeia a conta.
--tenant-id TENANTstringnãoinalteradoO ID do diretório ou o domínio primário do tenant.
--client-id IDstringnãoinalteradoO ID do aplicativo (cliente) do registro de aplicativo.
--secret-file FILEstringnãoinalteradoLê o Valor do novo segredo de cliente deste arquivo, ou - para stdin; ele substitui o segredo armazenado. Um segredo omitido é mantido.
--key-file FILEstringnãoinalteradoLê a chave JSON própria de uma conta do Google Drive deste arquivo, ou - para stdin; ela deve pertencer à mesma conta de serviço. Não com --secret-file.
--expect-rev REVISIONintegernãonenhumRecusa a alteração a menos que a conta esteja nesta revisão (revision_conflict, código de saída 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

Pelo menos uma alteração é obrigatória. Uma alteração de credenciais limpa last_test: teste a conta de novo. Os segredos de cliente do Entra expiram, então substitua o segredo aqui antes que isso aconteça.

media sync account connect#

Cria um novo link de uso único para conectar, ou reconectar, uma conta do Dropbox.

media sync account connect <id>
ParâmetroTipoObrigatórioPadrãoNotas
<id>stringsimnenhumA conta (msa_…).
screenrig media sync account connect msa_01EXAMPLEACCOUNT0000000

data.authorize_url e data.authorize_expires_at trazem o link, que substitui o anterior. Envie-o à pessoa dona da conta do Dropbox. Use-o quando a pessoa não concluiu ou a conta está em reconnect_required (o Dropbox não honra mais a conexão). Uma conta conectada permanece conectada até que o novo consentimento seja concluído, e outra conta do Dropbox que faça login assume a conexão.

media sync account test#

Verifica uma conta: o login e as permissões do Graph de um aplicativo da Microsoft, ou a conexão ou a chave de uma conta do Dropbox ou do Google Drive.

media sync account test <id>
ParâmetroTipoObrigatórioPadrãoNotas
<id>stringsimnenhumA conta (msa_…).
screenrig media sync account test msa_01EXAMPLEACCOUNT0000000

A resposta é armazenada como last_test. Para um aplicativo da Microsoft, informa credentials (a Microsoft emitiu um token; uma recusa traz o código AADSTS, como AADSTS7000215 para um segredo que é o ID em vez do Valor) e permissions (as permissões de aplicativo do Graph que o token carrega). Sites.Selected sozinha é um aviso: cada site ainda precisa de sua concessão, e um link de compartilhamento precisa de Files.Read.All. O teste não avalia a concessão de um site nem uma pasta: media sync create lê a pasta que você nomeia. Uma verificação que falha é data.ok false com código de saída 0.

media sync account delete#

Exclui uma conta que nenhuma sincronização usa.

media sync account delete <id> [--expect-rev REVISION]
ParâmetroTipoObrigatórioPadrãoNotas
<id>stringsimnenhumA conta (msa_…).
--expect-rev REVISIONintegernãonenhumRecusa a exclusão a menos que a conta esteja nesta revisão (revision_conflict, código de saída 6).
screenrig media sync account delete msa_01EXAMPLEACCOUNT0000000

Enquanto sincronizações usam a conta, a resposta é resource_conflict (código de saída 5), nomeando-as: exclua-as primeiro.

media sync create sharepoint#

Sincroniza uma pasta do SharePoint ou do OneDrive for Business com uma pasta de mídia.

media sync create sharepoint --account-id ID --url URL [--folder-id ID] [--every DURATION] [--name NAME]
ParâmetroTipoObrigatórioPadrãoNotas
--account-id IDstringsimnenhumA conta pela qual ler (msa_…).
--url URLstringsimnenhumO endereço da pasta no SharePoint, como https://contoso.sharepoint.com/sites/Marketing/Shared%20Documents/Lobby%20Signs, que funciona com Sites.Selected depois que o site recebe a concessão, ou o link de compartilhamento dela (Compartilhar, Copiar link), que precisa de Files.Read.All. O OneDrive pessoal (onedrive.live.com, 1drv.ms) não pode ser lido com um aplicativo da organização.
--folder-id IDstringnãouma nova pasta de mídia com o nome da pasta de origemA pasta de mídia (mfd_…) em que os arquivos são colocados.
--every DURATIONstringnão15mCom que frequência procurar alterações, de 5 minutos a 24 horas: 15m, 1h, 6h ou segundos simples (300 a 86400).
--name NAMEstringnãoo nome da pasta de origem1 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"

Uma pasta que a Microsoft recusa é media_sync_source_refused (código de saída 5), com a permissão a conceder; nada é armazenado.

media sync create dropbox#

Sincroniza uma pasta do Dropbox com uma pasta de mídia.

media sync create dropbox --account-id ID --url URL|PATH [--folder-id ID] [--every DURATION] [--name NAME]
ParâmetroTipoObrigatórioPadrãoNotas
--account-id IDstringsimnenhumA conta do Dropbox conectada pela qual ler (msa_…).
--url URLstringsimnenhumO endereço da pasta no Dropbox (https://www.dropbox.com/home/...), um link de pasta compartilhada que a conta adicionou ao seu Dropbox, ou um caminho que começa com /. Uma pasta do espaço da equipe é lida a partir da raiz da equipe.
--folder-id IDstringnãouma nova pasta de mídia com o nome da pasta de origemA pasta de mídia (mfd_…) em que os arquivos são colocados.
--every DURATIONstringnão15mCom que frequência procurar alterações, de 5 minutos a 24 horas: 15m, 1h, 6h ou segundos simples (300 a 86400).
--name NAMEstringnãoo nome da pasta de origem1 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 execução continua da posição salva do Dropbox na pasta e lê apenas o que mudou. Uma pasta que a conta não consegue abrir é media_sync_source_refused, e uma conexão que o Dropbox não honra mais é dropbox_reconnect_required (media sync account connect): ambas com código de saída 5, nada armazenado.

media sync create google-drive#

Sincroniza com uma pasta de mídia uma pasta do Google Drive compartilhada com a conta de serviço de uma conta.

media sync create google-drive --account-id ID --url URL|ID [--folder-id ID] [--every DURATION] [--name NAME]
ParâmetroTipoObrigatórioPadrãoNotas
--account-id IDstringsimnenhumA conta do Google Drive pela qual ler (msa_…).
--url URLstringsimnenhumO endereço da pasta (https://drive.google.com/drive/folders/ID) ou o ID dela. Compartilhe primeiro a pasta com o service_account_email da conta; Viewer basta.
--folder-id IDstringnãouma nova pasta de mídia com o nome da pasta de origemA pasta de mídia (mfd_…) em que os arquivos são colocados.
--every DURATIONstringnão15mCom que frequência procurar alterações, de 5 minutos a 24 horas: 15m, 1h, 6h ou segundos simples (300 a 86400).
--name NAMEstringnãoo nome da pasta de origem1 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

Pela conta de serviço do screenRIG, a pasta só sincroniza quando um membro deste projeto com e-mail verificado a compartilhou ou é o proprietário dela (media_sync_sharer_not_member, código de saída 3, nada armazenado). Cada execução verifica isso de novo, e uma pasta que perde esse compartilhador interrompe a sincronização no estado error com a mídia mantida: compartilhe-a de novo a partir da conta do Google de um membro e depois execute media sync update ID --resume. Arquivos do Google Docs, Sheets e Slides são ignorados como unsupported_type. Uma pasta que o endereço não consegue abrir é media_sync_source_refused (código de saída 5): compartilhe-a com a conta de serviço.

media sync list#

Lista as sincronizações de mídia deste projeto com a pasta de mídia, a cadência, o estado e o status da última execução de cada uma.

media sync list

Sem parâmetros.

screenrig media sync list

media sync show#

Inspeciona uma sincronização e o resumo da última execução dela.

media sync show <id>
ParâmetroTipoObrigatórioPadrãoNotas
<id>stringsimnenhumA sincronização (msy_…).
screenrig media sync show msy_01EXAMPLESYNC000000000

data.last_run traz status (ok, partial ou error), added, updated, removed, pending_delete (arquivos removidos que uma tela ainda mantém, aguardando na pasta Removed), skipped_total e skipped, os 20 primeiros arquivos ignorados com o motivo de cada arquivo (unsupported_type, too_large, storage, subfolder, download_failed, unreadable, in_use); uma execução com falha traz error com um code e um detail que indicam a correção. data.source acrescenta path para o Dropbox e shared_by para o Google Drive.

Uma sincronização no estado error precisa de reparo. Sua pasta de mídia foi excluída: aponte-a para outra com media sync update --folder-id. Sua pasta de origem foi excluída ou movida: exclua a sincronização e crie uma. Para o Google Drive pela conta de serviço do screenRIG, a pasta perdeu o compartilhador verificado (sharer_not_member): compartilhe-a de novo a partir da conta do Google de um membro do projeto e depois media sync update ID --resume. Uma execução do Dropbox falha com reconnect_required quando o Dropbox deixa de honrar a conexão (media sync account connect).

media sync update#

Altera o nome, a cadência ou a pasta de mídia de uma sincronização, ou a pausa e a retoma.

media sync update <id> [--name NAME] [--every DURATION] [--folder-id ID]
    [--pause | --resume] [--expect-rev REVISION]
ParâmetroTipoObrigatórioPadrãoNotas
<id>stringsimnenhumA sincronização (msy_…).
--name NAMEstringnãoinalteradoRenomeia a sincronização.
--every DURATIONstringnãoinalteradoCom que frequência procurar alterações, de 5 minutos a 24 horas.
--folder-id IDstringnãoinalteradoPreenche esta pasta de mídia (mfd_…) no lugar da atual. A próxima execução lê toda a origem de novo e coloca nela todos os arquivos sincronizados.
--pausebooleannãodesligadoPara de executar até ser retomada. Não com --resume.
--resumebooleannãodesligadoExecuta de novo; também reinicia uma sincronização que um erro interrompeu. Não com --pause.
--expect-rev REVISIONintegernãonenhumRecusa a alteração a menos que a sincronização esteja nesta revisão (revision_conflict, código de saída 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

Pelo menos uma alteração é obrigatória.

media sync run#

Executa uma sincronização agora em vez de no próximo horário dela.

media sync run <id>
ParâmetroTipoObrigatórioPadrãoNotas
<id>stringsimnenhumA sincronização (msy_…).
screenrig media sync run msy_01EXAMPLESYNC000000000

A sincronização é executada em cerca de 30 segundos, e media sync show então mostra a última execução dela. Uma sincronização pausada deve ser retomada primeiro.

media sync delete#

Interrompe uma sincronização; a mídia e a pasta dela permanecem.

media sync delete <id> [--expect-rev REVISION]
ParâmetroTipoObrigatórioPadrãoNotas
<id>stringsimnenhumA sincronização (msy_…).
--expect-rev REVISIONintegernãonenhumRecusa a exclusão a menos que a sincronização esteja nesta revisão (revision_conflict, código de saída 6).
screenrig media sync delete msy_01EXAMPLESYNC000000000

A sincronização esquece qual arquivo de origem virou qual mídia. A mídia importada e a pasta de mídia permanecem, e nada é removido.

Outros grupos de comandos