デジタルサイネージ

ヘッドレスデジタルサイネージ:スクリプト、パイプライン、エージェントがスクリーンを動かす

ヘッドレスデジタルサイネージでは、スクリーンを変更するために開いたままにしておくものは何もありません。エージェント、スクリプト、パイプラインが API 経由で再生内容を更新し、Player がそれを描画します。ここでは CI パイプラインが curl でテレビに書き込みます。ダッシュボードは開かず、見ている人もいません。

更新

  1. あなた

    プラットフォームチームのテレビに、うちのリリースパイプラインを表示してください。パイプラインが各ステップ(開始、テスト、デプロイ、ロールバック)をその都度投稿し、新しいものを先頭に、失敗したときは赤い行で表示します。これは curl を使ったシェルスクリプトから行うので、人もエージェントも介在しません。ボードを一度セットアップして、スクリプトに必要なものを教えてください。

  2. エージェント

    ボードをプラットフォームチームのテレビに表示しました。新しいステップが先頭に来て、失敗は赤い行で表示されます。スクリプトに必要なのは API のアドレス、ボードの ID、トークンの 3 つで、スクリプトは私が書いておきました。私のテストでは、失敗したデプロイはスクリプトの投稿から約 2 秒後にスクリーンに表示されました。

無料で始める料金を見る

01 デジタルサイネージにおけるヘッドレスとは?

デジタルサイネージにおけるヘッドレスとは?

従来のサイネージシステムでは、Web アプリが操作画面であり、プレーヤーはそれに従います。ヘッドレスのシステムでは、制御は API にあります。どのクライアントも同じコントロールプレーンを呼び出し、コントロールプレーンが各 Player の再生内容を決め、Player が描画して結果を報告します。ダッシュボードはクライアントの 1 つにすぎず、スクリーンが再生を続けるためにクライアントを開いたままにしておく必要はありません。

項目ヘッドレス CMSヘッドレスサイネージプラットフォーム
内容構造化コンテンツエントリーメディア、プレイリスト、すぐに使えるアプリ、独自のアプリ、キー/バリューの状態
描画するのは誰か独自のフロントエンドまたはプレーヤー各スクリーンの Player
スケジュールとテイクオーバースクリーン側の独立したシステムサーバーが各スクリーンの再生内容を決定
スクリーンが表示した証拠スクリーン側の独立したシステムスクリーンショットと再生記録
使う場面同じコンテンツが Web サイトやアプリにも使われるスクリーンがチャネル

プログラマブルとは、コードで再生内容を制御することです。プログラマティックは通常、屋外(OOH)スクリーンの広告枠を自動で売買することを指し、こちらは Player のページで別に扱っています。

02 パイプラインが動かすリリースボード

パイプラインが動かすリリースボード

プラットフォームチームは、コーヒーマシンの横のテレビにリリースパイプラインを表示したいと考えています。各ステップをその都度、新しいものを先頭に、失敗したときは赤い行で表示します。パイプライン、ジョブ番号、ホストはデモ用のコンテンツです。実行は本物で、2026 年 10 月 26 日に screenRIG のステージング環境で行い、画像はテレビの代わりにブラウザーウィンドウで Player が描画したものです。パイプラインの各ステージは、小さなスクリプトを一度ずつ実行します:

  1. パイプラインを開始しました。 main、3 件のコミット。
  2. テスト合格。 412 件のテストが 3 分 10 秒で完了。
  3. 本番環境へのデプロイに失敗しました。 web-2 でヘルスチェックがタイムアウトしたため、ロールバックします。
  4. ロールバック完了。 web-1 と web-2 が再び正常になりました。

3 つ目のステップの後は、エラーが大きな行になり、それ以前のステップは経過時間とともに一覧表示され、フッターには 1 時間のイベント数とエラー数が表示されます。4 つ目のステップの後は、ロールバックが先頭に来て、失敗したデプロイがその下に並びます。

リリースボード:赤いエラー行「本番環境へのデプロイに失敗しました」にヘルスチェックのメッセージが表示され、その横に「テスト合格」と「パイプライン 4182 を開始」が並んでいる
ステップ 3 の後。行のレベル(info、success、warning、error)によって色が決まります。
ロールバック後のリリースボード:緑の「成功」行「ロールバック完了」の横に、失敗したデプロイとそれ以前のステップが並んでいる
ステップ 4 の後。フッターには、直近 1 時間のエラー 1 件が引き続き表示されます。

03 パイプラインのスクリプトは何をしますか?

パイプラインのスクリプトは何をしますか?

エージェントの役割は短く、一度きりです。アクティビティフィードボードを作り、ページが空にならないよう最初の行を入れて、スクリーンに表示します。続いて、パイプラインにスクリプトを渡します。スクリプトはボードとそのリビジョンを読み取り、新しい行を先頭に置いて、その間に誰も書き込んでいない場合にだけ書き戻します:

ターミナル
# $url is the board's address and $auth carries your token.
# 1. Read the board and its revision (the ETag).
etag=$(curl -sS -D - -o current.json -H "$auth" "$url" | awk 'tolower($1) == "etag:" { print $2 }' | tr -d '\r')
# 2. Write the board back with the new row first. A stale revision is refused, and the script reads again.
curl -sS -X PUT "$url" -H "$auth" -H "Content-Type: application/json" -H "If-Match: $etag" -H "Idempotency-Key: board-$(date -u +%s%N)" --data @next.json

04 スクリーンが受け取ったことを、パイプラインはどう知るのですか?

