ドキュメント

フリートリンク CLI コマンド

デバイス管理ツール用のフリートリンクを作成し、他のサイネージプラットフォームのメディア、プレイリスト、スケジュール、スクリーンを screenRIG に移行。

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

移行

migrate は、以前のサイネージプラットフォームのメディア、プレイリスト、レイアウト、スケジュール、スクリーンをプロジェクトに移行します。お使いのマシン上の CLI で実行されます。プラットフォームのキーは NAME=VALUE 行の --credentials FILE から読み取られ、そのプラットフォームにのみ送られ、保存、表示、ログ記録、screenRIG への送信は一切行われません。screenRIG が受け取るのは、通常のメディア、プレイリスト、フリートリンク、キャンペーン、スクリーンの書き込みだけです。migrate vendors は読み取れるプラットフォームを一覧表示し、フォールバックの files は、他のあらゆるプラットフォームのメディアのフォルダーまたは .zip を読み取ります。

手順を順に実行します:migrate vendors(プラットフォームが受け付けるもの)、migrate scan(アカウントを読み取り、移行できるものとできないものを報告。screenRIG へのサインインは不要)、migrate apply --dry-run(計画)、migrate apply(Manage アクセスが必要)、続いてディスプレイごとに migrate pair。

--dir DIR は移行ディレクトリで、デフォルトは ./screenrig-migration-VENDOR、モード 0700 で作成されます。scan.json(スキャンとそのレポート)、map.json(元の各項目がどのオブジェクトになったか。この API URL、プロジェクト、ベンダー、ソースアカウントに紐づきます)、staging/(進行中のダウンロード)を保持します。apply と pair は作業ディレクトリ内の唯一の screenrig-migration-* ディレクトリを使うか、--dir を指定します。1 つのディレクトリで同時に実行できるのは 1 つだけです。

問題コード終了意味
migration_dir_mismatch2このディレクトリは別のプロジェクト、API URL、ベンダー、またはソースアカウント用に作成されたものです。別の --dir を使ってください。
vendor_refused3プラットフォームがキーを拒否しました。読み取り専用キーを作成し(方法は migrate vendors VENDOR に表示されます)、--credentials ファイルを修正して、同じコマンドをもう一度実行してください。
vendor_not_found4プラットフォームが 404 を返しました。通常は --url が誤っています。
vendor_rate_limited7プラットフォームがキーをレート制限しています。後でもう一度コマンドを実行してください。
vendor_file_gone8メディアファイルのアドレスが期限切れか保護されています。migrate scan を再実行すると更新され、それでも失敗するファイルは --files で渡します。
vendor_file_stalled8メディアのダウンロードが応答しなくなりました。apply を再実行してください。
vendor_bad_response9プラットフォームが CLI で使えない応答を返しました。
vendor_unavailable9 または 10プラットフォームに接続できなかった、または失敗が続きました。

migrate vendors#

migrate が読み取れるプラットフォーム、それぞれが受け付けるもの、読み取り専用キーの作り方を一覧表示します。

migrate vendors [VENDOR]
パラメータータイプ必須デフォルトメモ
VENDORstringいいえすべてのプラットフォームプラットフォームの id を 1 つ指定します。一覧にない id は、存在する id を示して usage_error(終了コード 2)になります。
screenrig migrate vendors
screenrig migrate vendors files

オフラインで動作し、サインインは不要です。data.vendors には、プラットフォームごとに id と name が入ります;inputs は、受け付ける flags(それぞれ flag と required、リージョンの場合は values 付き)と、キーファイルが保持する credentials 行(name、secret、required、help);connect は読み取り専用キーを作成する手順;maps は移行できるもの;skips は移行できないもの;docs;example は動作する migrate scan コマンドです。プラットフォームは id 順に並び、files が最後に来ます。files はフォルダーまたは .zip と任意のタイムゾーンを受け付け、キーは不要です。

migrate scan#

サイネージアカウントを読み取り、移行できるものとできないものを報告します。scan.json を書き込み、screenRIG には何も送信しません。

migrate scan --from VENDOR [--url ADDRESS] [--region REGION] [--timezone ZONE] [--files PATH]
    [--credentials FILE] [--dir DIR]
