ドキュメント

メディア CLI コマンド

画像、動画、音声のアップロード、置き換え、バージョン管理、タグ付け、移動、削除。フォルダー、動的セレクター、利用可否ルールを備えています。

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

メディア

メディアオブジェクトは、静止画、クリップ、またはMP3音声トラックの1つで、ちょうど1つのレンディションとして保存されます。デバイスごとのフォールバックはないので、media upload が保存したものを、すべてのスクリーンがデコードできる必要があります。

メディアフォルダーはライブラリを整理します。フォルダーIDはmfd_で始まり、ファイルIDはmed_で始まります。アップロードはフォルダー名--folderがない限りライブラリのルートに配置され、media moveとmedia folder updateでツリーを再構成し、プレイリストのby:folderセレクターはサブフォルダーではなく1つのフォルダー内のファイルを直接再生します。組織は、すべてのプロジェクトを合わせて最大1000フォルダーを10階層までネストでき、名前は1~100文字です。

メディアはファイルが変わってもIDを保持します。media replaceはファイルをその場で置き換えるので、それを使用するすべてのプレイリストとスケジュールが新しいファイルを再生し、media versionsはそのアイテムがこれまでに持っていたすべてのファイルを一覧表示します。

media upload#

ローカルファイルを配信バイトに変換し、アップロードしてオブジェクトの準備完了を待ちます。

media upload <file> [--content-type TYPE] [--tag TAG] [--folder ID] [--no-wait] [--poll-ms MS]
             [--timeout MS] [--no-transcode] [--codec h264|hevc] [--max-fps N]
             [--max-edge PIXELS] [--webp-quality 1-100] [--no-progress]
             [--preset signage-1080p30|signage-4k30] [--no-audio]
パラメータータイプ必須デフォルトメモ
<file>パスはいなし元の静止画、クリップ、またはオーディオトラック。ファイル名はリスト、プレイリスト、再生レポートで人間が識別する名前になるため、表示内容に合わせて命名してください。
--content-type TYPEstringいいえファイル拡張子の種類拡張子から種類が分からないファイルについて、ソースのメディアタイプを指定します。ファイルのバイトと一致しないタイプは、変換の前に拒否されます(usage_error、終了コード 2)。
--tag TAGstringいいえなし1〜32文字の英数字、^[A-Za-z0-9]{1,32}$ に一致。ハイフンは不可。タグは media list --tag TAG を信頼できるファイル名からIDへのマップにします。
--folder IDstringいいえライブラリのルート既存の mfd_ メディアフォルダーで、作業開始前にチェックされます。ファイルは準備完了時にそこに置かれ、その後の移動はなく、data.folder_id が報告します。--no-wait でも使えます。アップローダーは自分のフォルダーの 1 つを指定する必要があります。アップローダー を参照してください。
--no-waitbooleanいいえオフコミットが受理され次第返します。オブジェクトはまだ準備できていません。operations waitで終了してください。
--poll-ms MSintegerいいえ1000待機中の操作ポーリングの間隔。
--timeout MSintegerいいえ120000待機の期限です。各基底リクエストの制限にもなります。
--no-transcodebooleanいいえオフソースのバイトを変更せずにアップロードします。ffmpeg、ffprobe、cwebp は実行されません。ファイルはすでに PNG、JPEG、WebP、GIF、MP4、WebM、MP3 のいずれかである必要があり、ロスレス WebP は依然として拒否されます。--codec、--max-fps、--max-edge、--webp-quality、--preset、--no-audio とは併用できません。
--codecstringいいえh264h264 または hevc。すべての再生スクリーンがネイティブプレーヤーの場合のみ hevc を使用してください。
--max-fps Nnumberいいえ30一定の出力フレームレート。すべてのビデオはソースレートに関係なく正確にこのレートでエンコードされるため、連続するクリップでレートが変わりません。0 より大きく最大 240 まで。
--max-edge PIXELSintegerいいえ3840各エッジに適用される境界は16から3840までです。アスペクト比は保持され、小さいソースは拡大されません。
--webp-qualityintegerいいえ90WebP エンコードの静止画品質、1から100まで。
--presetstringいいえ未設定signage-1080p30 または signage-4k30。画面の向きに対応した動画サイズと一定の 30 fps。--max-edge と --max-fps はプリセットを縮小できますが、拡大はできません。動画のみ対応、--no-transcode との併用はできません。
--no-audiobooleanいいえオフビデオ配信から音声トラックを省略します。ビデオのみで、--no-transcodeとの併用はできません。
--no-progressbooleanいいえオフ進行状況を出力しません。進行状況は常に標準エラー出力に送られ、標準出力は唯一の結果エンベロープ専用です。
screenrig media upload ./lobby-welcome-loop.mp4 --tag LobbyLoop

ビデオはMP4になります:H.264ハイプロファイルはサイズとレートに合う最も低いレベル(4.2、5.1、5.2)で、--codec hevcを付けるとH.265メインプロファイルのレベル5.1または5.2になります。yuv420pでRec. 709タグ付き、1フレームは最大3840×2160ピクセルです。HDRソースはRec. 709にトーンマップされます。ソースに音声がある場合はAAC 192 kbit/s、48 kHz、ステレオです。

静止画は品質90でロスのある WebP になり、元にアルファがあれば保持します。アニメーション元は無限ループします。サイズ制限内の WebP は再エンコードされずそのまま通過します。

オーディオはプレイリストのサウンドトラック用に MP3 になります。MP3 ソースは変換せずアップロード。WAV、AAC、M4A、OGG、FLAC は 128 kb/s MP3 に変換(libmp3lame を含む ffmpeg ビルドが必要)。トラックは1秒から3時間。playlist init はオーディオ入力をページではなくサウンドトラックトラックに変換。ready オブジェクトは audio メディアオブジェクトで、再生時間を含みます。ページに配置できず、プレイリストの audio サウンドトラックで名前を付けてください。

準備済みオブジェクトIDは data.media_id です。同じ値が data.id と data.operation.result.media_id です。そのIDがプレイリストセレクターで使用されます。

