ドキュメント

メディア同期 CLI コマンド

メディアフォルダーを SharePoint、OneDrive、Dropbox、Google Drive と同期。アカウントの追加、同期の作成と実行、結果の確認ができます。

ここにあるコマンドはすべて CLI リファレンスの説明どおりに動作します。グローバルフラグ、JSON 出力、終了コード、リビジョン、再試行。

メディア同期

メディア同期は、メディアフォルダーを SharePoint、OneDrive for work、Dropbox、Google Drive のフォルダーと同じ状態に保ちます。実行のたびに、ソースフォルダー直下の画像(png、jpeg、webp、gif)、動画(mp4、webm)、音声(mp3)をインポートします;サブフォルダーは無視されます。変更されたファイルは同じメディア ID のままバイトが置き換えられるため、それを再生するすべてのプレイリストが更新されます。ソースで削除または移動されたファイルは再生から外れ、そのメディアは削除されるか、スクリーンがまだ表示している間は Removed サブフォルダーに移動され、何も保持しなくなった時点で削除されます。その他のファイルは、理由とともにスキップとして一覧表示されます: Office ファイルや PDF はプレイリストでドキュメントリンクとして表示し、MOV などは MP4 H.264 としてエクスポートしてください。プレイリストは by:folder セレクターでフォルダーを再生します。

すべての同期は、プロジェクトのアカウントを通じて読み取ります。アカウント ID は msa_ で、同期 ID は msy_ で始まります。media sync account add microsoft365 はご自身の Microsoft Entra アプリを保存するか、プロジェクトの Microsoft 接続を指定します;media sync account add dropbox は Dropbox アカウントの所有者向けの 1 回限りのリンクを表示します;media sync account add google-drive は、screenRIG またはご自身のサービスアカウントのアドレスと共有されたフォルダーを読み取ります。アカウントをテストしてから、フォルダーのアドレスで同期を作成すると、すぐに実行対象になります。

クライアントシークレットは --secret-file FILE、Google Drive のキーは --key-file FILE で渡し(標準入力には -)、引数としては決して渡しません。シークレットはサーバー上で封印され、data.secret {set, hint} としてのみ表示されます。読み取りには読み取りアクセスが必要で、変更にはすべて Manage アクセスが必要です。

media sync account add microsoft365#

同期が SharePoint または OneDrive for work のフォルダーを読み取れるように、ご自身の Microsoft Entra アプリ、またはプロジェクトの Microsoft 接続を追加します。

media sync account add microsoft365 --name NAME
    (--tenant-id TENANT --client-id ID --secret-file FILE | --connection-id ID)
パラメータータイプ必須デフォルトメモ
--name NAMEstringはいなし1~80文字。
--tenant-id TENANTstring--connection-id なしなしご自身の組織のディレクトリ(テナント)ID、または contoso.onmicrosoft.com のようなそのプライマリドメイン;common、organizations、consumers は決して指定できません。--client-id と --secret-file とともに指定します。
--client-id IDstring--connection-id なしなしアプリ登録の Application (client) ID(GUID)。
--secret-file FILEstring--connection-id なしなしクライアントシークレットの値をこのファイルから、または標準入力を表す - から読み取ります(引数では渡しません);ファイルには値だけを入れます。
--connection-id IDstring--tenant-id なしなし--tenant-id、--client-id、--secret-file の代わりに、プロジェクトの Microsoft 接続(pcn_…)を通じて、どちらのモードでもサインインします。これらとは併用できません。
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

Microsoft Entra 管理センターで、リダイレクト URI のないシングルテナントのアプリを登録し、クライアントシークレットを追加し(シークレット ID ではなく値をコピー)、Microsoft Graph のアプリケーションのアクセス許可 Sites.Selected(その後、各サイトへの読み取りアクセスをアプリに付与)または Files.Read.All を追加して、管理者の同意を付与します。アプリはこのプロジェクトに属します。次に media sync account test を実行します。

media sync account add dropbox#

Dropbox アカウントを追加し、所有者が Dropbox にサインインした状態で開いて接続するための 1 回限りのリンクを表示します。

media sync account add dropbox --name NAME [--app-key KEY]
パラメータータイプ必須デフォルトメモ
--name NAMEstringはいなし1~80文字。
--app-key KEYstringいいえscreenRIG の Dropbox アプリご自身の Dropbox アプリのアプリキー: 1〜64 文字の英数字で、アプリシークレットは決して指定しません。
screenrig media sync account add dropbox --name "Marketing Dropbox"
screenrig media sync account add dropbox --name "Marketing Dropbox" --app-key YOURAPPKEY