パラメータータイプ必須デフォルトメモ
--from VENDORstringはいなし読み取るプラットフォーム:migrate vendors の id、または files。
--url ADDRESSstringプラットフォームごとなしセルフホストのプラットフォームのアドレス。
--region REGIONstringプラットフォームごとなしホスト型アカウントのリージョン。リージョンのあるプラットフォーム用。
--timezone ZONEstringいいえなしAmerica/Toronto のような IANA タイムゾーン名。旧プラットフォームがタイムゾーンを指定していない各スクリーンに設定します。設定しない場合、スクリーンは Player が報告するゾーンに従います。
--files PATHパスプラットフォームごとなしフォルダーまたは .zip。--from files ではメディアを保持し、他のプラットフォームでは、そのプラットフォームの API が提供できない元ファイルを保持し、ファイル名でメディアと照合されます。
--credentials FILEパスプラットフォームごとなしキーファイル:migrate vendors VENDOR が一覧表示する名前の NAME=VALUE 行。空行と # コメントはスキップされ、値は 1 組の引用符で囲めます。必須の名前がファイルにない場合は、その名前を示して usage_error(終了コード 2)になります。
--dir DIRパスいいえ./screenrig-migration-VENDOR移行ディレクトリ。
screenrig migrate scan --from files --files ./signage-media
screenrig migrate scan --from files --files ./signage-media.zip --dir ./old-signage --timezone America/Toronto

プラットフォームが受け付けないフラグ、または必要なのに不足しているフラグは、そのプラットフォームが受け付けるものを示して usage_error(終了コード 2)になります。キー自体を受け取るフラグはありません。新しいスキャンは scan.json を置き換えて map.json を保持し、完了すると、一部の項目を移行できなくても 0 で終了します。

data はレポートです:vendor、label、scanned_at、found、importable(media、playlists、layouts、schedules、groups、screens の件数)、not_imported(それぞれ kind、source_id、name、reason、通常は next ステップを含む)、lossy(それぞれ kind、source_id、name、およびその途中で起こる change を含む)、notes、dir、scan_file。プラットフォームが提供するファイルは apply でダウンロードされます。提供しないファイル、または再エンコードされたコピーしか提供しないファイルは、--files 内で名前により照合されます。一致するものがない、または複数ある場合は、それを解決する手順とともに not_imported または lossy に入ります。

--from files にキーは不要です。画像、動画、音声の各ファイルを、拡張子ではなく内容で判別して読み取ります。ルートにある任意の playlists.csv には、列 playlist、file(パスまたは一意のファイル名)、duration(秒)、order があります。これがない場合、メディアを含む各フォルダーは自然なファイル名順のプレイリストになり、ルートにあるファイルはフォルダー名または zip 名を付けた 1 つのプレイリストになります。任意の screens.csv には name、group(複数の場合は ; で区切る)、playlist、timezone があり、各行はそのグループをタグとして持つ待機スクリーンになります。その他のファイルと暗号化された zip エントリは not_imported に入ります。files のスキャンにはスケジュールがありません。プレイリストができたら campaign create で作成します。

migrate apply#

スキャンで見つかったものをインポートします:メディア、プレイリストとレイアウト、待機スクリーン、キャンペーン。再実行しても安全です。

migrate apply [--dir DIR] [--dry-run] [--only KINDS] [--folder ID] [--canvas WIDTHxHEIGHT]
    [--credentials FILE] [--concurrency N] [--no-transcode]
パラメータータイプ必須デフォルトメモ
--dir DIRパスいいえ唯一の ./screenrig-migration-* ディレクトリscan.json を保持する移行ディレクトリ。
--dry-runbooleanいいえオフプロジェクトを読み取り、計画を表示します。何も書き込まず、キーも不要です。
--only KINDSstringいいえ4 つすべてカンマ区切り、それぞれ最大 1 回:media、playlists、screens、schedules。
--folder IDstringいいえImported from とプラットフォーム名を付けた新しいフォルダーインポートしたメディア用の既存のメディアフォルダー(mfd_…)。
--canvas WIDTHxHEIGHTstringいいえ1920x1080通常のプレイリストのキャンバス。各辺は 16 ピクセル以上。レイアウトは独自のサイズを保持します。
--credentials FILEパスいいえなしキーファイル。プラットフォームからメディアファイルをダウンロードするときにのみ読み取られます。
--concurrency Nintegerいいえ4同時にインポートするメディアの数、1~8。
--no-transcodebooleanいいえオフmedia upload と同様に、ソースのバイトを変更せずにアップロードします。
screenrig migrate apply --dry-run
screenrig migrate apply --dir ./screenrig-migration-files
screenrig migrate apply --only media,playlists --concurrency 2

apply は次の順にインポートします:メディアを 1 つのフォルダーへ、プレイリストとレイアウト、元のスクリーン 1 台につき待機スクリーン 1 つ、そして キャンペーンで表現できるスケジュールごとに 1 つのキャンペーン。プラットフォームを再び読み取るのは、メディアファイルをダウンロードするときだけです。プレイリストは項目ごとに 1 ページになります:画像と動画はキャンバス全体に表示され、Web アドレスは iframe ページになり、音声はサウンドトラックになり、入れ子のプレイリストはインライン展開されます。レイアウトは、メインゾーンの項目ごとに 1 ページを持つ、独自のキャンバス上のプレイリストになります。月・年・時・分ごとに繰り返すスケジュール、または月の第何曜日かで繰り返すスケジュールはキャンペーンにできません:scan が not_imported に一覧表示します。