同じバイト列、ファイル名、タグの準備完了メディアがすでにあると、再アップロードせずにそれが返されます(data.reused は true)。そのため、中断したアップロードを再実行するとそのメディア ID が返ります。data.timing は段階ごとのミリ秒を報告します:prepare_ms(変換とハッシュ)、declare_ms、transfer_ms、commit_ms、processing_ms(準備完了まで。精度は --poll-ms に依存し、--no-wait では出力されません)。

video.mp4のような情報量の少ないファイル名は、封筒にgeneric_filenameの警告を追加します。アップロードは成功し、CLIはファイル名を変更しません。コマンド実行前に名前を選んでください。

変換は ffmpeg と ffprobe を PATH から、または SCREENRIG_FFMPEG と SCREENRIG_FFPROBE の絶対パスから実行します。静止画は ffmpeg の libwebp エンコーダーを優先し、PATH または SCREENRIG_CWEBP で cwebp にフォールバックします。セッションの最初のアップロード前に doctor を実行してください。

--preset signage-1080p30 は長辺を1920、短辺を1080、フレームレートを一定の30fpsに制限します。signage-4k30 は長辺を3840、短辺を2160、フレームレートを一定の30fpsに制限します。どちらも横向き、縦向き、正方形のコンテンツに対応します。--no-audio は無音クリップの場合、音声エンコードを省略します。これらのオプションは動画にのみ適用されます。

screenrig media upload ./lobby.mov --preset signage-1080p30 --no-audio
screenrig media upload ./menu.png --folder mfd_01EXAMPLEFOLDER000000000

media upload-batch --folder は、アップロードした各項目を同じ方法でフォルダーに入れます。

画像または動画は、幅・高さとも最大 16383 ピクセル、1 フレームあたり 67,108,864 ピクセル(8192 × 8192)まで使えます。これを超えるものは invalid_request で拒否されます。既定の変換では各辺が 3840 ピクセル以内に収まるため、9216 × 2160 や 12000 × 540 のような超横長のマスターは --no-transcode でアップロードしてください。動画 1 本のアップロードは、プロジェクトのプランで最大の動画アップロードサイズ(project capabilities が media_video_bytes として報告します。価格設定を参照)までです。それより大きい動画は読み込む前に拒否されるため、先にクリップを短くしてください。CLI は動画を固定品質でエンコードするため、長い動画はエンコード後も上限を超えることがあり、その場合は拒否されます。--no-transcode を使う場合は、ファイル自体が上限内である必要があります。

中断したストレージへの転送は、アップロード URL が有効な間、最大 4 回試行されます。それでも失敗すると、エラーにアップロードの operation_id が示され、ストレージを占有しないようアップロードは取り消されます。--idempotency-key を付けた場合は再実行用に保持されます。同じコマンドをもう一度実行してください。

Proposeアクセス時、またはプロジェクトがエージェント変更のレビューを要求する場合、新しいアップロードはタグ、フォルダー、またはallセレクターが再生される前に人のレビューを待ちます。詳細はレビューを参照してください。

media upload-batch#

マニフェストから多数のローカルファイルをアップロードし、状態ファイルから再開します。

media upload-batch <manifest.json> [--state FILE] [--concurrency N] [--tag TAG] [--folder ID]
                   [--poll-ms MS] [--timeout MS] [--no-transcode] [--codec h264|hevc]
                   [--max-fps N] [--max-edge PIXELS] [--webp-quality 1-100] [--no-progress]
                   [--preset signage-1080p30|signage-4k30] [--no-audio]
パラメータータイプ必須デフォルトメモ
<manifest.json>パスはいなし{ "items": [ { "path": "./a.png", "tag"?: "Lobby", "content_type"?: "image/png" } ] } は 1〜1000 件のアイテムを扱います。パスはマニフェストファイルからの相対パスです。
--state FILEパスいいえ設定ファイル横のプライベートファイル各ソースファイルのローカルバイトの SHA-256 をキーとした 0600 の JSON ファイルです。既定ではプロジェクト、API アドレス、マニフェストごとに 1 ファイルです。すでに media_id で存在する項目は resumed として報告されます。状態ファイルはプロジェクトごとに分けてください。
--concurrency Nintegerいいえ4並列アップロード数、1~8。
--no-transcodebooleanいいえオフmedia upload と同様に、ソースのバイトを変更せずにアップロードします。--codec、--max-fps、--max-edge、--webp-quality、--preset、--no-audio とは併用できません。
--poll-ms MSintegerいいえ1000待機中の操作ポーリングの間隔。
--timeout MSintegerいいえ120000待機の期限です。各基底リクエストの制限にもなります。
--codecstringいいえh264h264 または hevc。すべての再生スクリーンがネイティブプレーヤーの場合のみ hevc を使用してください。
--max-fps Nnumberいいえ30一定の出力フレームレート。すべてのビデオはソースレートに関係なく正確にこのレートでエンコードされるため、連続するクリップでレートが変わりません。0 より大きく最大 240 まで。
--max-edge PIXELSintegerいいえ3840各エッジに適用される境界は16から3840までです。アスペクト比は保持され、小さいソースは拡大されません。
--webp-qualityintegerいいえ90WebP エンコードの静止画品質、1から100まで。
--presetstringいいえ未設定signage-1080p30 または signage-4k30。画面の向きに対応した動画サイズと一定の 30 fps。--max-edge と --max-fps はプリセットを縮小できますが、拡大はできません。動画のみ対応、--no-transcode との併用はできません。
--no-audiobooleanいいえオフビデオ配信から音声トラックを省略します。ビデオのみで、--no-transcodeとの併用はできません。
--tag TAGstringいいえなしアイテムが自身のタグを省略した場合に適用されます。
--folder IDstringいいえライブラリのルート既存の mfd_ メディアフォルダーで、作業開始前にチェックされます。各項目は準備完了時にそこに置かれ、data.folder_id が報告します。アップローダーは自分のフォルダーの 1 つを指定する必要があります。
--no-progressbooleanいいえオフ進行状況を出力しません。
screenrig media upload-batch ./images.json --state ./upload-state.json