data.authorize_url がリンク、data.authorize_expires_at がその有効期限です。CLI がブラウザーを開くことはありません。リンクは Dropbox アカウントの所有者に送ってください。所有者は読み取り専用のアクセス(files.metadata.read、files.content.read、account_info.read、sharing.read)を許可します。data.state が ready(最初は pending_consent)になるまで media sync account show を実行し、その後 media sync create dropbox を実行します。ご自身の Dropbox アプリでは、これらの権限を有効にし、出力に表示されるリダイレクト URI を登録する必要があります。

media sync account add google-drive#

Google Drive アカウントを追加してすぐに使える状態にし、フォルダーの共有先となるサービスアカウントのアドレスを表示します。

media sync account add google-drive --name NAME [--key-file FILE]
パラメータータイプ必須デフォルトメモ
--name NAMEstringはいなし1~80文字。
--key-file FILEstringいいえscreenRIG のサービスアカウントご自身の Google Cloud サービスアカウントの JSON キーをこのファイルから、または標準入力を表す - から読み取ります(引数では渡しません)。
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 は各フォルダーを共有するアドレスで、閲覧者で十分です。screenRIG のサービスアカウントを通じる場合、フォルダーが同期されるのは、検証済みメールアドレスを持つこのプロジェクトのメンバーがそれを共有したか、所有している場合だけです(そうでない場合は media_sync_sharer_not_member)。ご自身のキーを使う場合は、サービスアカウントと共有されたフォルダーはすべて同期されます。

media sync account list#

このプロジェクトのメディア同期アカウントを、種類、状態、直近のテストとともに一覧表示します;シークレットは返されません。

media sync account list

パラメーターなし。

screenrig media sync account list

media sync account show#

アカウントを確認します。テナントとクライアント ID、状態、マスクされたシークレット、直近のテストを表示します。

media sync account show <id>
パラメータータイプ必須デフォルトメモ
<id>stringはいなしアカウント(msa_…)。
screenrig media sync account show msa_01EXAMPLEACCOUNT0000000

Dropbox アカウントには、接続した人と app_key も表示され、Google Drive アカウントには service_account_email が表示されます。

media sync account update#

アカウントの名前を変更するか、Microsoft アプリのテナント、アプリケーション ID、クライアントシークレットを変更するか、Google Drive アカウント独自のキーを置き換えます。

media sync account update <id> [--name NAME] [--tenant-id TENANT] [--client-id ID]
    [--secret-file FILE | --key-file FILE] [--expect-rev REVISION]
