Synchronisation de médias
Une synchronisation de médias garde un dossier de médias à jour avec un dossier SharePoint, OneDrive Entreprise, Dropbox ou Google Drive. Chaque exécution importe les images (png, jpeg, webp, gif), les vidéos (mp4, webm) et l’audio (mp3) situés directement dans le dossier source ; les sous-dossiers sont ignorés. Un fichier modifié remplace ses octets sous le même ID média, de sorte que chaque liste de lecture qui le joue se met à jour, et un fichier supprimé ou déplacé hors de la source cesse d’être lu : son média est supprimé ou, tant qu’un écran l’affiche encore, déplacé dans un sous-dossier Removed puis supprimé quand plus rien ne l’utilise. Les autres fichiers sont listés comme ignorés avec la raison : affichez un fichier Office ou un PDF avec un lien de document dans une liste de lecture, et exportez les MOV et semblables en MP4 H.264. Une liste de lecture joue le dossier avec un sélecteur by:folder.
Chaque synchronisation lit par un compte du projet. Un ID de compte commence par msa_ et un ID de synchronisation par msy_. media sync account add microsoft365 stocke votre propre application Microsoft Entra, ou désigne une connexion Microsoft du projet ; media sync account add dropbox affiche un lien à usage unique pour la personne titulaire du compte Dropbox ; media sync account add google-drive lit les dossiers partagés avec l’adresse d’un compte de service, celle de screenRIG ou la vôtre. Testez le compte, puis créez une synchronisation à partir de l’adresse d’un dossier : elle est à exécuter immédiatement.
Donnez un secret client avec --secret-file FILE et une clé Google Drive avec --key-file FILE, ou - pour l’entrée standard, jamais comme argument. Les secrets sont scellés sur le serveur et renvoyés uniquement sous la forme data.secret {set, hint}. La lecture exige l’accès Read, et tout changement exige l’accès Manage.
media sync account add microsoft365#
Ajoutez votre propre application Microsoft Entra, ou une connexion Microsoft du projet, pour qu’une synchronisation puisse lire un dossier SharePoint ou OneDrive Entreprise.
media sync account add microsoft365 --name NAME
(--tenant-id TENANT --client-id ID --secret-file FILE | --connection-id ID)| Paramètre | Type | Requis | Par défaut | Notes |
|---|---|---|---|---|
--name NAME | string | oui | aucun | 1 à 80 caractères. |
--tenant-id TENANT | string | sans --connection-id | aucun | L’ID de répertoire (locataire) de votre organisation, ou son domaine principal, comme contoso.onmicrosoft.com ; jamais common, organizations ni consumers. En même temps que --client-id et --secret-file. |
--client-id ID | string | sans --connection-id | aucun | L’ID d’application (client) de l’inscription d’application, un GUID. |
--secret-file FILE | string | sans --connection-id | aucun | Lit la Value du secret client depuis ce fichier, ou - pour l’entrée standard (jamais un argument) ; le fichier ne contient que la Value. |
--connection-id ID | string | sans --tenant-id | aucun | Se connecte par une connexion Microsoft (pcn_…) du projet, dans l’un ou l’autre mode, à la place de --tenant-id, --client-id et --secret-file. Pas avec eux. |
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_01EXAMPLECONNECTION0000Dans le Microsoft Entra admin center, inscrivez une application à locataire unique sans URI de redirection, ajoutez un secret client (copiez sa Value, pas son Secret ID), ajoutez l’autorisation d’application Microsoft Graph Sites.Selected (puis accordez à l’application l’accès en lecture à chaque site) ou Files.Read.All, et accordez le consentement de l’administrateur. L’application appartient à ce projet. Exécutez ensuite media sync account test.
media sync account add dropbox#
Ajoutez un compte Dropbox et affichez le lien à usage unique que son titulaire ouvre, connecté à Dropbox, pour le connecter.
media sync account add dropbox --name NAME [--app-key KEY]| Paramètre | Type | Requis | Par défaut | Notes |
|---|---|---|---|---|
--name NAME | string | oui | aucun | 1 à 80 caractères. |
--app-key KEY | string | non | l’application Dropbox de screenRIG | La clé d’application de votre propre application Dropbox : de 1 à 64 lettres et chiffres, jamais son secret d’application. |
screenrig media sync account add dropbox --name "Marketing Dropbox"
screenrig media sync account add dropbox --name "Marketing Dropbox" --app-key YOURAPPKEYdata.authorize_url est le lien et data.authorize_expires_at son expiration. Le CLI n’ouvre jamais de navigateur : envoyez le lien à la personne titulaire du compte Dropbox, qui autorise un accès en lecture seule (files.metadata.read, files.content.read, account_info.read, sharing.read). Exécutez media sync account show jusqu’à ce que data.state soit ready (il vaut d’abord pending_consent), puis media sync create dropbox. Votre propre application Dropbox doit avoir ces autorisations activées et l’URI de redirection qu’affiche la sortie.
media sync account add google-drive#
Ajoutez un compte Google Drive, prêt immédiatement, et affichez l’adresse du compte de service avec laquelle les dossiers sont partagés.
media sync account add google-drive --name NAME [--key-file FILE]| Paramètre | Type | Requis | Par défaut | Notes |
|---|---|---|---|---|
--name NAME | string | oui | aucun | 1 à 80 caractères. |
--key-file FILE | string | non | le compte de service de screenRIG | Lit la clé JSON de votre propre compte de service Google Cloud depuis ce fichier, ou - pour l’entrée standard (jamais un argument). |
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 est l’adresse avec laquelle partager chaque dossier ; le rôle Lecteur suffit. Avec le compte de service de screenRIG, un dossier ne se synchronise que si un membre de ce projet dont le courriel est vérifié l’a partagé ou en est propriétaire (sinon media_sync_sharer_not_member). Avec votre propre clé, tout dossier partagé avec le compte de service se synchronise.
media sync account list#
Liste les comptes de synchronisation de médias de ce projet avec leur type, leur état et leur dernier test ; aucun secret n’est renvoyé.
media sync account listAucun paramètre.
screenrig media sync account listmedia sync account show#
Consultez un compte : son locataire et son ID client, son état, son secret masqué et son dernier test.
media sync account show <id>| Paramètre | Type | Requis | Par défaut | Notes |
|---|---|---|---|---|
<id> | string | oui | aucun | Le compte (msa_…). |
screenrig media sync account show msa_01EXAMPLEACCOUNT0000000Un compte Dropbox affiche aussi qui l’a connecté et son app_key ; un compte Google Drive affiche son service_account_email.
media sync account update#
Renommez un compte, modifiez le locataire, l’ID d’application ou le secret client d’une application Microsoft, ou remplacez la clé propre d’un compte Google Drive.
media sync account update <id> [--name NAME] [--tenant-id TENANT] [--client-id ID]
[--secret-file FILE | --key-file FILE] [--expect-rev REVISION]| Paramètre | Type | Requis | Par défaut | Notes |
|---|---|---|---|---|
<id> | string | oui | aucun | Le compte (msa_…). |
--name NAME | string | non | inchangé | Renomme le compte. |
--tenant-id TENANT | string | non | inchangé | L’ID de répertoire du locataire, ou son domaine principal. |
--client-id ID | string | non | inchangé | L’ID d’application (client) de l’inscription d’application. |
--secret-file FILE | string | non | inchangé | Lit la Value du nouveau secret client depuis ce fichier, ou - pour l’entrée standard ; elle remplace le secret stocké. Un secret omis est conservé. |
--key-file FILE | string | non | inchangé | Lit la clé JSON propre d’un compte Google Drive depuis ce fichier, ou - pour l’entrée standard ; elle doit appartenir au même compte de service. Pas avec --secret-file. |
--expect-rev REVISION | integer | non | aucun | Refuse le changement sauf si le compte est à cette révision (revision_conflict, sortie 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 2Au moins un changement est requis. Un changement d’identifiants efface last_test : testez de nouveau le compte. Les secrets client Entra expirent : remplacez donc le secret ici avant son expiration.
media sync account connect#
Créez un nouveau lien à usage unique pour connecter, ou reconnecter, un compte Dropbox.
media sync account connect <id>| Paramètre | Type | Requis | Par défaut | Notes |
|---|---|---|---|---|
<id> | string | oui | aucun | Le compte (msa_…). |
screenrig media sync account connect msa_01EXAMPLEACCOUNT0000000data.authorize_url et data.authorize_expires_at portent le lien, qui remplace le précédent. Envoyez-le à la personne titulaire du compte Dropbox. Utilisez-le quand la personne n’a pas terminé ou que le compte est reconnect_required (Dropbox n’honore plus la connexion). Un compte connecté reste connecté jusqu’à ce que le nouveau consentement soit terminé, et un autre compte Dropbox qui se connecte reprend la connexion.
media sync account test#
Vérifiez un compte : l’ouverture de session et les autorisations Graph d’une application Microsoft, ou la connexion ou la clé d’un compte Dropbox ou Google Drive.
media sync account test <id>| Paramètre | Type | Requis | Par défaut | Notes |
|---|---|---|---|---|
<id> | string | oui | aucun | Le compte (msa_…). |
screenrig media sync account test msa_01EXAMPLEACCOUNT0000000La réponse est stockée sous last_test. Pour une application Microsoft, le test rapporte credentials (Microsoft a émis un jeton ; un refus porte son code AADSTS, comme AADSTS7000215 pour un secret qui est l’ID plutôt que la Value) et permissions (les autorisations d’application Graph que le jeton porte). Sites.Selected seule est un avertissement : chaque site a encore besoin de son autorisation, et un lien de partage exige Files.Read.All. Le test ne juge ni l’autorisation d’un site ni un dossier : media sync create lit le dossier que vous nommez. Une vérification échouée donne data.ok à false avec la sortie 0.
media sync account delete#
Supprimez un compte qu’aucune synchronisation n’utilise.
media sync account delete <id> [--expect-rev REVISION]| Paramètre | Type | Requis | Par défaut | Notes |
|---|---|---|---|---|
<id> | string | oui | aucun | Le compte (msa_…). |
--expect-rev REVISION | integer | non | aucun | Refuse la suppression sauf si le compte est à cette révision (revision_conflict, sortie 6). |
screenrig media sync account delete msa_01EXAMPLEACCOUNT0000000Tant que des synchronisations utilisent le compte, la réponse est resource_conflict (sortie 5), en les nommant : supprimez-les d’abord.
media sync create dropbox#
Synchronisez un dossier Dropbox dans un dossier de médias.
media sync create dropbox --account-id ID --url URL|PATH [--folder-id ID] [--every DURATION] [--name NAME]| Paramètre | Type | Requis | Par défaut | Notes |
|---|---|---|---|---|
--account-id ID | string | oui | aucun | Le compte Dropbox connecté par lequel lire (msa_…). |
--url URL | string | oui | aucun | L’adresse Dropbox du dossier (https://www.dropbox.com/home/...), un lien de dossier partagé que le compte a ajouté à son Dropbox, ou un chemin qui commence par /. Un dossier d’espace d’équipe est lu à partir de la racine de l’équipe. |
--folder-id ID | string | non | un nouveau dossier de médias nommé d’après le dossier source | Le dossier de médias (mfd_…) où les fichiers sont placés. |
--every DURATION | string | non | 15m | Fréquence de recherche des changements, de 5 minutes à 24 heures : 15m, 1h, 6h, ou de simples secondes (de 300 à 86400). |
--name NAME | string | non | le nom du dossier source | 1 à 80 caractères. |
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"Chaque exécution reprend à partir de la position enregistrée par Dropbox dans le dossier et ne lit que ce qui a changé. Un dossier que le compte ne peut pas ouvrir donne media_sync_source_refused, et une connexion que Dropbox n’honore plus donne dropbox_reconnect_required (media sync account connect) : les deux donnent la sortie 5, rien n’est stocké.
media sync create google-drive#
Synchronisez un dossier Google Drive, partagé avec le compte de service d’un compte, dans un dossier de médias.
media sync create google-drive --account-id ID --url URL|ID [--folder-id ID] [--every DURATION] [--name NAME]| Paramètre | Type | Requis | Par défaut | Notes |
|---|---|---|---|---|
--account-id ID | string | oui | aucun | Le compte Google Drive par lequel lire (msa_…). |
--url URL | string | oui | aucun | L’adresse du dossier (https://drive.google.com/drive/folders/ID), ou son ID. Partagez d’abord le dossier avec le service_account_email du compte ; le rôle Lecteur suffit. |
--folder-id ID | string | non | un nouveau dossier de médias nommé d’après le dossier source | Le dossier de médias (mfd_…) où les fichiers sont placés. |
--every DURATION | string | non | 15m | Fréquence de recherche des changements, de 5 minutes à 24 heures : 15m, 1h, 6h, ou de simples secondes (de 300 à 86400). |
--name NAME | string | non | le nom du dossier source | 1 à 80 caractères. |
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 1AbCdEfGhIjKlMnOpQrStUvWxYzAvec le compte de service de screenRIG, le dossier ne se synchronise que si un membre de ce projet dont le courriel est vérifié l’a partagé ou en est propriétaire (media_sync_sharer_not_member, sortie 3, rien n’est stocké). Chaque exécution le vérifie de nouveau, et un dossier qui perd une telle personne arrête la synchronisation à l’état error, ses médias étant conservés : partagez-le de nouveau depuis le compte Google d’un membre, puis exécutez media sync update ID --resume. Les fichiers Google Docs, Sheets et Slides sont ignorés comme unsupported_type. Un dossier que l’adresse ne peut pas ouvrir donne media_sync_source_refused (sortie 5) : partagez-le avec le compte de service.
media sync list#
Liste les synchronisations de médias de ce projet avec leur dossier de médias, leur cadence, leur état et le statut de leur dernière exécution.
media sync listAucun paramètre.
screenrig media sync listmedia sync show#
Consultez une synchronisation et le résumé de sa dernière exécution.
media sync show <id>| Paramètre | Type | Requis | Par défaut | Notes |
|---|---|---|---|---|
<id> | string | oui | aucun | La synchronisation (msy_…). |
screenrig media sync show msy_01EXAMPLESYNC000000000data.last_run porte status (ok, partial ou error), added, updated, removed, pending_delete (fichiers supprimés qu’un écran garde encore, en attente dans le dossier Removed), skipped_total et skipped, les 20 premiers fichiers ignorés avec la raison de chaque fichier (unsupported_type, too_large, storage, subfolder, download_failed, unreadable, in_use) ; une exécution échouée porte error avec un code et un detail qui indiquent la correction. data.source ajoute path pour Dropbox et shared_by pour Google Drive.
Une synchronisation à l’état error a besoin d’une réparation. Son dossier de médias a été supprimé : pointez-la vers un autre avec media sync update --folder-id. Son dossier source a été supprimé ou déplacé : supprimez la synchronisation et créez-en une. Pour Google Drive par le compte de service de screenRIG, le dossier a perdu la personne vérifiée qui le partageait (sharer_not_member) : partagez-le de nouveau depuis le compte Google d’un membre du projet, puis media sync update ID --resume. Une exécution Dropbox échoue avec reconnect_required quand Dropbox cesse d’honorer la connexion (media sync account connect).
media sync update#
Modifiez le nom, la cadence ou le dossier de médias d’une synchronisation, ou mettez-la en pause et reprenez-la.
media sync update <id> [--name NAME] [--every DURATION] [--folder-id ID]
[--pause | --resume] [--expect-rev REVISION]| Paramètre | Type | Requis | Par défaut | Notes |
|---|---|---|---|---|
<id> | string | oui | aucun | La synchronisation (msy_…). |
--name NAME | string | non | inchangé | Renomme la synchronisation. |
--every DURATION | string | non | inchangé | Fréquence de recherche des changements, de 5 minutes à 24 heures. |
--folder-id ID | string | non | inchangé | Remplit ce dossier de médias (mfd_…) à la place. La prochaine exécution relit toute la source et y place chaque fichier synchronisé. |
--pause | boolean | non | désactivé | Arrête l’exécution jusqu’à la reprise. Pas avec --resume. |
--resume | boolean | non | désactivé | Reprend l’exécution ; relance aussi une synchronisation qu’une erreur a arrêtée. Pas avec --pause. |
--expect-rev REVISION | integer | non | aucun | Refuse le changement sauf si la synchronisation est à cette révision (revision_conflict, sortie 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 3Au moins un changement est requis.
media sync run#
Exécutez une synchronisation maintenant plutôt qu’à sa prochaine heure.
media sync run <id>| Paramètre | Type | Requis | Par défaut | Notes |
|---|---|---|---|---|
<id> | string | oui | aucun | La synchronisation (msy_…). |
screenrig media sync run msy_01EXAMPLESYNC000000000La synchronisation s’exécute en 30 secondes environ, et media sync show affiche alors sa dernière exécution. Une synchronisation en pause doit d’abord être reprise.
media sync delete#
Arrêtez une synchronisation ; ses médias et son dossier restent.
media sync delete <id> [--expect-rev REVISION]| Paramètre | Type | Requis | Par défaut | Notes |
|---|---|---|---|---|
<id> | string | oui | aucun | La synchronisation (msy_…). |
--expect-rev REVISION | integer | non | aucun | Refuse la suppression sauf si la synchronisation est à cette révision (revision_conflict, sortie 6). |
screenrig media sync delete msy_01EXAMPLESYNC000000000La synchronisation oublie quel fichier source est devenu quel média. Les médias importés et le dossier de médias restent, et rien n’est supprimé.