エンベロープはマニフェスト順にdata.items[]を運び、それぞれにpath、source_filename、sha256、outcome(acceptedまたはresumed)、media_idがあります。data.failed[]は着地しなかったアイテムを運び、それぞれにpathとproblemがあります。data.accepted、data.resumed、data.attempts、data.rate_limited、data.wait_ms、data.transfer_msは実行内容を集計します。レート制限またはサーバーエラーが返る間、各アイテムは試行の間に待機を挟みながら最大 8 回試行されます。

失敗がある場合、終了コードは最後に失敗したアイテムに従います:レート制限は7、サーバーエラーは9、使用方法のエラーは2、それ以外は8です。同じマニフェストで同じコマンドをもう一度実行すると、着地しなかったものだけがアップロードされます。

media replace#

メディアのファイルをその場で置き換えます。ID、プレイリスト、スケジュールはそのまま使えます。

media replace <id> <file> [--expect-rev REVISION] [--note TEXT] [--content-type TYPE] [--no-wait]
              [--poll-ms MS] [--timeout MS] [--no-transcode] [--codec h264|hevc] [--max-fps N]
              [--max-edge PIXELS] [--webp-quality 1-100] [--no-progress]
              [--preset signage-1080p30|signage-4k30] [--no-audio]
パラメータータイプ必須デフォルトメモ
<id>stringはいなしmed_オブジェクトID
<file>パスはいなし新しい静止画、クリップ、または音声トラック。メディアと同じ種類(画像は画像、動画は動画、音声は音声)である必要があります。作業を始める前に確認されます(usage_error、終了コード2)。
--expect-rev REVISIONstringいいえなし任意のリビジョン前提条件。提供された古い値はrevision_conflictとなり、宣言済みのアップロードはキャンセルされます。media show IDを読み取ってからコマンドを再実行してください。
--note TEXTstringいいえなし新しいバージョンとともに保存され、レビューする人に表示されます。最大280文字。
--content-type TYPEstringいいえアップロードされたバイトから検出CLIに検出させるのではなく、自分でメディアタイプを宣言してください。
--no-waitbooleanいいえオフ置換が受理され次第返します。新しいファイルはまだ使用中ではありません。operations waitで終了してください。
--poll-ms MSintegerいいえ1000待機中の操作ポーリングの間隔。
--timeout MSintegerいいえ120000待機の期限です。各基底リクエストの制限にもなります。
--no-transcodebooleanいいえオフソースのバイトを変更せずにアップロードします。ffmpeg、ffprobe、cwebp は実行されません。ファイルはすでに PNG、JPEG、WebP、GIF、MP4、WebM、MP3 のいずれかである必要があり、ロスレス WebP は依然として拒否されます。--codec、--max-fps、--max-edge、--webp-quality、--preset、--no-audio とは併用できません。
--codecstringいいえh264h264 または hevc。すべての再生スクリーンがネイティブプレーヤーの場合のみ hevc を使用してください。
--max-fps Nnumberいいえ30一定の出力フレームレート。すべてのビデオはソースレートに関係なく正確にこのレートでエンコードされるため、連続するクリップでレートが変わりません。0 より大きく最大 240 まで。
--max-edge PIXELSintegerいいえ3840各エッジに適用される境界は16から3840までです。アスペクト比は保持され、小さいソースは拡大されません。
--webp-qualityintegerいいえ90WebP エンコードの静止画品質、1から100まで。
--presetstringいいえ未設定signage-1080p30 または signage-4k30。画面の向きに対応した動画サイズと一定の 30 fps。--max-edge と --max-fps はプリセットを縮小できますが、拡大はできません。動画のみ対応、--no-transcode との併用はできません。
--no-audiobooleanいいえオフビデオ配信から音声トラックを省略します。ビデオのみで、--no-transcodeとの併用はできません。
--no-progressbooleanいいえオフ進行状況を出力しません。進行状況は常に標準エラー出力に送られ、標準出力は唯一の結果エンベロープ専用です。
screenrig media replace med_01EXAMPLEIMAGE0000000000 ./menu-v2.png
screenrig media replace med_01EXAMPLEVIDEO0000000000 ./intro.mp4 --expect-rev 3 --note "Spring cut"

メディアはIDとタグとフォルダーを保ちます。そのため、それを指すすべてのプレイリストとスケジュールは、次のマニフェストで新しいファイルを再生し、タグ、フォルダー、all のセレクターもそれを拾います。何も再スケジュールされません。コマンドは media upload と同じ手順(変換、プランの動画バイト上限、サイズの上限、プランのストレージ上限、署名付き転送)を実行し、新しいメディアを追加する代わりに置き換えます。--tag や --folder は受け付けません。

デフォルトでは、コマンドは処理の完了を待ちます。data.media_idとdata.idはメディアID、data.versionはmedia versionsにおける新しいファイルの番号、data.revisionはメディアの新しいリビジョンです。data.warnings、data.operation、data.upload、data.transcodeとタイミングはmedia uploadと同様に報告され、操作IDはエンベロープに含まれます。--no-waitを指定すると、data.operationは受理された操作となり、data.versionとdata.warningsは含まれません。

アスペクト比の変更は許可されます。エンベロープにはaspect_ratio_changed警告が含まれ、data.warnings[].playlistsはそのメディアを使用するプレイリストを示すので、表示を確認してください。現在のファイルとバイトが同じファイルはresource_conflict(終了コード13)で拒否されます。

以前のファイルはすべてメディアの履歴に残り、そのバージョンを削除するまで保存済みバイトに含まれます。media versionsを参照してください。

Propose アクセスの場合、またはプロジェクトがエージェントの変更にレビューを要求する場合、置換は人を待ち、コマンドは成功します(終了コード0)。data.statusはpending_reviewで、data.review_idがレビューを示し、警告pending_reviewがそのURLを示し、data.nextはscreenrig reviews show IDです。人が承認するまでメディアは現在のファイルを再生し続けるので、待機中であることを伝え、書き込みを繰り返さないでください。同じメディアのより新しい置換は、待機中のものを置き換えます。レビューを参照してください。

media versions#

メディアがこれまでに持っていたファイルを、使用中のファイルを先頭にして一覧表示します。