パラメータータイプ必須デフォルトメモ
<id>stringはいなしアカウント(msa_…)。
--name NAMEstringいいえ変更なしアカウントの名前を変更します。
--tenant-id TENANTstringいいえ変更なしテナントのディレクトリ ID またはプライマリドメイン。
--client-id IDstringいいえ変更なしアプリ登録の Application (client) ID。
--secret-file FILEstringいいえ変更なし新しいクライアントシークレットの値をこのファイルから、または標準入力を表す - から読み取ります;保存済みのシークレットが置き換えられます。省略したシークレットは保持されます。
--key-file FILEstringいいえ変更なしGoogle Drive アカウント独自の JSON キーをこのファイルから、または標準入力を表す - から読み取ります;同じサービスアカウントのキーである必要があります。--secret-file とは併用できません。
--expect-rev REVISIONintegerいいえなしアカウントがこのリビジョンでない限り変更を拒否します(revision_conflict、終了コード 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

少なくとも 1 つの変更が必要です。認証情報を変更すると last_test が消去されるので、アカウントをもう一度テストしてください。Entra のクライアントシークレットには有効期限があるため、期限が切れる前にここで置き換えてください。

media sync account connect#

Dropbox アカウントを接続または再接続するための、新しい 1 回限りのリンクを作成します。

media sync account connect <id>
パラメータータイプ必須デフォルトメモ
<id>stringはいなしアカウント(msa_…)。
screenrig media sync account connect msa_01EXAMPLEACCOUNT0000000

data.authorize_url と data.authorize_expires_at にリンクが含まれ、前のリンクは置き換えられます。Dropbox アカウントの所有者に送ってください。その人が完了しなかった場合や、アカウントが reconnect_required(Dropbox が接続を認めなくなった状態)の場合に使います。接続済みのアカウントは、新しい同意が完了するまで接続されたままで、別の Dropbox アカウントがサインインすると、その接続を引き継ぎます。

media sync account test#

アカウントを確認します: Microsoft アプリのサインインと Graph のアクセス許可、または Dropbox や Google Drive アカウントの接続かキー。

media sync account test <id>
パラメータータイプ必須デフォルトメモ
<id>stringはいなしアカウント(msa_…)。
screenrig media sync account test msa_01EXAMPLEACCOUNT0000000

応答は last_test として保存されます。Microsoft アプリでは、credentials(Microsoft がトークンを発行したこと。拒否された場合は、値ではなく ID を指定したシークレットの AADSTS7000215 など、AADSTS コードが含まれます)と permissions(トークンが持つ Graph のアプリケーションのアクセス許可)を報告します。Sites.Selected だけの場合は警告になります: 各サイトには引き続き付与が必要で、共有リンクには Files.Read.All が必要です。このテストは、サイトへの付与やフォルダーは判定しません: 指定したフォルダーを読み取るのは media sync create です。失敗したチェックは、終了コード 0 で data.ok が false になります。

media sync account delete#

どの同期も使っていないアカウントを削除します。

media sync account delete <id> [--expect-rev REVISION]
パラメータータイプ必須デフォルトメモ
<id>stringはいなしアカウント(msa_…)。
--expect-rev REVISIONintegerいいえなしアカウントがこのリビジョンでない限り削除を拒否します(revision_conflict、終了コード 6)。
screenrig media sync account delete msa_01EXAMPLEACCOUNT0000000

同期がアカウントを使っている間は、それらを示して resource_conflict(終了コード 5)が返ります;先にそれらを削除してください。

media sync create sharepoint#

SharePoint または OneDrive for work のフォルダーをメディアフォルダーに同期します。

media sync create sharepoint --account-id ID --url URL [--folder-id ID] [--every DURATION] [--name NAME]
パラメータータイプ必須デフォルトメモ
--account-id IDstringはいなし読み取りに使うアカウント(msa_…)。
--url URLstringはいなしフォルダーの SharePoint アドレス(https://contoso.sharepoint.com/sites/Marketing/Shared%20Documents/Lobby%20Signs など)は、サイトに付与済みであれば Sites.Selected で使え、共有リンク(共有、リンクのコピー)には Files.Read.All が必要です。個人用の OneDrive(onedrive.live.com、1drv.ms)は、組織のアプリでは読み取れません。
--folder-id IDstringいいえソースフォルダーの名前を付けた新しいメディアフォルダーファイルの置き場となるメディアフォルダー(mfd_…)。
--every DURATIONstringいいえ15m変更を確認する頻度、5 分〜24 時間: 15m、1h、6h、または秒数のみ(300〜86400)。
--name NAMEstringいいえソースフォルダーの名前1~80文字。
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"

Microsoft が拒否したフォルダーは media_sync_source_refused(終了コード 5)になり、付与すべき権限が示されます;何も保存されません。

media sync create dropbox#

Dropbox のフォルダーをメディアフォルダーに同期します。

media sync create dropbox --account-id ID --url URL|PATH [--folder-id ID] [--every DURATION] [--name NAME]
パラメータータイプ必須デフォルトメモ
--account-id IDstringはいなし読み取りに使う接続済みの Dropbox アカウント(msa_…)。
--url URLstringはいなしフォルダーの Dropbox アドレス(https://www.dropbox.com/home/...)、アカウントが自分の Dropbox に追加した共有フォルダーのリンク、または / で始まるパス。チームスペースのフォルダーは、チームのルートから読み取られます。
--folder-id IDstringいいえソースフォルダーの名前を付けた新しいメディアフォルダーファイルの置き場となるメディアフォルダー(mfd_…)。
--every DURATIONstringいいえ15m変更を確認する頻度、5 分〜24 時間: 15m、1h、6h、または秒数のみ(300〜86400)。
--name NAMEstringいいえソースフォルダーの名前1~80文字。
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"

実行のたびに、Dropbox が保存したフォルダー内の位置から続けて、変更された分だけを読み取ります。アカウントが開けないフォルダーは media_sync_source_refused、Dropbox が認めなくなった接続は dropbox_reconnect_required(media sync account connect)になり、どちらも終了コード 5 で、何も保存されません。

media sync create google-drive#

アカウントのサービスアカウントと共有された Google Drive のフォルダーをメディアフォルダーに同期します。

media sync create google-drive --account-id ID --url URL|ID [--folder-id ID] [--every DURATION] [--name NAME]
パラメータータイプ必須デフォルトメモ
--account-id IDstringはいなし読み取りに使う Google Drive アカウント(msa_…)。
--url URLstringはいなしフォルダーのアドレス(https://drive.google.com/drive/folders/ID)またはその ID。先にフォルダーをアカウントの service_account_email と共有してください;閲覧者で十分です。
--folder-id IDstringいいえソースフォルダーの名前を付けた新しいメディアフォルダーファイルの置き場となるメディアフォルダー(mfd_…)。
--every DURATIONstringいいえ15m変更を確認する頻度、5 分〜24 時間: 15m、1h、6h、または秒数のみ(300〜86400)。
--name NAMEstringいいえソースフォルダーの名前1~80文字。
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

screenRIG のサービスアカウントを通じる場合、フォルダーが同期されるのは、検証済みメールアドレスを持つこのプロジェクトのメンバーがそれを共有したか、所有している場合だけです(media_sync_sharer_not_member、終了コード 3、何も保存されません)。実行のたびにこれが再確認され、そのような共有者を失ったフォルダーは、メディアを保持したまま同期を状態 error で停止させます;メンバーの Google アカウントからもう一度共有してから、media sync update ID --resume を実行してください。Google ドキュメント、スプレッドシート、スライドのファイルは unsupported_type としてスキップされます。アドレスが開けないフォルダーは media_sync_source_refused(終了コード 5)になります;サービスアカウントと共有してください。

media sync list#

このプロジェクトのメディア同期を、メディアフォルダー、頻度、状態、直近の実行のステータスとともに一覧表示します。

media sync list

パラメーターなし。

screenrig media sync list

media sync show#

同期とその直近の実行の概要を確認します。

media sync show <id>
パラメータータイプ必須デフォルトメモ
<id>stringはいなし同期(msy_…)。
screenrig media sync show msy_01EXAMPLESYNC000000000

data.last_run には、status(ok、partial、error のいずれか)、added、updated、removed、pending_delete(スクリーンがまだ保持している削除済みファイルで、Removed フォルダーで待機中)、skipped_total、そしてスキップされた最初の 20 ファイルを各ファイルの理由(unsupported_type, too_large, storage, subfolder, download_failed, unreadable, in_use)とともに示す skipped が含まれます。失敗した実行には、修正方法を示す code と detail を伴う error が含まれます。data.source には、Dropbox では path、Google Drive では shared_by が加わります。

状態が error の同期は修復が必要です。メディアフォルダーが削除された場合は、media sync update --folder-id で別のフォルダーを指定します。ソースフォルダーが削除または移動された場合は、同期を削除して新しく作成します。screenRIG のサービスアカウント経由の Google Drive では、フォルダーが検証済みの共有者を失った場合(sharer_not_member)、プロジェクトメンバーの Google アカウントからもう一度共有してから、media sync update ID --resume を実行します。Dropbox が接続を認めなくなると(media sync account connect)、Dropbox の実行は reconnect_required で失敗します。

media sync update#

同期の名前、頻度、メディアフォルダーを変更するか、一時停止と再開を行います。

media sync update <id> [--name NAME] [--every DURATION] [--folder-id ID]
    [--pause | --resume] [--expect-rev REVISION]
パラメータータイプ必須デフォルトメモ
<id>stringはいなし同期(msy_…)。
--name NAMEstringいいえ変更なし同期の名前を変更します。
--every DURATIONstringいいえ変更なし変更を確認する頻度、5 分〜24 時間。
--folder-id IDstringいいえ変更なし代わりにこのメディアフォルダー(mfd_…)に入れます。次の実行ではソース全体をもう一度読み取り、同期されたすべてのファイルをそこに配置します。
--pausebooleanいいえオフ再開するまで実行を停止します。--resume とは併用できません。
--resumebooleanいいえオフ再び実行します;エラーで停止した同期も再開します。--pause とは併用できません。
--expect-rev REVISIONintegerいいえなし同期がこのリビジョンでない限り変更を拒否します(revision_conflict、終了コード 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

変更を少なくとも 1 つ指定してください。

media sync run#

次の予定時刻を待たず、同期を今すぐ実行します。

media sync run <id>
パラメータータイプ必須デフォルトメモ
<id>stringはいなし同期(msy_…)。
screenrig media sync run msy_01EXAMPLESYNC000000000

同期は約 30 秒以内に実行され、その後 media sync show に直近の実行が表示されます。一時停止中の同期は、先に再開する必要があります。

media sync delete#

同期を停止します;メディアとフォルダーは残ります。

media sync delete <id> [--expect-rev REVISION]
パラメータータイプ必須デフォルトメモ
<id>stringはいなし同期(msy_…)。
--expect-rev REVISIONintegerいいえなし同期がこのリビジョンでない限り削除を拒否します(revision_conflict、終了コード 6)。
screenrig media sync delete msy_01EXAMPLESYNC000000000

同期は、どのソースファイルがどのメディアになったかを忘れます。インポート済みのメディアとメディアフォルダーは残り、何も削除されません。

ほかのコマンドグループ