スクリーンが受け取ったことを、パイプラインはどう知るのですか?

ポーリングは行いません。プロジェクトのイベントストリームは再生可能で、パイプラインは書き込みと同時にそれを読めます。失敗したデプロイでは、ストリームに書き込み、変更、そして Player 自身による「そのリビジョンをそのページに適用した」という報告が順に流れました(時刻は UTC、イベントとリビジョンのみに絞り込み):

テキスト
03:43:47.501  kv.updated                 revision 5 written
03:43:47.505  screen.card_data_changed   revision 5
03:43:49.306  screen.card_data_applied   revision 5, page "board"

Player は、書き込みが受理されてから 1.8 秒後にそのリビジョンを報告しました。失敗がスクリーンに表示されるまで先へ進んではいけないジョブは、この最後の行を待てますし、気にしないジョブは無視できます。スクリーンのイベントはリッスンストリームで無料で、再接続すると最後のカーソルから再開されます。

05 書き込み側は 2 つ、リビジョンは 1 つ

書き込み側は 2 つ、リビジョンは 1 つ

2 つのジョブが同時に書き込むことがあります。古いリビジョンを持つ書き込みは拒否され、拒否の応答には現在のリビジョンが示されるため、新しい行が上書きされることはありません。スクリプトは読み取り直して、最大 3 回まで再試行します。

06 ヘッドレスデジタルサイネージでサーバー側に残るものは?

ヘッドレスデジタルサイネージでサーバー側に残るものは?

クライアントが接続されていなくても動き続ける必要があるすべての処理。Player が描画し、サーバーが判断します。

項目サーバーの役割
スケジュール各スクリーンが再生する内容を選びます。テイクオーバーがあればそれを、なければ条件を満たす最初のキャンペーンを、それもなければスクリーンの現地時刻に一致する最初のスケジュール項目を、それもなければ割り当て済みのプレイリストを再生します。切り替えは、境界の時刻からおよそ 1 分以内に反映されます。
キャンペーン日付と曜日ごとの時間枠が有効な間、タグ付きフリートのすべてのスクリーンを 1 つのプレイリストに切り替えます。切り替えは各スクリーンのローカル時刻で行われます。
テイクオーバーキャンペーン、スケジュール、割り当てより優先して、1 つのプレイリストをスクリーンまたはタグ付きフリートに表示し、その後は自動的に終了します。
表示電源各ディスプレイをオンにする時間帯を管理します。Player がデバイス上でスケジュールを評価するため、オフラインでも動作し続けます。
再生の証明画像や動画が実際に表示された開始を、すべて記録します。CSV エクスポートは最大 31 日分に対応します。
デバイスの稼働状態Player は稼働状態を定期的に報告し、ディスプレイの接続や電源が変わったときは直ちに報告します。

タグでフリートを選択できるため、1 つのコマンドで、そのタグが付いたすべてのスクリーンに届きます。

07 ダッシュボードが必要になるのはどんなときですか?

ダッシュボードが必要になるのはどんなときですか?

ダッシュボードはクライアントの 1 つにすぎず、人に向いている作業もあります。

  • レビュー。「提案」アクセスでサインインしたエージェントや、レビューが必須のプロジェクトでは、変更がレビューページに送られます。人が承認、変更依頼、却下を行い、それまでスクリーンには何も反映されません。
  • アクセス。アクセスページには、すべてのエージェント、連携アプリ、サービスクライアントが一覧表示され、人がそこでいずれの接続も終了できます。
  • メンバーとプロジェクト。招待とプロジェクト設定は、人が管理します。

08 よくある質問

よくある質問

ヘッドレスデジタルサイネージと API ファーストのデジタルサイネージは同じですか?

どちらも同じ設計を 2 つの側面から説明したものです。API ファーストは、最初に API を設計し、すべてのクライアントがそれを使うという意味です。ヘッドレスは、スクリーンを動かすために特定のインターフェースが必要ないという意味です。

ヘッドレスデジタルサイネージの運用に開発者は必要ですか?

いいえ。エージェントなら一言の指示で運用でき、プロジェクトでレビューが必須の場合は、エージェントの提案を人が承認します。システムからスクリーンへ自動で書き込ませたいときは、開発者が上のようなスクリプトを追加します。

コンテンツを別のシステムで管理できますか?

はい。スクリプトがシステムを読み取り、その値をボードに書き込みます。スクリーンは、サーバーが保持している内容を描画します。

ヘッドレス構成で動かせる Player はどれですか?

12 種類あります:Web Player、Android と Google TV、Amazon Signage Stick、Apple TV、macOS、iPhone と iPad、Windows、Linux、Raspberry Pi、LG webOS Signage、Samsung Smart Signage(Tizen)、BrightSign。インストール手順は Player ガイドにあります。

ヘッドレスデジタルサイネージは無料ですか?

screenRIG は無料で、スクリーン数は無制限です。有料プランでは、ビジネスツール、より多くのメンバー、相談できる担当者、ガバナンス、契約条件が加わります。料金をご覧ください。開発者向けページでは各インターフェースを紹介しています。

09 最初の行を書き込む

最初の行を書き込む

スクリプトが行う呼び出しについては REST API リファレンスをご覧いただくか、無料で始めてエージェントにスクリプトを書かせてください。

10 関連

11 その他のトピック

screenRIG は無料です。

公式プラグインをインストールしてスクリーンをペアリングすれば、エージェントが公開できるようになります。

無料で始める料金を見る →