media versions <id> [--limit N] [--cursor CURSOR]
パラメータータイプ必須デフォルトメモ
<id>stringはいなしmed_オブジェクトID
--limit Nintegerいいえすべてのページこの数のバージョンを1ページ分読み取ります(1〜100)。
--cursor CURSORstringいいえなし前のページのdata.next_cursorに続くページを読み取ります。
screenrig media versions med_01EXAMPLEIMAGE0000000000

data.itemsには、メディアがこれまでに持っていたファイルごとに1件のエントリーがあります:number, current, filename, source_filename, content_type, sha256, bytes, width, height, duration_ms, codecs、source(upload、replace、sync、またはrestore)、note、by(種類はperson、agent、client、またはsyncで、IDと名前を含みます)、restored_from、およびcreated_at。使用中のファイルが最初(current: true)で、その後は新しい順です。バージョン1は最初のアップロードで、置換、復元、メディア同期の変更のたびに次の番号が加わります。

--limitも--cursorも指定しない場合はすべてのページを読み取り、data.next_cursorはnullになります。どちらかを指定すると1ページだけ読み取ります。data.next_cursorが文字列である間は、--cursorをその値にしてコマンドを再実行してください。読み取り専用アクセスで足ります。過去のバージョンのバイトは、media version deleteが削除するまで保存され、プロジェクトの保存済みバイトに含まれます。保持するバージョン数に上限はなく、プランの無料ストレージを超えて保存されたバイトは、ほかのストレージと同じく課金されます。

media restore#

過去のバージョンを新しいバージョンとして使用中に戻します。

media restore <id> --number N [--expect-rev REVISION] [--note TEXT]
パラメータータイプ必須デフォルトメモ
<id>stringはいなしmed_オブジェクトID
--number Nintegerはいなし元に戻すバージョン番号で、media versionsが一覧表示するものです。
--expect-rev REVISIONstringいいえなし任意のリビジョン前提条件。提供された古い値はrevision_conflictとなります。media show IDを読み取ってからコマンドを再実行してください。
--note TEXTstringいいえなし新しいバージョンとともに保存され、レビューする人に表示されます。最大280文字。
screenrig media restore med_01EXAMPLEIMAGE0000000000 --number 2
screenrig media restore med_01EXAMPLEIMAGE0000000000 --number 2 --expect-rev 5 --note "Back to the winter menu"

メディアはIDを保持して新しいリビジョンに移り、それを指定しているすべてのプレイリストとスケジュールがそのファイルを再び再生します。コピー元のバージョンは履歴に残ってバイトを共有し、新しいバージョンは他と同様に保存済みバイトに含まれます。data.mediaはメディアで、data.warningsは、復元したファイルのアスペクト比が異なる場合に、そのメディアを使用するプレイリストを示すaspect_ratio_changedを含みます。

使用中のバージョンは復元できず(resource_conflict、終了コード5)、不明なバージョンはnot_found(終了コード4)です。Propose アクセスの場合、またはプロジェクトがエージェントの変更にレビューを要求する場合、復元は人を待ち、コマンドは成功します(終了コード0)。data.statusはpending_reviewでdata.reviewを伴い、警告pending_reviewがそのURLを示し、data.nextはscreenrig reviews show IDです。人が承認するまでメディアは現在のファイルを再生し続けるので、書き込みを繰り返さないでください。

media version delete#

過去のバージョンとその保存済みバイトを削除します。

media version delete <id> --number N
パラメータータイプ必須デフォルトメモ
<id>stringはいなしmed_オブジェクトID
--number Nintegerはいなし削除するバージョン番号で、media versionsが一覧表示するものです。
screenrig media version delete med_01EXAMPLEIMAGE0000000000 --number 2

バージョンのレコードは削除され、そのバイトは直ちにプロジェクトの保存済みバイトから外れます。保存されているオブジェクトは、他のバージョンまたは使用中のファイルが同じファイルを保持していない限り、24時間後に削除されます。削除したバージョンは復元できません。使用中のバージョンは削除できず、メディアの置換がレビュー待ちの間はどのバージョンも削除できません。どちらもresource_conflict(終了コード5)で、どのバージョンが使用中かはmedia versions IDで確認できます。不明なバージョンはnot_found(終了コード4)です。削除には Manage アクセスが必要で、Propose の認証情報はinsufficient_accessで拒否され、削除がレビュー用に提案されることはありません。

media show#

1件のメディアオブジェクトとその現在のリビジョンを読み込みます。

media show <id>
パラメータータイプ必須デフォルトメモ
<id>stringはいなしmed_オブジェクトID
screenrig media show med_01EXAMPLEIMAGE0000000000

media download#

検査用に保存済みのレンディションをディスクに書き込みます。バイトは絶対に印刷しません。

media download <id> [--output FILE]
パラメータータイプ必須デフォルトメモ
<id>stringはいなしmed_オブジェクトID
--output FILEパスいいえ現在のディレクトリ内 ./<id>.<ext>ファイルパスでありディレクトリではありません。既存のファイルは上書きされます。拡張子はコンテンツタイプに従います。
screenrig media download med_01EXAMPLEIMAGE0000000000 --output ./lobby.webp

回答は media_id、path、bytes、sha256、content_type、primitive、filename、任意の source_filename、そして width / height を報告します。ピクセルは含みません。画像をスクリーンに出す前に確認するのに使います。

media list#

タグ、プリミティブ、フォルダーで絞り込み可能なメディアオブジェクト一覧

media list [--tag TAG] [--primitive image|video|audio] [--folder ID|root] [--library]
パラメータータイプ必須デフォルトメモ
--tag TAGstringいいえなし^[A-Za-z0-9]{1,32}$に一致します。このフィルターがある場合、タグなしのオブジェクトは省略されます。
--primitivestringいいえすべてimage、video、またはaudio。静止画、クリップ、またはサウンドトラックのトラックにリストを制限します。
--folder ID|rootstringいいえすべてのフォルダーこの mfd_ フォルダー直下のファイルのみ、サブフォルダー内は含みません。root はライブラリルートのファイルのみです。APIがフィルターを適用します。
--librarybooleanいいえオフ代わりに組織のライブラリのメディアを読み取り専用で一覧します。各行には library: true が付きます。その ID はプレイリストのページで使い、変更はライブラリプロジェクトでのみ行ってください。
screenrig media list --tag LobbyLoop --primitive video
screenrig media list --folder mfd_01EXAMPLEFOLDER000000000
screenrig media list --library