--dry-run はプロジェクトのみを読み取り、data.plan(media、playlists、layouts、screens、schedules ごとの create、reuse、recreate、waiting、fail の件数)、data.items、ダウンロード対象の data.bytes、data.placeholders の件数と data.project、そして使用中のフリートリンクとキャンペーンを上限の 50 と 100 に対して返します。進行状況は JSON 行(phase、done、total を持つ migrate_progress)として標準エラー出力に、--human を付けるとテキストで出力されます。再実行すると、まだ存在するものは再利用し、削除したものは作り直し、作成済みのものは変更しません。実際の実行では data.applied(同じ件数)、data.waiting(インポートされていないメディアまたはプレイリストを待つ項目。それぞれ reason 付き)、data.failed、data.placeholders(元のスクリーンごとに 1 エントリ。source_id、name、state を持ち、値は linked、unlinked、paired、finished、waiting のいずれか)、data.tags、data.folder_id を返します。

グループは英数字からなるタグになり、別のスクリーンが持つタグと重複する場合は番号が付きます。キャンペーンは、そのスケジュールが指定するグループとスクリーンのタグを、日付、曜日、時間、優先度とともに対象にします。キャンペーンは日付と時間を各スクリーン自身のタイムゾーンで読み取り、デフォルトのプレイリスト(no_default_playlist)が必要です。scan はそれがないスクリーンを記録し、screen assign がペアリング後に設定します。

待機スクリーンは、元の名前、タグとしてのグループ、プレイリストを持つ、1 台のスクリーン用のフリートリンクです。組織が持てるフリートリンクは、すべてのプロジェクトを合わせて最大 50 件です。残りは data.placeholders の unlinked となり、Player コード(migrate pair)を待ちます。リンクを開いた Player はスクリーンになり、apply を再実行すると元の名前とタイムゾーンが付与され、リンクが削除されます。apply はフリートリンクの URL を表示しません。表示するのは fleet-links show です。

失敗した項目は ok true と data.failed(それぞれ key、name、code、status、detail を含む)、および警告 migration_items_failed を保持します。それに依存する項目は待機し、終了コードは最後の失敗のステータスに従います。単独で失敗したメディアファイル(期限切れのアドレス、ファイルではない応答、無応答になったダウンロード)は、そのメディアだけが失敗します。期限切れのアドレスは migrate scan を再実行してください。すべての項目で繰り返されるはずの拒否(quota_exceeded、campaign_limit_reached、insufficient_access、pending_review、プラットフォームによるキーの拒否、接続の喪失)は、data.stopped(code、detail、next)とその問題の終了コードで実行を終了します。原因を修正して同じコマンドをもう一度実行してください。停止した位置から再開します。

migrate pair#

Player コードを 1 つの待機スクリーンにペアリングし、元の名前、プレイリスト、タイムゾーン、タグを適用します。

migrate pair <CODE...> --screen ID_OR_NAME [--dir DIR]
パラメータータイプ必須デフォルトメモ
<CODE...>stringはいなしPlayer に表示されるコード(ABC 234 など):23456789ABCDEFGHJKMNPQRSTUVWXYZ の 6 文字で、大文字小文字は問いません。間のスペースとダッシュは無視されるため、引用符は不要です。
--screen ID_OR_NAMEstringはいなし待機スクリーン:そのソース id または元の正確な名前。2 台のスクリーンが同じ名前を持つ場合は、それらの id を一覧表示します。
--dir DIRパスいいえ唯一の ./screenrig-migration-* ディレクトリ移行ディレクトリ。
screenrig migrate pair ABC 234 --screen "Front desk"
screenrig migrate pair ABC234 --screen 3 --dir ./old-signage

先に migrate apply を実行してください。ペアリングには、それが作成したマップとプレイリストが必要です。pair は、元の名前でスクリーン用にコードを取得し、そのプレイリスト、タイムゾーン、migrated_from フィールドを設定し、タグを設定し、待機スクリーンのリンクを削除して、結果を記録します。data は source_id、name、screen_id、steps(paired、updated、tagged、link deleted、recorded)、next、そしてこの実行がコードを取得した場合は public_url を保持します。各ステップは完了するごとに記録されるため、再実行すると、中断されたペアリングが残した部分が完了します。すでにペアリング済みのスクリーンは、それを示して resource_conflict(終了コード 5)になります。Player は次にサービスに接続したときにペアリングを完了し、screen show は state active を報告します。

ほかのコマンドグループ