Sincronizzazione dei media
Una sincronizzazione dei media mantiene una cartella media allineata a una cartella SharePoint, OneDrive for work, Dropbox o Google Drive. Ogni esecuzione importa le immagini (png, jpeg, webp, gif), i video (mp4, webm) e l’audio (mp3) direttamente dentro la cartella di origine; le sottocartelle vengono ignorate. Un file modificato sostituisce i propri byte mantenendo lo stesso ID media, quindi si aggiorna ogni playlist che lo riproduce, e un file rimosso o spostato fuori all’origine esce dalla riproduzione: il suo media viene eliminato oppure, finché uno schermo lo mostra ancora, spostato in una sottocartella Removed ed eliminato quando nessuno lo usa più. Gli altri file sono elencati come saltati con il motivo: mostra in una playlist un file Office o un PDF con un link a un documento, ed esporta MOV e simili come MP4 H.264. Una playlist riproduce la cartella con un selettore by:folder.
Ogni sincronizzazione legge tramite un account del progetto. Un ID account inizia con msa_ e un ID sincronizzazione con msy_. media sync account add microsoft365 memorizza la tua app Microsoft Entra, oppure indica una connessione Microsoft del progetto; media sync account add dropbox stampa un link monouso per la persona titolare dell’account Dropbox; media sync account add google-drive legge le cartelle condivise con l’indirizzo di un account di servizio, quello di screenRIG o il tuo. Testa l’account, poi crea una sincronizzazione dall’indirizzo di una cartella: è da eseguire subito.
Fornisci un segreto client con --secret-file FILE e una chiave Google Drive con --key-file FILE, oppure - per stdin, mai come argomento. I segreti vengono sigillati sul server e restituiti solo come data.secret {set, hint}. La lettura richiede l’accesso Read, e ogni modifica richiede l’accesso Manage.
media sync account add microsoft365#
Aggiungi la tua app Microsoft Entra, oppure una connessione Microsoft del progetto, così una sincronizzazione può leggere una cartella SharePoint o OneDrive for work.
media sync account add microsoft365 --name NAME
(--tenant-id TENANT --client-id ID --secret-file FILE | --connection-id ID)| Parametro | Tipo | Obbligatorio | Predefinito | Note |
|---|---|---|---|---|
--name NAME | string | sì | nessuno | Da 1 a 80 caratteri. |
--tenant-id TENANT | string | senza --connection-id | nessuno | L’ID directory (tenant) della tua organizzazione, o il suo dominio principale come contoso.onmicrosoft.com; mai common, organizations o consumers. Insieme a --client-id e --secret-file. |
--client-id ID | string | senza --connection-id | nessuno | L’ID applicazione (client) della registrazione dell’app, un GUID. |
--secret-file FILE | string | senza --connection-id | nessuno | Leggi il valore del segreto client da questo file, oppure - per stdin (mai un argomento); il file contiene solo il valore. |
--connection-id ID | string | senza --tenant-id | nessuno | Accedi tramite una connessione Microsoft (pcn_…) del progetto, in entrambe le modalità, al posto di --tenant-id, --client-id e --secret-file. Non insieme a essi. |
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_01EXAMPLECONNECTION0000Nell’interfaccia di amministrazione di Microsoft Entra registra un’app a tenant singolo senza URI di reindirizzamento, aggiungi un segreto client (copia il suo valore, non l’ID del segreto), aggiungi l’autorizzazione dell’applicazione Microsoft Graph Sites.Selected (poi concedi all’app l’accesso in lettura a ogni sito) oppure Files.Read.All, e concedi il consenso dell’amministratore. L’app appartiene a questo progetto. Poi esegui media sync account test.
media sync account add dropbox#
Aggiungi un account Dropbox e stampa il link monouso che il suo titolare apre, dopo aver effettuato l’accesso a Dropbox, per collegarlo.
media sync account add dropbox --name NAME [--app-key KEY]| Parametro | Tipo | Obbligatorio | Predefinito | Note |
|---|---|---|---|---|
--name NAME | string | sì | nessuno | Da 1 a 80 caratteri. |
--app-key KEY | string | no | l’app Dropbox di screenRIG | L’app key della tua app Dropbox: da 1 a 64 lettere e cifre, mai il segreto dell’app. |
screenrig media sync account add dropbox --name "Marketing Dropbox"
screenrig media sync account add dropbox --name "Marketing Dropbox" --app-key YOURAPPKEYdata.authorize_url è il link e data.authorize_expires_at la sua scadenza. La CLI non apre mai un browser: invia il link alla persona titolare dell’account Dropbox, che concede l’accesso in sola lettura (files.metadata.read, files.content.read, account_info.read, sharing.read). Esegui media sync account show finché data.state non è ready (parte come pending_consent), poi media sync create dropbox. La tua app Dropbox deve avere abilitati quei permessi e l’URI di reindirizzamento che l’output stampa.
media sync account add google-drive#
Aggiungi un account Google Drive, subito pronto, e stampa l’indirizzo dell’account di servizio con cui vengono condivise le cartelle.
media sync account add google-drive --name NAME [--key-file FILE]| Parametro | Tipo | Obbligatorio | Predefinito | Note |
|---|---|---|---|---|
--name NAME | string | sì | nessuno | Da 1 a 80 caratteri. |
--key-file FILE | string | no | l’account di servizio di screenRIG | Leggi da questo file la chiave JSON del tuo account di servizio Google Cloud, oppure - per stdin (mai un argomento). |
screenrig media sync account add google-drive --name "Marketing Drive"
screenrig media sync account add google-drive --name "Marketing Drive" --key-file key.jsondata.config.service_account_email è l’indirizzo con cui condividere ogni cartella; basta il ruolo Lettore. Tramite l’account di servizio di screenRIG una cartella si sincronizza solo quando un membro di questo progetto con un’email verificata l’ha condivisa o ne è il proprietario (altrimenti media_sync_sharer_not_member). Con la tua chiave si sincronizza qualsiasi cartella condivisa con l’account di servizio.
media sync account list#
Elenca gli account di sincronizzazione dei media di questo progetto con il loro tipo, stato e ultimo test; non viene restituito alcun segreto.
media sync account listNessun parametro.
screenrig media sync account listmedia sync account show#
Ispeziona un account: il suo tenant e ID client, lo stato, il segreto mascherato e l’ultimo test.
media sync account show <id>| Parametro | Tipo | Obbligatorio | Predefinito | Note |
|---|---|---|---|---|
<id> | string | sì | nessuno | L’account (msa_…). |
screenrig media sync account show msa_01EXAMPLEACCOUNT0000000Un account Dropbox mostra anche chi lo ha collegato e il suo app_key; un account Google Drive mostra il suo service_account_email.
media sync account update#
Rinomina un account, modifica il tenant, l’ID applicazione o il segreto client di un’app Microsoft, oppure sostituisci la chiave propria di un account Google Drive.
media sync account update <id> [--name NAME] [--tenant-id TENANT] [--client-id ID]
[--secret-file FILE | --key-file FILE] [--expect-rev REVISION]| Parametro | Tipo | Obbligatorio | Predefinito | Note |
|---|---|---|---|---|
<id> | string | sì | nessuno | L’account (msa_…). |
--name NAME | string | no | invariato | Rinomina l’account. |
--tenant-id TENANT | string | no | invariato | L’ID directory o il dominio principale del tenant. |
--client-id ID | string | no | invariato | L’ID applicazione (client) della registrazione dell’app. |
--secret-file FILE | string | no | invariato | Leggi il valore del nuovo segreto client da questo file, oppure - per stdin; sostituisce il segreto memorizzato. Un segreto omesso viene conservato. |
--key-file FILE | string | no | invariato | Leggi da questo file la chiave JSON propria di un account Google Drive, oppure - per stdin; deve appartenere allo stesso account di servizio. Non con --secret-file. |
--expect-rev REVISION | integer | no | nessuno | Rifiuta la modifica se l’account non è a questa revisione (revision_conflict, uscita 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È richiesta almeno una modifica. Una modifica delle credenziali cancella last_test: testa di nuovo l’account. I segreti client di Entra scadono, quindi sostituisci qui il segreto prima che scada.
media sync account connect#
Crea un nuovo link monouso per collegare, o ricollegare, un account Dropbox.
media sync account connect <id>| Parametro | Tipo | Obbligatorio | Predefinito | Note |
|---|---|---|---|---|
<id> | string | sì | nessuno | L’account (msa_…). |
screenrig media sync account connect msa_01EXAMPLEACCOUNT0000000data.authorize_url e data.authorize_expires_at contengono il link, che sostituisce il precedente. Invialo alla persona titolare dell’account Dropbox. Usalo quando la persona non ha completato l’operazione o l’account è reconnect_required (Dropbox non accetta più la connessione). Un account collegato resta collegato finché il nuovo consenso non è completato, e un altro account Dropbox che accede subentra nella connessione.
media sync account test#
Controlla un account: l’accesso e le autorizzazioni Graph di un’app Microsoft, oppure la connessione o la chiave di un account Dropbox o Google Drive.
media sync account test <id>| Parametro | Tipo | Obbligatorio | Predefinito | Note |
|---|---|---|---|---|
<id> | string | sì | nessuno | L’account (msa_…). |
screenrig media sync account test msa_01EXAMPLEACCOUNT0000000La risposta viene memorizzata come last_test. Per un’app Microsoft riporta credentials (Microsoft ha emesso un token; un rifiuto contiene il suo codice AADSTS, come AADSTS7000215 per un segreto che è l’ID anziché il valore) e permissions (le autorizzazioni dell’applicazione Graph che il token possiede). Sites.Selected da sola è un avviso: ogni sito richiede ancora la propria concessione, e un link di condivisione richiede Files.Read.All. Il test non valuta la concessione di un sito né una cartella: media sync create legge la cartella che indichi. Un controllo non riuscito è data.ok false con uscita 0.
media sync account delete#
Elimina un account che nessuna sincronizzazione usa.
media sync account delete <id> [--expect-rev REVISION]| Parametro | Tipo | Obbligatorio | Predefinito | Note |
|---|---|---|---|---|
<id> | string | sì | nessuno | L’account (msa_…). |
--expect-rev REVISION | integer | no | nessuno | Rifiuta l’eliminazione se l’account non è a questa revisione (revision_conflict, uscita 6). |
screenrig media sync account delete msa_01EXAMPLEACCOUNT0000000Finché delle sincronizzazioni usano l’account, la risposta è resource_conflict (uscita 5), che le nomina: eliminale prima.
media sync create dropbox#
Sincronizza una cartella Dropbox in una cartella media.
media sync create dropbox --account-id ID --url URL|PATH [--folder-id ID] [--every DURATION] [--name NAME]| Parametro | Tipo | Obbligatorio | Predefinito | Note |
|---|---|---|---|---|
--account-id ID | string | sì | nessuno | L’account Dropbox collegato tramite cui leggere (msa_…). |
--url URL | string | sì | nessuno | L’indirizzo Dropbox della cartella (https://www.dropbox.com/home/...), il link di una cartella condivisa che l’account ha aggiunto al proprio Dropbox, oppure un percorso che inizia con /. Una cartella dello spazio del team viene letta dalla radice del team. |
--folder-id ID | string | no | una nuova cartella media con il nome della cartella di origine | La cartella media (mfd_…) in cui finiscono i file. |
--every DURATION | string | no | 15m | Ogni quanto cercare modifiche, da 5 minuti a 24 ore: 15m, 1h, 6h, oppure semplici secondi (da 300 a 86400). |
--name NAME | string | no | il nome della cartella di origine | Da 1 a 80 caratteri. |
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"Ogni esecuzione riprende dalla posizione salvata da Dropbox nella cartella e legge solo ciò che è cambiato. Una cartella che l’account non può aprire è media_sync_source_refused, e una connessione che Dropbox non accetta più è dropbox_reconnect_required (media sync account connect): entrambe terminano con uscita 5, senza memorizzare nulla.
media sync create google-drive#
Sincronizza una cartella Google Drive condivisa con l’account di servizio dell’account in una cartella media.
media sync create google-drive --account-id ID --url URL|ID [--folder-id ID] [--every DURATION] [--name NAME]| Parametro | Tipo | Obbligatorio | Predefinito | Note |
|---|---|---|---|---|
--account-id ID | string | sì | nessuno | L’account Google Drive tramite cui leggere (msa_…). |
--url URL | string | sì | nessuno | L’indirizzo della cartella (https://drive.google.com/drive/folders/ID), oppure il suo ID. Prima condividi la cartella con il service_account_email dell’account; basta il ruolo Lettore. |
--folder-id ID | string | no | una nuova cartella media con il nome della cartella di origine | La cartella media (mfd_…) in cui finiscono i file. |
--every DURATION | string | no | 15m | Ogni quanto cercare modifiche, da 5 minuti a 24 ore: 15m, 1h, 6h, oppure semplici secondi (da 300 a 86400). |
--name NAME | string | no | il nome della cartella di origine | Da 1 a 80 caratteri. |
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 1AbCdEfGhIjKlMnOpQrStUvWxYzTramite l’account di servizio di screenRIG la cartella si sincronizza solo quando un membro di questo progetto con un’email verificata l’ha condivisa o ne è il proprietario (media_sync_sharer_not_member, uscita 3, nulla viene memorizzato). Ogni esecuzione lo verifica di nuovo, e una cartella che perde un tale condivisore ferma la sincronizzazione nello stato error con i suoi media conservati: condividila di nuovo dall’account Google di un membro, poi esegui media sync update ID --resume. I file di Google Documenti, Fogli e Presentazioni vengono saltati come unsupported_type. Una cartella che l’indirizzo non può aprire è media_sync_source_refused (uscita 5): condividila con l’account di servizio.
media sync list#
Elenca le sincronizzazioni dei media di questo progetto con la loro cartella media, cadenza, stato e stato dell’ultima esecuzione.
media sync listNessun parametro.
screenrig media sync listmedia sync show#
Ispeziona una sincronizzazione e il riepilogo della sua ultima esecuzione.
media sync show <id>| Parametro | Tipo | Obbligatorio | Predefinito | Note |
|---|---|---|---|---|
<id> | string | sì | nessuno | La sincronizzazione (msy_…). |
screenrig media sync show msy_01EXAMPLESYNC000000000data.last_run contiene status (ok, partial o error), added, updated, removed, pending_delete (file rimossi ancora in uso su uno schermo, in attesa nella cartella Removed), skipped_total e skipped, i primi 20 file saltati con il motivo di ogni file (unsupported_type, too_large, storage, subfolder, download_failed, unreadable, in_use); un’esecuzione non riuscita contiene error con un code e un detail che indicano la correzione. data.source aggiunge path per Dropbox e shared_by per Google Drive.
Una sincronizzazione nello stato error va riparata. La sua cartella media è stata eliminata: indirizzala a un’altra con media sync update --folder-id. La sua cartella di origine è stata eliminata o spostata: elimina la sincronizzazione e creane una nuova. Per Google Drive tramite l’account di servizio di screenRIG, la cartella ha perso il suo condivisore verificato (sharer_not_member): condividila di nuovo dall’account Google di un membro del progetto, poi media sync update ID --resume. Un’esecuzione Dropbox fallisce con reconnect_required quando Dropbox smette di accettare la connessione (media sync account connect).
media sync update#
Modifica il nome, la cadenza o la cartella media di una sincronizzazione, oppure mettila in pausa e riprendila.
media sync update <id> [--name NAME] [--every DURATION] [--folder-id ID]
[--pause | --resume] [--expect-rev REVISION]| Parametro | Tipo | Obbligatorio | Predefinito | Note |
|---|---|---|---|---|
<id> | string | sì | nessuno | La sincronizzazione (msy_…). |
--name NAME | string | no | invariato | Rinomina la sincronizzazione. |
--every DURATION | string | no | invariato | Ogni quanto cercare modifiche, da 5 minuti a 24 ore. |
--folder-id ID | string | no | invariato | Popola invece questa cartella media (mfd_…). La prossima esecuzione legge di nuovo l’intera origine e vi colloca ogni file sincronizzato. |
--pause | boolean | no | spento | Interrompi l’esecuzione finché non viene ripresa. Non con --resume. |
--resume | boolean | no | spento | Riprendi l’esecuzione; riavvia anche una sincronizzazione fermata da un errore. Non con --pause. |
--expect-rev REVISION | integer | no | nessuno | Rifiuta la modifica se la sincronizzazione non è a questa revisione (revision_conflict, uscita 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È richiesta almeno una modifica.
media sync run#
Esegui subito una sincronizzazione invece di attendere il suo prossimo orario.
media sync run <id>| Parametro | Tipo | Obbligatorio | Predefinito | Note |
|---|---|---|---|---|
<id> | string | sì | nessuno | La sincronizzazione (msy_…). |
screenrig media sync run msy_01EXAMPLESYNC000000000La sincronizzazione viene eseguita entro circa 30 secondi, e media sync show mostra poi la sua ultima esecuzione. Una sincronizzazione in pausa deve prima essere ripresa.
media sync delete#
Ferma una sincronizzazione; i suoi media e la cartella restano.
media sync delete <id> [--expect-rev REVISION]| Parametro | Tipo | Obbligatorio | Predefinito | Note |
|---|---|---|---|---|
<id> | string | sì | nessuno | La sincronizzazione (msy_…). |
--expect-rev REVISION | integer | no | nessuno | Rifiuta l’eliminazione se la sincronizzazione non è a questa revisione (revision_conflict, uscita 6). |
screenrig media sync delete msy_01EXAMPLESYNC000000000La sincronizzazione dimentica quale file di origine è diventato quale media. I media importati e la cartella media restano, e nulla viene rimosso.