各行には folder_id が含まれますが、ライブラリのルートにはありません。

media selector-preview#

動的メディアセレクターが現在一致する準備完了ファイルを、プレイリストを公開したり Player を進めたりせずにプレビューします。

media selector-preview <selector.json> --primitive image|video [--rect WxH] [--timezone IANA]
パラメータータイプ必須デフォルトメモ
<selector.json>パスはいなしall、tag、folder のいずれかのメディアセレクターを 1 つ含む JSON ファイル。標準入力の場合は -。スクリーントークンを含むタグはプレビューできません。
--primitivestringはいなしimage または video:セレクターが一致させるファイルの種類。
--rect WxHstringfit: "aspect" とともになしプリミティブの矩形のサイズ(1080x1920 など)。どちらの数値も 0 より大きい値です。
--timezone IANAstringいいえUTCファイルの利用可能期間ルールを解釈するタイムゾーン(America/New_York など)。
screenrig media selector-preview selector.json --primitive video
screenrig media selector-preview selector.json --primitive image --timezone America/New_York

セレクターのキー(order、batch_size、one_at_a_time、weights、fit)は、タグフィルターと再生バッチおよび重み付きローテーションとアスペクト調整で説明されています。

応答には、matched_count、ファイル名順のcandidates(media_id、filename、tags、width、height)、正規化されたselector、そしてexcludedに除外されたファイルとそのreasonが含まれます。aspect_mismatchはfit: "aspect"の場合、outside_windowは利用可能期間のルールが現在成り立たないファイルの場合です。order: "weighted"では、各候補にweightとshare_percentが付き、cycleはすべての項目がちょうど重みの回数だけ再生されるまでの再生回数です。一致が 1024 件を超えるとinvalid_requestになります。読み取りアクセスで十分です。プレビューは認証済みプロジェクトを読み取るだけで、カーソルを進めたりマニフェストを変更したりせず、その後のカタログ変更は各 Player の次のループ境界で反映されます。

media update#

1つのオブジェクトのタグを置き換えまたはクリアします。利用可能期間のルールはmedia availabilityで設定します。

media update <id> (--tag TAG | --tags TAG1,TAG2 | --clear-tag) [--expect-rev REVISION]
パラメータータイプ必須デフォルトメモ
<id>stringはいなしmed_オブジェクトID
--tag TAGstring3つのうちの1つなし置換タグ、1~32文字の英数字。このタグがオブジェクトの唯一のタグになります。
--tags TAG1,TAG2string3つのうちの1つなし置換するタグのセット:カンマ区切りの重複しない 1~32 個のタグ。各タグは 1~32 文字の英数字です。
--clear-tagboolean3つのうちの1つオフすべてのタグを削除し、オブジェクトにタグを付けない状態にします。
--expect-rev REVISIONstringいいえなしオプションのリビジョン前提条件。現在のリソースを書き込む場合は省略します。提供された古い値はrevision_conflictです:再取得、再適用、再試行。
screenrig media update med_01EXAMPLEIMAGE0000000000 --tag LobbyLoop
screenrig media update med_01EXAMPLEIMAGE0000000000 --tags Summer,Drinks

Proposeアクセス時、またはプロジェクトがエージェント変更のレビューを要求する場合、承認済みメディアの再タグ付けはokに警告media_review_pendingを返します:スクリーンは承認済みタグで再生を続け、人が変更を承認するまで拒否はタグを元に戻します。レビューは数秒以内にreviews listに表示されます。承認済みプレイリストやレビュー待ちプレイリストを変更しない再タグ付けは自動で適用されます。詳細はレビューを参照してください。

media availability#

動的セレクターが 1 つのファイルを選べる時期を設定またはクリアします。

media availability <id> (--file FILE | --clear) [--expect-rev REVISION]
パラメータータイプ必須デフォルトメモ
<id>stringはいなしmed_オブジェクトID
--file FILEパス2つのうちの1つなしJSON 形式の利用可能期間ルール。標準入力の場合は -。
--clearboolean2つのうちの1つオフルールを削除します。ファイルは常に利用可能になります。
--expect-rev REVISIONstringいいえ現在のリビジョンオプションのリビジョン前提条件。省略すると、コマンドはまずメディアの現在のリビジョンを読み取ります。提供された古い値はrevision_conflictです:再取得、再適用、再試行。
screenrig media availability med_01EXAMPLEIMAGE0000000000 --file rule.json

ルールの要素と動作はメディアの利用可能期間を参照してください。人のレビュー待ちのファイルはmedia_pending_reviewで拒否されます。先にそのレビューを判断してください。

media delete#

メディアオブジェクトを1つ削除します。

media delete <id> [--expect-rev REVISION]
パラメータータイプ必須デフォルトメモ
<id>stringはいなしmed_オブジェクトID
--expect-rev REVISIONstringいいえなしオプションのリビジョン前提条件。現在のリソースを書き込む場合は省略します。提供された古い値はrevision_conflictです:再取得、再適用、再試行。
screenrig media delete med_01EXAMPLEIMAGE0000000000

media move#

メディアファイルとフォルダーをフォルダーに移動、またはライブラリのルートに戻します。

media move <id>... (--folder ID | --root)
パラメータータイプ必須デフォルトメモ
<id>...stringはいなし1つ以上のmed_ファイルIDとmfd_フォルダーID、合計最大1000。
--folder IDstring2つのうちの1つなし宛先の mfd_ フォルダーです。
--rootboolean2つのうちの1つオフライブラリのルートに移動。
screenrig media move med_01EXAMPLEIMAGE0000000000 med_01EXAMPLEVIDEO0000000000 --folder mfd_01EXAMPLEFOLDER000000000
screenrig media move mfd_01EXAMPLEFOLDER000000000 --root

移動はすべてか無かのリクエストです。フォルダーは自身またはその中のフォルダーに移動できず、フォルダーは最大10階層まで入れ子になります。すでに目的地にあるアイテムはそのままです。data.mediaとdata.foldersは移動した数をカウントします。

ファイルの移動は、古いフォルダーと新しいフォルダーの by:folder セレクターが各スクリーンの次のセレクター解決から再生する内容を変えます。フォルダーの移動はフォルダー自身のファイルを変えません。Propose access 下またはプロジェクトがエージェント変更にレビューを要求する場合、移動したファイルは人のレビュー(reviews list)を待ち、承認されたプレイリストは承認時のフォルダーで再生を続けます。レビューを参照してください。

media folder list#

プロジェクトのメディアフォルダー一覧

media folder list [--library]
パラメータータイプ必須デフォルトメモ
--librarybooleanいいえオフ代わりに組織のライブラリのフォルダーを読み取り専用で一覧します。各行には library: true が付き、by:folder セレクターでフォルダーを指定するとそのファイルを再生できます。
screenrig media folder list
screenrig media folder list --library

プロジェクトのすべてのフォルダーを最大1000件、名前順で返します:data.items、id、name、parent_id(ライブラリのルートはnull)、およびrevision。parent_idからツリーを構築します。ファイルのフォルダーはfolder_idでmedia listとmedia showにあります。ライブラリのルートにはありません。

media folder show#

1件のメディアフォルダーを読み込みます。

media folder show <id>
パラメータータイプ必須デフォルトメモ
<id>stringはいなしmfd_フォルダーID
screenrig media folder show mfd_01EXAMPLEFOLDER000000000

エンベロープはフォルダーのname、parent_id、revisionを運びます。

media folder create#

ライブラリのルートまたは他のフォルダー内にメディアフォルダーを作成。

media folder create --name NAME [--parent ID]
パラメータータイプ必須デフォルトメモ
--name NAMEstringはいなし1~100文字、トリム済み。名前は繰り返し可。
--parent IDstringいいえライブラリのルート作成先のmfd_フォルダー
screenrig media folder create --name Menus
screenrig media folder create --name Lunch --parent mfd_01EXAMPLEFOLDER000000000

組織は、すべてのプロジェクトを合わせて最大1000個のフォルダーを最大10階層まで保持します。プレイリストは by:folder セレクターでフォルダー内のファイルを再生します。

media folder update#

メディアフォルダーの名前を変更するか、中身すべてを別のフォルダーに移動します。

media folder update <id> [--name NAME] [--parent ID | --root] [--expect-rev REVISION]
パラメータータイプ必須デフォルトメモ
<id>stringはいなしmfd_フォルダーID
--name NAMEstring--name、--parent、--root のいずれか少なくとも1つ変更なし新しい名前、1~100文字。
--parent IDstring--name、--parent、--root のいずれか少なくとも1つ変更なしフォルダーとその中身すべてをこの mfd_ フォルダーに移動します。--root ではできません。
--rootboolean--name、--parent、--root のいずれか少なくとも1つオフフォルダーをライブラリのルートに移動します。--parent ではできません。
--expect-rev REVISIONstringいいえなしオプションのリビジョン前提条件。現在のリソースを書き込む場合は省略します。提供された古い値はrevision_conflictです:再取得、再適用、再試行。
screenrig media folder update mfd_01EXAMPLEFOLDER000000000 --name Archive
screenrig media folder update mfd_01EXAMPLEFOLDER000000000 --root

フォルダーは自身またはその内部のフォルダーに移動できず、移動はすべてのフォルダーが10階層以内に収まる必要があります。現在の値を送信するのは無操作です。

media folder delete#

メディアフォルダーを削除します。中のファイルとフォルダーは1階層上に移動します。

media folder delete <id> [--expect-rev REVISION]
パラメータータイプ必須デフォルトメモ
<id>stringはいなしmfd_フォルダーID
--expect-rev REVISIONstringいいえなしオプションのリビジョン前提条件。現在のリソースを書き込む場合は省略します。提供された古い値はrevision_conflictです:再取得、再適用、再試行。
screenrig media folder delete mfd_01EXAMPLEFOLDER000000000

フォルダーのみを削除します。中のファイルとフォルダーは親に移動し、親がなければライブラリのルートに移動します。by:folderセレクターで指定すると何も一致しなくなるため、先にプレイリストの指定先を変更してください。

タグフィルターと再生バッチ

メディアは最大32個のユニークタグを持ち、それぞれ1~32文字の英数字です。セット全体をscreenrig media update med_ID --tags Summer,Drinksで置き換えます。--tag Summerは1つのタグで置き換え、--clear-tagはすべてのタグをクリアします。media list --tag Summerはセット内のどこかのメンバーシップに一致します。タグは大文字小文字を区別し、承認には使用されません。

動的セレクターは1つの tag または tags フィルターオブジェクトを使えます:

{
  "by": "tag",
  "tags": { "all": ["Summer", "Drinks"], "any": ["Lobby", "Patio"], "none": ["Expired"] },
  "order": "random",
  "one_at_a_time": false,
  "batch_size": 3
}

all はすべての指定タグが必須、any はいずれか 1 つが必須、none は指定タグを除外します。グループ同士は AND で組み合わされ、指定しないグループは条件を課しません。少なくとも 1 つの空でないグループを指定してください。各グループは最大 32 個のユニークなタグを受け付けます。tag と tags は同時に使えません。none のみのフィルターは、除外タグ以外のその種別のすべての準備済みメディアを選択します。画像セレクターは画像を、動画セレクターは動画を選択します。

folder セレクターの { "by": "folder", "folder_id": "mfd_…" } は、1 つのメディアフォルダー直下にある準備完了のファイルを再生し、サブフォルダーのファイルは再生しません。ID は media folder list で確認できます。all や tag と同じ order、one_at_a_time、batch_size を指定でき、フォルダーを削除するとそのファイルは 1 つ上の階層に移り、セレクターは空になります。

候補プールには、セレクターごとに準備完了のメディアが最大 1,024 件含まれ、ループ全体のスナップショットを通じたメディア参照は 1,024 件です。書き込みでは、all、tag、folder の各セレクターをそれらの参照 32 件として、ids セレクターをその長さとして数えます。一致数がそれを超えるとエラーが返されるので、フィルターを絞り込んでください。batch_size は、1 回のページ表示あたり 1〜1,024 アイテムという別の上限です。media_end ページでは、one_at_a_time: false が次のバッチを順に再生し、batch_size を省略すると残りのパスを再生します。one_at_a_time: true は 1 回の表示で 1 アイテムを再生し、バッチサイズの省略または batch_size: 1 のみを許可します。継続時間、アプリケーション、audio_end の各ページでは、すべての all、tag、folder、および複数 ID の ids セレクターに one_at_a_time: true が必要で、dwell_ms は拒否されます。media_end の画像にも dwell_ms が必要です。そのページでは動画をループできません。

Player はプレイリストの開始時と各ループ境界で、すべての動的メディアプリミティブを 1 回のリクエストで解決します。メンバーシップはループ中に固定されます。アップロード、削除、タグ変更、利用可能期間の境界はマニフェストを再生成しません。次の更新時に削除または新たに除外されたアイテムは保留キューから外れ、新しいマッチは現在のパス終了時に参加します。最終バッチは要求数より少ない場合があり、次のパスから補充しません。ファイル名順はファイル名、次にメディア ID でソートします。ランダム順は完全なパスごとに一度シャッフルし、残りの順序をループ更新間で保持します。重み付き順は、後述の重みに従います。カーソルは画面、プレイリスト、ページ、プリミティブにローカルで、再起動をまたいで持続し、フィルター、順序、バッチポリシー変更時にリセットされます。オフライン再生は最後に成功したスナップショットを使用します。空のマッチはプリミティブと結果としての空ページをスキップします。

上記のセレクターオブジェクトをselector.jsonとして保存し、公開前に現在の候補カタログを検査してください:

screenrig media selector-preview selector.json --primitive video

プレビューはmatched_count、ファイル名順のcandidates(メディアIDとタグ付き)、正規化されたselectorポリシーを返します。ランダム順ではプールとシャッフルポリシーを表示しますが、プレーヤーのシャッフルを選択したり、カーソルを進めたり、再生許可を作成したり、マニフェストを変更したりしません。重み付き順では、各候補のweightとshare_percent、およびcycleを返します。--rect WxH(API ではrect: {width, height})はスロットのサイズで、fit: "aspect"では必須です。除外された一致はexcludedに理由aspect_mismatch付きで一覧表示されます。画像セレクターは--primitive imageを渡します。APIはPOST /api/selectors/previewで{ "primitive": "video", "selector": ... }と連携します。認証済みのプロジェクトと再生と同じマッチングルールを使用します。プレビュー後のカタログ変更は再生の次のループ境界で解決されます。

静的バンドルのエクスポートは動的マッチを正確な ID として固定し、random セレクターを一度だけシャッフルします。1つずつまたは完全なパスの再生を保持します。batch_size と one_at_a_time: false を使う制限付きランタイムシーケンスは、エクスポート前にそのフィールドを削除するか明示的な ID を選択する必要があります。これにより静的バンドルでランタイムバッチカーソルが失われるのを防ぎます。

重み付きローテーションとアスペクト調整

order: "weighted"は、1 つのスロットのクリエイティブを重みに応じてローテーションし、各スポンサーが再生回数のシェアを維持できるようにします。weightsは、メディア ID(med_...)またはtag:NAMEを 1 から 1,000 の整数に対応付け、キーは最大 64 個です。byがall、tag、folderのいずれの場合にも使えます:

{
  "by": "all",
  "order": "weighted",
  "one_at_a_time": true,
  "weights": { "tag:Acme": 50, "tag:Globex": 30, "tag:Initech": 20 },
  "fit": "aspect"
}

重み 50、30、20 は、毎サイクル、10 回の再生のうちちょうど 5 回、3 回、2 回になり、再起動はサイクルの途中から再開します。アイテムの重みは、そのメディア ID のキーがあればその値、なければ所持するタグのうちアルファベット順で最初のtag:NAMEキーの値で、そのキーを持つ選択内のアイテムで均等に分割されます。そのため、クリエイティブの数にかかわらずスポンサーのシェアは保たれます。どちらもない場合、アイテムは重み 1 の単独グループとして扱われます。1 サイクルは最大 4,096 回の再生で、正確な比率がそれより長いサイクルを必要とする場合にのみ、シェアはそこに丸められます。

重み付き順は 1 回の表示で 1 アイテムを再生するため、one_at_a_time: trueまたはbatch_size: 1を設定します。weightsは重み付き順で必須で、重み付き順でのみ使えます。それ以外では書き込みがinvalid_requestを返します。重み付きローテーションは Plus の機能です。この機能がない場合、項目にまだない重みを設定する書き込みには feature_not_in_plan が返されます。均等なローテーション、保存済みの重みの維持、重みの解除は引き続き使えます。すべての Player が重み付き順を再生します。ホスト機能selector.weightedを宣言しない Player にはrandomが送られ、マニフェストの診断にはselector_order_downgradedが含まれます。

動的セレクターのfit: "aspect"は、幅と高さの比がスロットの矩形(ビデオウォールやディスプレイフレームを含む)の比の 5% 以内にあるファイルだけを残します。セレクターの解決時に読み取られます。縦向きのスロットで横向きのファイルが再生されることはありません。Player の変更は不要です。

screenrig media selector-preview は、重み付きセレクターのすべてのファイルの想定シェアを表示し、fit: aspect を付けると除外されるファイルも一覧表示します。ダッシュボードのページエディターもインスペクターで同じ表を表示します。静的バンドルのエクスポートは、重み付きセレクターをファイル名順の正確な ID として固定し、重みは保持されません。

タグセレクターでの画面トークン

タグセレクターのtagと、そのtagsフィルターの各エントリには、{screen.field.NAME}または{screen.id}(scr_プレフィックスを除いた画面の識別子で、タグになります)を使えます。トークンは最大128文字のテンプレート内で英数字と並べて置けます。サーバーは、各画面のマニフェストとセレクターのスナップショットを作成するときにその画面のトークンを埋めるため、1 つのプレイリストで各画面専用のメディアを再生できます。メディアにLobbyまたはGarageのタグを付け、screenrig screen update scr_ID --field zone=Lobbyで各画面のフィールドを設定し、スロットに次のセレクターを指定します。

{ "by": "tag", "tag": "{screen.field.zone}", "one_at_a_time": true }

埋められた値はタグの規則(1~32 文字の英数字)に従います。フィールドがない画面、または値がタグでない画面は何も選択せず、そのスロットからはファイルを再生せず、マニフェストの診断にscreen_fact_missingまたはscreen_fact_invalidが含まれます。フィールドを変更すると、その画面のマニフェストが再発行されます。トークンを含むセレクターはプレビューできず(media selector-previewには具体的なタグが必要です)、playlist exportで固定することもできません。

iframe アドレスとアプリケーションの params のスクリーントークン

iframe の src と fallback_src には、http または https アドレスのパス、クエリ、フラグメントにスクリーントークンを含めることができ、application プリミティブの任意の params にも含められます。トークンは、小文字の英字、数字、アンダースコアからなる1〜32文字の名前を最大16個まで(ticket と policy は予約済み)、値は512文字までです。サーバーがスクリーンごとに値を埋め込みます:

トークン値
{screen.id}scr_ プレフィックスを除いたスクリーンの識別子。
{screen.name}スクリーンの名前。
{screen.timezone}スクリーンの有効な IANA タイムゾーン。オーバーライド、なければ Player が報告するゾーン、なければ UTC。
{screen.field.NAME}スクリーンのフィールド NAME。小文字の英字、数字、アンダースコアからなる1〜32文字。
{screen.location.lat}, {screen.location.lon}10進数の度で表した位置情報。
{screen.location.name}, {screen.location.address}地名と住所。
{
  "primitive": "iframe",
  "src": "https://maps.example.com/directory?kiosk={screen.field.kiosk_id}&level={screen.field.level}",
  "title": "Directory"
}

書き込みは、テンプレートを波括弧を含めてそのまま保存します。各スクリーンのマニフェストは、URL 内の位置に合わせてすべての値をパーセントエンコードした、そのスクリーン専用のアドレスを持ちます。B 2&3 の kiosk_id は B%202%263 になります。スキーム、認証情報、ホスト、ポート、または YouTube リンク、Google や Microsoft のドキュメントリンク、BI ビューアドレス内のトークンは、src(または fallback_src)で invalid_request です。テンプレート化された src では、公開時にフレーム表示のチェックを行わず、プレビューにはテンプレートがそのまま表示されます。

値が欠けている(未設定のフィールド、位置情報なし)、または値を埋め込んだアドレスが2048文字を超える、もしくはパスセグメントが . または .. になるスクリーンには、そのような iframe やアプリケーションは設定されず、そのマニフェストの診断に screen_fact_missing または screen_fact_invalid が含まれます。空になったページは削除されます。そのようなスクリーンに反映されるすべての書き込み(プレイリストの書き込み、screen assign、screen update、フリートの割り当て、承認されたレビュー)は、トークン、最初の20件のスクリーン ID、および総数を示す screen_fact_missing 警告を返します。フィールドまたは位置情報を変更すると、影響を受けるスクリーンのマニフェストが再発行されます。

アプリケーションでは、埋め込まれたパラメーター(パーセントエンコード後で合計 4096文字まで)が、すべての Player で context.params に届きます(SDK)。Player ウェブアプリと、それを実行する Player(Samsung Tizen、BrightSign、LG webOS、Vega)は、各パラメーターをパーセントエンコードして起動アドレスの ticket の後ろにも付加するため、アプリケーションは location.search を読み取れます。テンプレートの url フィールドには iframe 全体の src を指定でき、その値自体がスクリーントークンを含んでもよく、マニフェストの作成時に埋め込まれます。タグセレクターは {screen.id} と {screen.field.NAME} を同様に使います(上記)。カードは独自の {screen.…} トークンを保持します。

同じプレイリスト内で同じリリースを固定するアプリケーションプリミティブは、同じ params を持ちます。

メディアの利用可能期間

screenrig media availability med_ID --file rule.jsonは、動的セレクター(all、tag、folder)がファイルを選べる時期を設定します。--clearはルールを削除し、--expect-rev Nはメディアのリビジョンを保護します。API はPATCH /api/media/{id}/availabilityで、If-Matchと{ "availability": {...} | null }を使います。ルールの設定には Manage アクセスが必要で、Propose 資格情報にはinsufficient_accessが返ります。--expect-revを省略すると、コマンドはまずメディアの現在のリビジョンを読み取ります。人のレビュー待ちのファイルはmedia_pending_reviewで拒否されます。

ルールはスケジュールの時刻文法で、各画面のタイムゾーンで解釈され、少なくとも 1 つの要素を含みます。fromとuntil(ローカル日時YYYY-MM-DDTHH:MM、untilは終了を含まない)、windows(毎週の{days, start, end})、monthly({day}または{nth, weekday}、それぞれに任意のstartとend)、dates({date, start, end})、except(発生を取り除く日付で、日をまたぐ部分を含む)があり、windowsは最大 16 件、monthlyは最大 16 件、datesは最大 100 件、exceptの日付は最大 100 件です。dataとinteractionは使えません。連休中のスポンサーのクリエイティブを、期間内の平日の夜だけ利用可能にする例です。

{
  "from": "2026-11-27T00:00",
  "until": "2026-11-30T23:59",
  "windows": [{ "days": ["mon", "tue", "wed", "thu", "fri"], "start": "17:00", "end": "22:00" }]
}

ルールを読むのはセレクターだけです。明示的なidまたはidsセレクターは無視し、カードのメディア参照、サウンドトラックの音声、広告クリエイティブも対象外です。ファイルは、各画面の次のプレイリストループで選択から外れたり戻ったりし、境界から約 1 分以内に反映されます。プレイリストやマニフェストのリビジョンは変わらず、オフラインの Player は再接続するまで最後の選択を保持します。media selector-previewに--timezone ZONE(既定は UTC)を付けると、そのタイムゾーンでルールを読み、その時点でルールの範囲外にあるファイルを理由outside_window付きでexcludedに一覧表示します。

ほかのコマンドグループ