Dokumentation

Playlists: CLI-Befehle

Playlists vorbereiten, prüfen, erstellen, ändern, exportieren, importieren, Seiten, Revisionen und Instanzen verwalten, eine App-Version ersetzen.

Jeder Befehl läuft wie in der CLI-Referenz beschrieben: globale Flags, JSON-Ausgabe, Beendigungscodes, Revisionen und Wiederholungen.

Playlists

Eine Playlist ist ein JSON-Dokument von Seiten. playlist init bereitet ein Vollbild-Dokument aus geordneten Eingaben vor. playlist create und playlist update lesen dieses Dokument aus einer Datei; playlist patch, playlist rename und playlist page add|replace|remove ändern einen Teil davon. Die Form wird unter den Befehlen zusammengefasst.

playlist init#

Eine bearbeitbare Vollbild-Playlist aus lokalen Mediendateien, fertigen Medien-IDs, Anwendungsfreigabe-IDs, HTTP- oder HTTPS-URLs oder eingefügten Iframe-Embed-Codes vorbereiten.

playlist init <inputs...> --name NAME --output FILE [--overwrite] [--screen-id ID]
              [--target-width PX --target-height PX] [--duration-ms MS] [--fit contain|cover|fill] [--sound]
              [--no-transcode] [--no-progress] [--poll-ms MS]
ParameterTypErforderlichStandardNotizen
<inputs...>Dateien, med_ IDs, rel_ IDs, HTTP- oder HTTPS-URLs oder eingefügte <iframe>-Embed-CodesjakeineWiedergabereihenfolge. Lokale Bild-, Video- und Audiodateien werden hochgeladen und warten auf Bereitschaft, es sei denn --no-transcode. Bestehende Medien müssen bereits bereit sein. Eine Audiodatei oder eine bereite Audio-med_-ID wird anstelle einer Seite zum Soundtrack, in Eingabereihenfolge; mindestens eine Eingabe muss eine Seite sein. HTTP- und HTTPS-URLs dürfen LAN-Hosts, eingebettete Zugangsdaten und Bildschirm-Token wie {screen.field.kiosk_id} enthalten, bleiben wie geschrieben und werden nicht abgerufen. Ein eingefügter Embed-Code wird auf sein src gelesen. Die Player-Web-App benötigt HTTPS-URLs ohne Benutzernamen oder Passwort.
--name NAMEstringjakeineAnzeigename der Playlist.
--output FILEPfadjakeineDas bearbeitbare Playlist-Dokument schreiben. Übergeordnete Verzeichnisse werden erstellt. Standardmäßig exklusiv: Eine vorhandene nicht leere Datei schlägt mit usage_error fehl (Exit 2) und bleibt unverändert.
--overwritebooleanneinausEine bestehende Ausgabedatei atomar durch ein aus diesen Eingaben erstelltes Dokument ersetzen.
--screen-id IDstringneinkeineLesen Sie die Abmessungen und die Revision des Zielbildschirms. Ein Bildschirm mit Videowand liefert die Leinwand der Wand und das passende format.
--target-width PX / --target-height PXintegerzusammenNicht festgelegtCanvas-Größe überschreiben. Beide oder keine. Erforderlich, wenn kein Bildschirm angegeben ist oder der Bildschirm unbekannte oder mehrere Oberflächen meldet.
--duration-ms MSintegernein8000Dauer für Seiten ohne Video. Eine Anwendungsseite bleibt 24 Stunden (86400000) lang angezeigt, sofern dies nicht angegeben wird.
--fitstringneincontaincontain, cover oder fill für Bild- und Videoseiten. Anwendungen und iframes verwenden fill.
--soundbooleanneinausSpielt den Ton von Videoseiten ab. Ohne sie ist jede Videoseite stumm. Eine Seite mit Ton pausiert den Soundtrack, solange sie angezeigt wird.
--no-transcodebooleanneinausHochgeladene Datei unverändert akzeptiert.
--no-progressbooleanneinausUnterdrücken Sie den Upload-Fortschritt auf stderr.
--poll-ms MSintegernein1000Abfrageintervall hochladen.
screenrig playlist init med_01EXAMPLEIMAGE0000000000 med_01EXAMPLEVIDEO0000000000 --name "Lobby loop" --screen-id scr_01EXAMPLESCREEN00000000 --output lobby.json

Die Vorbereitung schreibt das lokale Dokument und kann Medien hochladen; sie erstellt weder eine entfernte Playlist noch weist sie einen Bildschirm zu. Dokument prüfen, dann screen publish. Siehe Playlists vorbereiten, veröffentlichen und bearbeiten.

data meldet output, width, height, page_count, soundtrack_tracks, release_ids, media_ids und uploads, und mit --screen-id außerdem screen_id, screen_revision und publish.argv; ein Bildschirm mit Videowand fügt format hinzu. Eine auf unter 60 Sekunden gesetzte Anwendungsseite erhält eine application_page_short-Warnung.

playlist validate#

Validieren Sie ein Playlist-Dokument lokal vor Erstellung oder Aktualisierung. Kein Netzwerk erforderlich.

playlist validate <file>
ParameterTypErforderlichStandardNotizen
<file>PfadjakeineDas Playlist-Dokument oder - für stdin.
screenrig playlist validate ./lobby-loop.json

Fehler benennen exakte JSON-Pfade. Ein Bestehen bedeutet, dass lokale Form und feldübergreifende Semantik gültig sind; Autorisierung, Medienbereitschaft, dynamische Selektoranzahlen, Dauern und entfernte Verfügbarkeit erfordern weiterhin Serverprüfungen. playlist create, playlist update und screen publish führen diese Prüfung vor dem Schreiben aus. data meldet valid, scope und server_checks und enthält lint-Befunde zur Geometrie, jeweils mit page_id, code, id und message, die die Prüfung nicht fehlschlagen lassen: motion_overuse, collision, safe_margin und adjacent_repeat. Eine Anwendungsseite, die in weniger als 60 Sekunden weiterschaltet, erhält eine application_page_short-Warnung. Um zu sehen, wie eine Seite aussieht, veröffentlichen Sie sie und führen Sie screen screenshot aus.

playlist create#

Eine Playlist aus einem JSON-Dokument, aus einer Vorlage oder aus der integrierten Vorlage „Dringende Mitteilung“ erstellen.

playlist create [file] [--from-template ID --name NAME [--set NAME=VALUE...] [--dry-run]] [--starter KEY [--name NAME]] [--format-region REGION --format-orientation ORIENTATION] [--note TEXT]
ParameterTypErforderlichStandardNotizen
[file]PfadneinkeineDas Playlist-Dokument oder - für stdin. Geben Sie es an, oder --from-template, oder --starter. Es enthält name, pages und optional audio, format und fields; jedes andere Mitglied ist ein usage_error.
--from-template IDstringneinkeineDie Playlist aus dieser Vorlage erstellen (eine pl_-ID): ihre aktuellen Seiten mit den --set-Werten, geprüft wie jede Playlist.
--name NAMEstringmit --from-templatekeineDer Name der neuen Playlist. --dry-run benötigt ihn nicht, und --starter nimmt ihn optional.
--set NAME=VALUEstringneinkeineMit --from-template: der Wert eines Felds, bei einem Medienfeld die ID eines bereiten Bildes oder Videos. Wiederholbar. NAME ist ein Feldname aus 1 bis 32 Kleinbuchstaben, Ziffern oder Unterstrichen, einmal angegeben.
--dry-runbooleanneinausMit --from-template: die Werte prüfen und die Seitenzahl melden, ohne etwas zu erstellen.
--starter KEYstringneinkeineEine integrierte Vorlage hinzufügen: urgent-notice, eine Überschrift und eine Nachricht für schnelle Ankündigungen.
--format-region REGIONstringneinkeineheader, footer oder side: macht die Playlist zu einem Streifen, der entlang dieser Kante über die Seite gelegt wird, und ersetzt ein format in der Datei. Geben Sie ihn zusammen mit --format-orientation an. Siehe Streifen.
--format-orientation ORIENTATIONstringmit --format-regionkeinelandscape oder portrait: die Ausrichtung des Displays, für das der Streifen gemacht ist, wie der Betrachter sie sieht.
--note TEXTstringneinkeineEine Notiz für die Person, die die Änderung überprüft: Klartext, höchstens 280 Zeichen. Wird ignoriert, wenn die Änderung sofort angewendet wird.
screenrig playlist create ./lobby-loop.json
screenrig playlist create --from-template pl_01EXAMPLETEMPLATE00000 --name "Monday notice" --set headline="Open late"

data.id der Antwort ist die pl_-ID, die screen assign erwartet. Wartet die Änderung auf Prüfung, ist data gleich {status: pending_review, review, playlist, next}: Die Playlist existiert mit approved_revision: 0, und kein Bildschirm kann sie zeigen, bis eine Person genehmigt (playlist_not_approved); next ist screenrig reviews show ID. Eine Vorlage ist eine Playlist, die fields deklariert; sie wird nie auf einem Bildschirm gezeigt (playlist_is_template), und eine daraus erstellte Playlist ist eine gewöhnliche, die sich zuweisen, planen und überarbeiten lässt.

playlist update#

Ein Playlist-Dokument ersetzen.

playlist update <id> <file> [--format-region REGION --format-orientation ORIENTATION] [--expect-rev REVISION] [--note TEXT]
ParameterTypErforderlichStandardNotizen
<id>stringjakeineDie pl_ Playlist-ID.
<file>PfadjakeineDas Ersatzdokument oder - für stdin. Es enthält name, pages und optional audio, format und fields; jedes andere Mitglied ist ein usage_error. Das Weglassen von audio entfernt den Soundtrack, das Weglassen von format macht die Playlist zu einer gewöhnlichen, und weggelassene fields bleiben erhalten.
--format-region REGIONstringneinkeineheader, footer oder side: macht die Playlist zu einem Streifen, der entlang dieser Kante über die Seite gelegt wird, und ersetzt ein format in der Datei. Geben Sie ihn zusammen mit --format-orientation an. Siehe Streifen.
--format-orientation ORIENTATIONstringmit --format-regionkeinelandscape oder portrait: die Ausrichtung des Displays, für das der Streifen gemacht ist, wie der Betrachter sie sieht.
--expect-rev REVISIONstringneinkeineOptionale Revisionsvoraussetzung. Weglassen, um die aktuelle Ressource zu schreiben. Ein übergebener veralteter Wert ist revision_conflict: erneut abrufen, erneut anwenden, erneut versuchen.
--note TEXTstringneinkeineEine Notiz für die Person, die die Änderung überprüft: Klartext, höchstens 280 Zeichen. Wird ignoriert, wenn die Änderung sofort angewendet wird.
screenrig playlist update pl_01EXAMPLEPLAYLIST000000 ./lobby-loop.json

playlist show ID --output FILE schreibt eine Datei in dieser Form. Um nur einen Teil einer Playlist zu ändern, verwenden Sie playlist patch, playlist rename oder playlist page add|replace|remove.

Wenn die Änderung auf Überprüfung wartet, wird die Live-Playlist unverändert weiter abgespielt, bis eine Person den Vorschlag genehmigt.

playlist patch#

Nur die übergebenen Top-Level-Mitglieder einer Playlist ändern und alles andere beibehalten.

playlist patch <id> [file] [--name NAME] [--clear-audio] [--expect-rev REVISION] [--note TEXT]
ParameterTypErforderlichStandardNotizen
<id>stringjakeineDie pl_ Playlist-ID.
[file]PfadneinkeineEin partielles JSON-Objekt mit einem oder mehreren von name, pages, audio, format und fields oder - für stdin. Übergebene pages, audio und format ersetzen den gesamten Wert; Arrays werden nicht zusammengeführt. audio: null entfernt den Soundtrack und format: null entfernt das Format.
--name NAMEstringneinUnverändertDen Namen setzen, 1 bis 120 Zeichen nach dem Trimmen, ohne den Inhalt zu senden. Nicht zusammen mit name in der Datei.
--clear-audiobooleanneinausDen Soundtrack entfernen, wie es audio: null tut. Keine Seite darf einen audio_cue behalten. Nicht zusammen mit audio in der Datei.
--expect-rev REVISIONstringneinkeineOptionale Revisionsvoraussetzung. Weglassen, um die aktuelle Ressource zu schreiben. Ein übergebener veralteter Wert ist revision_conflict: erneut abrufen, erneut anwenden, erneut versuchen.
--note TEXTstringneinkeineEine Notiz für die Person, die die Änderung überprüft: Klartext, höchstens 280 Zeichen. Wird ignoriert, wenn die Änderung sofort angewendet wird.
screenrig playlist patch pl_01EXAMPLEPLAYLIST000000 --name "Lobby loop" --expect-rev 7
screenrig playlist patch pl_01EXAMPLEPLAYLIST000000 changes.json --expect-rev 7

Geben Sie eine Datei, --name oder --clear-audio an. Eine reine Namensänderung prüft den vorhandenen Inhalt nicht erneut. Übergebene pages und audio werden vom Server gemeinsam geprüft. Ein Regions-format ist {"region": "header", "orientation": "landscape"}; siehe Streifen. Unter Propose-Zugriff oder in einem Projekt, das eine Überprüfung von Agentenänderungen erfordert, wartet die Änderung wie bei playlist update und antwortet mit pending_review.

playlist rename#

Den Namen einer Playlist ändern, ohne ihren Inhalt zu senden.

playlist rename <id> --name NAME [--expect-rev REVISION] [--note TEXT]
ParameterTypErforderlichStandardNotizen
<id>stringjakeineDie pl_ Playlist-ID.
--name NAMEstringjakeineDer neue Name, 1 bis 120 Zeichen nach dem Trimmen.
--expect-rev REVISIONstringneinkeineOptionale Revisionsvoraussetzung. Weglassen, um die aktuelle Ressource zu schreiben. Ein übergebener veralteter Wert ist revision_conflict: erneut abrufen, erneut anwenden, erneut versuchen.
--note TEXTstringneinkeineEine Notiz für die Person, die die Änderung überprüft: Klartext, höchstens 280 Zeichen. Wird ignoriert, wenn die Änderung sofort angewendet wird.
screenrig playlist rename pl_01EXAMPLEPLAYLIST000000 --name "Lobby loop" --expect-rev 7

Die reine Namensform von playlist patch: Seiten, Soundtrack und Kommentare bleiben unverändert, und der vorhandene Inhalt wird nicht erneut geprüft. Eine vorgeschlagene Umbenennung wartet wie jede andere Änderung auf die Genehmigung einer Person.

playlist page add#

Eine Seite zu einer Playlist hinzufügen, ohne die anderen zu senden.

playlist page add <playlist-id> (--file PAGE.json | --media MED_ID) [--seconds N] [--fit contain|cover] [--sound]
                  [--from WHEN] [--until WHEN] [--before PAGE_ID] [--page-id ID]
                  [--expect-rev REVISION] [--note TEXT]
ParameterTypErforderlichStandardNotizen
<playlist-id>stringjakeineDie pl_ Playlist-ID.
--file PAGE.jsonPfadgenau eines von --file, --mediakeineEin Seitenobjekt, das wie geschrieben hinzugefügt wird, oder - für stdin. --seconds und --fit gelten dafür nicht.
--media MED_IDstringgenau eines von --file, --mediakeineEin bereites Bild oder Video. Die Seite zeigt es über die gesamte Leinwand der Playlist (bei einer Videowand die Leinwand der Wand, sonst die der ersten gewöhnlichen Seite) mit dem Übergang der ersten gewöhnlichen Seite und hat keine Daten, sofern Sie keine angeben. Ein Bild wird nach --seconds fortgesetzt; ein Video wird bis zu seinem Ende abgespielt, stumm außer mit --sound.
--seconds Nintegernein10Wie lange ein Bild angezeigt wird, 1 bis 86400.
--fitstringneincontaincontain oder cover.
--soundbooleanneinausSpielt den Ton des Videos ab. Nur für ein Video; die Seite pausiert den Soundtrack, solange sie angezeigt wird, und kann kein audio_cue tragen. Nicht zusammen mit --file, dessen Seite ihr eigenes muted trägt.
--from WHENstringneinkeineErster Zeitpunkt, zu dem die Seite angezeigt wird: YYYY-MM-DDTHH:MM oder YYYY-MM-DD für 00:00 in der Zeitzone jedes Bildschirms.
--until WHENstringneinkeineEnde der Anzeige der Seite, exklusiv: YYYY-MM-DDTHH:MM oder YYYY-MM-DD für das Ende dieses Tages.
--before PAGE_IDstringneinam EndeDie Seite vor diese Seite setzen.
--page-id IDstringneinup- und acht Kleinbuchstaben oder ZiffernDie ID der neuen Seite: ein Buchstabe, dann Buchstaben, Ziffern, - oder _, höchstens 64 Zeichen.
--expect-rev REVISIONstringneinkeineOptionale Revisionsvoraussetzung. Weglassen, um die aktuelle Ressource zu schreiben. Ein übergebener veralteter Wert ist revision_conflict: erneut abrufen, erneut anwenden, erneut versuchen.
--note TEXTstringneinkeineEine Notiz für die Person, die die Änderung überprüft: Klartext, höchstens 280 Zeichen. Wird ignoriert, wenn die Änderung sofort angewendet wird.
screenrig playlist page add pl_01EXAMPLEPLAYLIST000000 --media med_01EXAMPLEIMAGE0000000000 --from 2026-12-01 --until 2026-12-24
screenrig playlist page add pl_01EXAMPLEPLAYLIST000000 --media med_01EXAMPLEVIDEO0000000000 --before up-ab12cd34 --note "Winter menu"
screenrig playlist page add pl_01EXAMPLEPLAYLIST000000 --file page.json --page-id welcome

Die Seite wird ab --from bis ausschließlich --until angezeigt. Beendete Seiten bleiben, bis jemand sie entfernt. Die Antwort ist die aktualisierte Playlist.

Unter Propose-Zugriff, in einem Projekt, das eine Überprüfung von Agentenänderungen erfordert, oder als Uploader-Mitglied, dessen Änderungen überprüft werden, antwortet die Änderung mit pending_review (ok: true, Exit 0). Eine spätere Seitenänderung an derselben Playlist durch denselben Antragsteller schließt sich dieser Überprüfung an, solange sie wartet, sodass aufeinanderfolgende Uploads einander nicht ersetzen. Eine Playlist, die noch keine Person genehmigt hat, antwortet mit playlist_not_approved. Ein Uploader fügt seinen eigenen Playlists nur Medienseiten aus seinen eigenen Ordnern hinzu; alles andere ist outside_upload_scope, dessen upload_scope auflistet, was er verwenden darf. Siehe Uploader.

playlist page replace#

Eine Seite einer Playlist ersetzen und dabei Platz und ID beibehalten.

playlist page replace <playlist-id> <page-id> [--file PAGE.json | --media MED_ID] [--seconds N] [--fit contain|cover]
                      [--sound] [--from WHEN] [--until WHEN | --always] [--expect-rev REVISION] [--note TEXT]
ParameterTypErforderlichStandardNotizen
<playlist-id>stringjakeineDie pl_ Playlist-ID.
<page-id>stringjakeineDie zu ersetzende Seite.
--file PAGE.jsonPfadneinkeineDie vollständige neue Seite oder - für stdin. Ihr id muss <page-id> sein oder fehlen. Nicht zusammen mit --media.
--media MED_IDstringneinkeineDas Medium der Seite austauschen; alles andere, Daten eingeschlossen, bleibt wie gespeichert. Ein Bild gegen ein Bild behält Leinwand, Anpassung, Sekunden und Daten, ebenso ein Video gegen ein Video. Ein Bild gegen ein Video oder umgekehrt wird als Medienseite auf der Leinwand der Playlist neu aufgebaut, die ID, Übergang und Daten behält. Erfordert eine Seite mit einem einzigen Primitiv.
--seconds NintegerneinUnverändertWie lange ein Bild angezeigt wird, 1 bis 86400. Nicht mit --file.
--fitstringneinUnverändertcontain oder cover. Nicht mit --file.
--soundbooleanneinausSpielt den Ton des Videos der Seite ab, allein oder mit --media. Nur für eine Seite mit einer einzigen Video-Primitive; ohne sie behält ein Austausch bei, ob die Seite Ton hatte. Nicht zusammen mit --file.
--from WHENstringneinUnverändertErster Zeitpunkt, zu dem die Seite angezeigt wird: YYYY-MM-DDTHH:MM oder YYYY-MM-DD für 00:00 in der Zeitzone jedes Bildschirms. Ändert nur diese Grenze.
--until WHENstringneinUnverändertEnde der Anzeige der Seite, exklusiv: YYYY-MM-DDTHH:MM oder YYYY-MM-DD für das Ende dieses Tages. Ändert nur diese Grenze.
--alwaysbooleanneinausDie Daten der Seite entfernen, from und until. Eine vom Projekt gesetzte Abschaltung, wöchentliche Fenster oder Datenbedingung bleiben bestehen. Nicht zusammen mit --from oder --until.
--expect-rev REVISIONstringneinkeineOptionale Revisionsvoraussetzung. Eine von der gespeicherten Seite abgeleitete Seite wird an die Revision gebunden, in der sie gelesen wurde, sofern Sie keine angeben. Ein veralteter Wert ist revision_conflict.
--note TEXTstringneinkeineEine Notiz für die Person, die die Änderung überprüft: Klartext, höchstens 280 Zeichen. Wird ignoriert, wenn die Änderung sofort angewendet wird.
screenrig playlist page replace pl_01EXAMPLEPLAYLIST000000 up-ab12cd34 --media med_01EXAMPLEIMAGE0000000000
screenrig playlist page replace pl_01EXAMPLEPLAYLIST000000 up-ab12cd34 --until 2026-12-31
screenrig playlist page replace pl_01EXAMPLEPLAYLIST000000 up-ab12cd34 --always

Geben Sie mindestens eines von --file, --media, --sound, --from, --until oder --always an. Datums-Flags funktionieren auch bei einer Seite mit mehreren Primitiven; das Ändern von Medium, Anpassung oder Sekunden erfordert eine Seite mit einem einzigen Primitiv oder die ganze Seite in --file. Eine unbekannte Seiten-ID wird abgelehnt. Prüf- und Uploader-Regeln sind die von playlist page add; ein Uploader ersetzt nur eine Medienseite aus seinen eigenen Ordnern.

playlist page remove#

Eine Seite aus einer Playlist entfernen.

playlist page remove <playlist-id> <page-id> [--expect-rev REVISION] [--note TEXT]
ParameterTypErforderlichStandardNotizen
<playlist-id>stringjakeineDie pl_ Playlist-ID.
<page-id>stringjakeineDie zu entfernende Seite.
--expect-rev REVISIONstringneinkeineOptionale Revisionsvoraussetzung. Weglassen, um die aktuelle Ressource zu schreiben. Ein übergebener veralteter Wert ist revision_conflict: erneut abrufen, erneut anwenden, erneut versuchen.
--note TEXTstringneinkeineEine Notiz für die Person, die die Änderung überprüft: Klartext, höchstens 280 Zeichen. Wird ignoriert, wenn die Änderung sofort angewendet wird.
screenrig playlist page remove pl_01EXAMPLEPLAYLIST000000 up-ab12cd34

Eine Playlist behält 1 bis 100 Seiten und eine gewöhnliche Seite ohne visibility, daher ergibt das Entfernen der letzten undatierten Seite invalid_request. Eine unbekannte Seite ergibt not_found. Prüf- und Uploader-Regeln sind die von playlist page add.

playlist show#

Eine Playlist lesen, einschließlich ihrer aktuellen Revision, oder als bearbeitbares Dokument schreiben.

playlist show <id> [--output FILE [--overwrite]] [--editable]
ParameterTypErforderlichStandardNotizen
<id>stringjakeineDie pl_ Playlist-ID.
--output FILEPfadneinkeineDas bearbeitbare Dokument in FILE schreiben und seinen Pfad, playlist_id und revision melden. Die Datei ist so, wie sie geschrieben ist, bereit für playlist update. Übergeordnete Verzeichnisse werden erstellt. Standardmäßig exklusiv. Hat Vorrang vor --editable.
--overwritebooleanneinausEine bestehende --output-Datei atomar ersetzen. Eine leere Datei, die ein unterbrochener Lauf hinterlassen hat, wird auch ohne dies ersetzt.
--editablebooleanneinausDas bearbeitbare Dokument und seine Revision im Umschlag als data.document, data.playlist_id und data.revision zurückgeben.
screenrig playlist show pl_01EXAMPLEPLAYLIST000000
screenrig playlist show pl_01EXAMPLEPLAYLIST000000 --output playlist.json
screenrig playlist show pl_01EXAMPLEPLAYLIST000000 --editable

Einfaches show ist eine Inspektionsantwort. Sie gibt die Live-Version zurück. approved_revision ist 0 für eine Playlist, die noch keine Person genehmigt hat, und approval nennt die offene Überprüfung, während eine Änderung wartet; reviews show ID gibt den Vorschlag zurück. Betreffen offene Notizen die Playlist, zählt die Warnung notes_about_resource sie und nennt screenrig notes --about ID, und --human listet bis zu fünf auf.

playlist list#

Playlists des Projekts auflisten.

playlist list [--templates] [--library]
ParameterTypErforderlichStandardNotizen
--templatesbooleanneinausNur Vorlagen: Playlists, die Felder deklarieren.
--librarybooleanneinausListet stattdessen die Playlists der Bibliothek der Organisation auf, schreibgeschützt: Weisen Sie sie Bildschirmen, Zeitplänen und Stapeln zu oder kopieren Sie eine mit playlist create --from-template; ändern Sie sie nur im Bibliotheksprojekt.
screenrig playlist list --templates
screenrig playlist list --library

playlist fields#

Die Felder einer Vorlage oder die Werte einer Kopie anzeigen, oder die Werte ändern und die Kopie auf den neuesten Stand bringen.

playlist fields <id> [--set NAME=VALUE...] [--clear NAME...] [--refresh] [--expect-rev REVISION] [--note TEXT]
ParameterTypErforderlichStandardNotizen
<id>stringjakeineDie pl_-ID einer Vorlage oder einer daraus erstellten Playlist.
--set NAME=VALUEstringneinkeineDen Wert eines Felds setzen. Wiederholbar; NAME ist ein Feldname aus 1 bis 32 Kleinbuchstaben, Ziffern oder Unterstrichen, einmal angegeben.
--clear NAMEstringneinkeineDen Wert eines optionalen Felds löschen. Wiederholbar.
--refreshbooleanneinausDie Seiten unabhängig von den Werten neu aus der aktuellen Version der Vorlage erstellen.
--expect-rev REVISIONstringneinkeineOptional diese Ressourcenversion verlangen.
--note TEXTstringneinkeineEine Notiz für die Person, die die Änderung prüft.
screenrig playlist fields pl_01EXAMPLECOPY00000000 --set headline="Closed today"

Ohne Optionen zeigt es die Felder einer Vorlage und wie viele Playlists daraus erstellt wurden, oder die Werte einer Kopie, die Vorlagenversion, aus der sie erstellt wurde, und ob die Vorlage eine neuere hat. data.kind ist template oder instance: Eine Vorlage meldet fields und instances, eine Kopie template_id, template_revision, template_current_revision, outdated und values. Jede Änderung und --refresh allein erstellt die Seiten der Kopie neu aus der aktuellen Version der Vorlage; so erreicht eine Markenänderung an der Vorlage bestehende Kopien, nichts wird automatisch übertragen. Werte werden wie beim Erstellen geprüft. Mit Propose-Zugriff wird eine Änderung zur Prüfung.

playlist instances#

Die aus einer Vorlage erstellten Playlists und die Vorlagenversion, aus der jede erstellt wurde, auflisten.

playlist instances <id>
ParameterTypErforderlichStandardNotizen
<id>stringjakeineDie pl_-ID der Vorlage.
screenrig playlist instances pl_01EXAMPLETEMPLATE00000

outdated kennzeichnet eine Playlist, die aus einer älteren Version der Vorlage erstellt wurde; playlist fields ID --refresh bringt sie auf den neuesten Stand.

playlist revisions#

Die Revisionen einer Playlist auflisten, die neueste zuerst.

playlist revisions <id> [--after CURSOR]
ParameterTypErforderlichStandardNotizen
<id>stringjakeineDie pl_ Playlist-ID.
--after CURSORstringneinkeineDie data.next_cursor der vorherigen Seite.
screenrig playlist revisions pl_01EXAMPLEPLAYLIST000000

Jede Revision in data.items nennt, was sie erzeugt hat (created, edited, promoted mit der kopierten Revision als restored_from oder baseline, die Revision, die die Playlist hatte, als ihr Verlauf begann), wer sie erstellt hat, wann, ihren Namen, wie viele Seiten sie enthält und ob sie current ist. Eine Seite enthält höchstens 50 Revisionen; solange data.next_cursor eine Zeichenfolge ist, gibt es ältere Revisionen, und null markiert die letzte Seite. Revisionen werden so lange aufbewahrt wie die Playlist.

playlist revision show#

Eine Revision lesen und die Playlist, wie sie zu diesem Zeitpunkt war.

playlist revision show <id> --revision N
ParameterTypErforderlichStandardNotizen
<id>stringjakeineDie pl_ Playlist-ID.
--revision NintegerjakeineDie zu lesende Revision.
screenrig playlist revision show pl_01EXAMPLEPLAYLIST000000 --revision 3

data.revision enthält die Felder, die playlist revisions auflistet, und data.playlist die Playlist, wie sie war: Name, Seiten, Soundtrack und Format, mit revision auf diese Revision gesetzt. Eine Revision, die die Playlist nie hatte, oder eine aus der Zeit vor Beginn ihres Verlaufs ist not_found.

playlist promote#

Eine frühere Revision wieder aktuell machen, indem sie als neue Revision übernommen wird.

playlist promote <id> --revision N --expect-rev CURRENT
ParameterTypErforderlichStandardNotizen
<id>stringjakeineDie pl_ Playlist-ID.
--revision NintegerjakeineDie Revision, die übernommen wird.
--expect-rev CURRENTstringjakeineDie aktuelle Revision der Playlist (playlist show). Ein veralteter Wert ist revision_conflict: die Playlist erneut lesen und erneut versuchen.
screenrig playlist promote pl_01EXAMPLEPLAYLIST000000 --revision 3 --expect-rev 9

Seiten, Soundtrack und Format der Revision werden zur nächsten Revision. Der Name bleibt, frühere Revisionen bleiben in der Liste, und jeder Bildschirm, der die Playlist zeigt, wird aktualisiert; der Befehl kehrt zurück, sobald die Playlist geschrieben ist, und wartet nicht auf Player. Seiten werden wie bei jedem Schreibvorgang neu aufgelöst: Ein Selektor trifft die heutigen Medien, und Medien oder eine Anwendung, die die Revision verwendete und die entfallen oder nicht bereit sind, lassen das Hochstufen mit dem Problem scheitern, das ein Schreibvorgang erhielte. Das Hochstufen braucht eine Berechtigung, die live veröffentlicht; eine, deren Änderungen auf eine Prüfung warten, erhält forbidden, und eine Playlist, die noch keine Person genehmigt hat, ist playlist_not_approved. Eine Revision, deren Inhalt bereits aktuell ist, ändert nichts. Das Hochstufen ist eine Premium-Funktion: Ein Plan ohne sie antwortet mit feature_not_in_plan (Exit 8), während playlist revisions und playlist revision show in jedem Plan enthalten sind.

playlist delete#

Eine Playlist löschen.

playlist delete <id> [--expect-rev REVISION]
ParameterTypErforderlichStandardNotizen
<id>stringjakeineDie pl_ Playlist-ID.
--expect-rev REVISIONstringneinkeineOptionale Revisionsvoraussetzung. Weglassen, um die aktuelle Ressource zu schreiben. Ein übergebener veralteter Wert ist revision_conflict: erneut abrufen, erneut anwenden, erneut versuchen.
screenrig playlist delete pl_01EXAMPLEPLAYLIST000000

Eine Playlist wird nicht gelöscht, solange ein Bildschirm, archiviert oder noch in der Kopplung, sie als Standard, in seinem Playlist-Zeitplan oder als Übernahme hat, solange ein Bildschirmordner sie als Standard hat oder solange eine Kampagne sie abspielt: Die Antwort ist resource_conflict (Exit 5). Ändern Sie diese zuerst.

playlist export#

Bild- und Videodateien, Soundtrack-Audio und iframe-URLs als portables Playlist-Bundle exportieren.

playlist export <id> --output DIRECTORY [--skip-applications]
ParameterTypErforderlichStandardNotizen
<id>stringjakeineDie pl_ Playlist-ID.
--output DIRECTORYPfadjakeineZielverzeichnis. Es darf noch nicht existieren; das Bundle wird über ein temporäres Geschwister geschrieben und an den Platz umbenannt.
--skip-applicationsbooleanneinausAnwendungsprimitive sowie leere oder von Anwendungen gesteuerte Seiten verwerfen. Mindestens eine Seite muss übrig bleiben. Das Ergebnis listet die IDs der übersprungenen Primitive und Seiten auf.
screenrig playlist export pl_01EXAMPLEPLAYLIST000000 --output ./lobby-bundle

Das Bundle enthält ein Manifest, das Playlist-Dokument und inhaltsadressierte Bild-, Video- und Soundtrack-Audiodateien. Es enthält name, audio und pages; ein format und das fields einer Vorlage bleiben zurück. Dynamische Selektoren all, tag und folder werden als exakte IDs festgehalten, iframe-URLs bleiben erhalten und Kommentare sind ausgeschlossen.

Karten, Streams und adslot-Seiten stoppen den Export vor dem Download der Medien. Anwendungen stoppen ihn ebenfalls standardmäßig; --skip-applications entfernt Anwendungsprimitive sowie leere oder von Anwendungen gesteuerte Seiten und meldet die IDs der übersprungenen Primitive und Seiten. Mindestens eine Seite muss übrig bleiben. Karten, Streams und adslot-Seiten stoppen den Export auch mit dieser Option.

Für ein bearbeitbares Dokument, das Karten- und Anwendungsreferenzen beibehält, verwenden Sie screenrig playlist show pl_01EXAMPLEPLAYLIST000000 --output playlist.json. Das Dokument verwendet vorhandene Ressourcen desselben Projekts.

playlist import#

Erstellen Sie eine Playlist aus einem Bundle-Verzeichnis oder aktualisieren Sie eine bestehende daraus.

playlist import <directory> [--name NAME] [--update ID [--expect-rev REVISION]] [--poll-ms MS] [--note TEXT]
ParameterTypErforderlichStandardNotizen
<directory>PfadjakeineEin Bundle-Verzeichnis, geschrieben von playlist export.
--name NAMEstringneinName der Bundle-Playlist1 bis 120 Zeichen. Benennt die neue Playlist oder benennt die Playlist um, die --update ersetzt.
--update IDstringneineine neue Playlist wird erstelltDiese pl_ Playlist aktualisieren statt eine neue zu erstellen. Betrifft jeden zugewiesenen Bildschirm. Akzeptiert optional --expect-rev.
--expect-rev REVISIONstringneinkeineMit --update: die aktuelle Revision der Ziel-Playlist.
--poll-ms MSintegernein1000Intervall für das Abfragen von Uploads, während Medien bereit werden.
--note TEXTstringneinkeineEine Notiz für die Person, die die Änderung überprüft, wenn sie auf eine Überprüfung wartet, maximal 280 Zeichen.
screenrig playlist import ./lobby-bundle
screenrig playlist import ./lobby-bundle --name "Lobby loop (copy)"
screenrig playlist import ./lobby-bundle --update pl_01EXAMPLEPLAYLIST000000

Anzeigenamen von Playlists können sich wiederholen. Import erstellt eine separate Playlist, auch wenn der Name übereinstimmt; verwenden Sie --update mit einer ID, um eine vorhandene Playlist zu ersetzen.

Import validiert das gesamte Bundle lokal, bevor es das Projekt berührt: Manifest, Dokument, Pfade, Medientypen, Längen und Hashes. Bestehende Medien werden bei exaktem Dateinamen-, Medientyp-, Byte-Längen-, Hash- und Tag-Abgleich wiederverwendet; der Rest wird ohne Konvertierung hochgeladen, und die Playlist wird erst geschrieben, wenn jedes Objekt bereit ist. data meldet mode (create oder update), source_playlist_id, playlist, directory und media mit total, reused und uploaded.

Unter Propose-Zugriff oder in einem Projekt, das eine Überprüfung von Agentenänderungen erfordert, wird das Medium trotzdem hochgeladen, und der Schreibvorgang der Playlist wird zu einer Überprüfung: data.status ist pending_review, data.review nennt sie und data.next ist screenrig reviews show ID. Auf dem Bildschirm ändert sich nichts, bis eine Person genehmigt.

Import löscht oder kürzt entfernte Medien niemals. Wenn ein späterer Schritt nach Beginn eines Uploads fehlschlägt, listet der Fehler die bestätigten bereiten Objekte auf und gibt an, ob der Playlist-Schreibvorgang begonnen hat. Ein erneuter Versuch desselben Bundles verwendet diese Objekte wieder.

playlist replace-release#

Den Austausch einer Anwendungsfreigabe in einer Playlist als Vorschau anzeigen oder anwenden, mit den Bildschirmen, die er erreicht.

playlist replace-release <id> --page PAGE_ID --primitive PRIMITIVE_ID --release-id REL_ID
                         [--apply [--expect-rev REVISION] [--expect-impact TOKEN] [--note TEXT]]
ParameterTypErforderlichStandardNotizen
<id>stringjakeineDie pl_ Playlist-ID.
--page PAGE_IDstringjakeineDie exakte ID der Seite, die die Anwendung enthält.
--primitive PRIMITIVE_IDstringjakeineDie exakte ID des application-Primitivs auf dieser Seite.
--release-id REL_IDstringjakeineDie neue unveränderliche rel_-Version, aus data.application.release_id von app update.
--applybooleanneinausDie Ersetzung schreiben. Ohne dies ist der Befehl eine schreibgeschützte Vorschau.
--expect-rev REVISIONstringneinkeineMit --apply: die Playlist-Revision aus der Vorschau. Eine andere aktuelle Revision ist revision_conflict, und der Server prüft dies atomar.
--expect-impact TOKENstringneinkeineMit --apply: data.impact aus der Vorschau. Haben sich die Ersetzung oder die betroffenen Bildschirme inzwischen geändert, ist der Schreibvorgang resource_conflict: erneut eine Vorschau erstellen.
--note TEXTstringneinkeineMit --apply: eine Notiz für die Person, die die Änderung überprüft, wenn sie auf eine Überprüfung wartet.
screenrig playlist replace-release pl_01EXAMPLEPLAYLIST000000 --page board-page --primitive board --release-id rel_NEW
screenrig playlist replace-release pl_01EXAMPLEPLAYLIST000000 --page board-page --primitive board --release-id rel_NEW --apply

Die Vorschau listet die aktiven, auf Kopplung wartenden und archivierten Bildschirme auf, deren Standardzuweisung, gespeicherte Zeitplaneinträge (pausierte und künftige eingeschlossen), Übernahme oder aktuell wirksame Playlist (Kampagnen- und geerbte Ordnerwiedergabe eingeschlossen) die Playlist referenziert. data enthält previous_release_id, release_id, revision, affected_screens (jeweils mit id, label, state und revision), impact und applied. Ein direktes --apply überspringt die Bildschirmerhebung, sodass affected_screens weggelassen wird, sofern nicht --expect-impact angegeben ist. Eine bereits fixierte Freigabe gelingt ohne Schreiben. In Prüfung schlägt --apply die neue Fixierung vor. Siehe Eine Anwendungsfreigabe ersetzen.

Das Playlist-Dokument

Eine Playlist besteht aus name (1 bis 120 Zeichen) plus pages (1 bis 100), mit einem optionalen audio-Soundtrack und einem optionalen format. Jede Seite trägt id, canvas, transition, advance, optional visibility, optional audio_cue und primitives (1 bis 24). Seiten-, Primitiv- und Track-IDs sind ein Buchstabe gefolgt von bis zu 63 Buchstaben, Ziffern, _ oder -; Seiten-IDs sind in der Playlist eindeutig und Primitiv-IDs auf ihrer Seite. Ein canvas nimmt width und height von 1 bis 1.000.000, ein background und ein optionales viewport_fit: siehe Seitenhintergrund und Bewegung.

Ein format macht eine Playlist zu einer Videowand, {displays, arrangement, orientation} mit columns für ein grid, oder zu einem Streifen, {region, orientation}. Eine Wand hat 2 bis 12 Displays mit 1920 x 1080 (1080 x 1920 im Hochformat), jede gewöhnliche Seite hat die Leinwand der Wand, und das displays eines Primitivs nennt die Kacheln, die es abdeckt, anstelle von rect. Siehe Videowände und Streifen. Eine Werbeplatz-Seite, {id, type: "adslot", adslot_id} mit optionalem visibility, enthält keine Leinwand und keine Primitive; eine Playlist enthält höchstens 16 davon und behält eine gewöhnliche Seite ohne visibility.

Eine Vorlage fügt dem Dokument fields hinzu, [{name, label, type, required, max_length?}] mit type von text, media oder url, und kann jedes Primitiv als locked: true markieren. Eine Seite liest ein Feld als {field.NAME} in den params einer Karte (Text- und URL-Felder), als selector.media_id eines Bild- oder Videos (ein Medienfeld) oder als gesamtes src eines Iframes (ein URL-Feld). Jeder Platzhalter muss ein deklariertes Feld des richtigen Typs nennen, jedes Feld muss gelesen werden, und ein gesperrtes Primitiv liest keines; playlist validate prüft das offline. Nur die Inhaberin oder der Inhaber oder ein Mitglied, das genehmigen darf, ändert ein gesperrtes Primitiv (primitive_locked). Eine Vorlage deklariert höchstens 16 Felder: name hat 1 bis 32 Kleinbuchstaben, Ziffern oder Unterstriche, label bis zu 60 Zeichen und max_length eines Textfelds (Standard 200) bis zu 2000. Ein optionales Medien- oder URL-Feld ohne Wert lässt das Primitiv weg, das es liest. fields zu deklarieren und ein Primitiv zu sperren gehört zu den Playlist-Vorlagen, einer Premium-Funktion. Ein Videowand-format mit 2 oder 3 Displays erfordert Plus, eines mit 4 bis 12 Displays Enterprise. Ein Plan ohne die Funktion antwortet mit feature_not_in_plan und required_plan, während ein Schreibvorgang, der behält, was die Playlist schon hat, offen bleibt. Eine Kopie aus einer Vorlage zu erstellen ist in jedem Plan enthalten.

Die sechs Primitive sind image, hochgeladenes video, Live-stream, Web-iframe und application sowie card. Text und Rahmen sind keine Wire-Typen: Platzieren Sie eine card für Live-Text oder laden Sie ein fertiges Standbild hoch, das Ihr Agent erstellt hat, und platzieren Sie es als Bild.

Ein Stream verwendet eine oder zwei geordnete Quellen mit einzigartigen Protokollen und ein bereites Bild aus demselben Projekt als fallback_media_id. Verwenden Sie höchstens einen Stream pro Seite und dauerbasierte Fortschritte. HLS verwendet eine öffentliche HTTPS-URL; Android- und Qt-Player verbinden sich einschließlich der Anmeldedaten direkt mit RTSP-Kamerastreams. Die Details zum Kameratransport beschreiben die URL-Formate, die jeder Player öffnet; optionales direktes UDP/MPEG-TS-Multicast auf Android und Qt verwendet eine IPv4-Gruppe in 239/8 und einen Port. Eine Quelle kann nur ihre url angeben und das Schema das Protokoll bestimmen lassen. Andere Player wählen die HLS-Alternative oder zeigen den Fallback an. Stream-Bytes werden für die Wiedergabe nicht zwischengespeichert. Audio ist standardmäßig stummgeschaltet; muted auf false gesetzt spielt es ab, nach den unten beschriebenen Regeln für den Ton eines Videos. Der Import und Export von Playlist-Bundles unterstützt keine Streams.

{
  "id": "live",
  "primitive": "stream",
  "sources": [
    {
      "protocol": "udp-mpegts",
      "group": "239.10.0.1",
      "port": 5000
    },
    {
      "protocol": "hls",
      "url": "https://example.com/live.m3u8"
    }
  ],
  "fallback_media_id": "med_fallback",
  "muted": true,
  "rect": {
    "x": 0,
    "y": 0,
    "width": 1920,
    "height": 1080
  },
  "layer": 0,
  "content_fit": "contain"
}

Verwenden Sie dieses Primitive auf einer Seite mit advance: {"mode":"duration","after_ms":30000}. Ersetzen Sie den Beispiel-Feed und die Fallback-ID. Player-Anforderungen und Transport-Einrichtung.

Jedes Primitiv ist flach: id, primitive, die eigenen Felder dieses Primitivs, dann rect, layer, content_fit und optional enter und motion. Es gibt kein verschachteltes Inhaltsobjekt. rect ist x, y, width und height in Leinwandeinheiten und layer eine ganze Zahl von 0 bis 1024. Ein rect darf für den Anschnitt über die Leinwand hinausreichen: Player passen den Inhalt an das gesamte rect an und beschneiden dann auf die Leinwand, verwenden Sie also content_fit cover oder fill, um die sichtbare Leinwand zu füllen. Eine Karte wird durch layout platziert und benötigt ein rect nur für free; bei einer Wand-Playlist wird rect durch displays ersetzt.

Bild- und Video-Primitive erfordern ein selector. selector.by ist id mit einem bereiten media_id und one_at_a_time false, ids mit 1 bis 1.024 eindeutigen bereiten media_ids, all für jedes bereite Objekt dieses Primitivs, tag passend zu ^[A-Za-z0-9]{1,32}$, oder folder mit dem folder_id eines vorhandenen mfd_ Medienordners, der die bereiten Dateien direkt darin abspielt und keine seiner Unterordner. Setzen Sie media_id nicht auf das Primitiv selbst und senden Sie keine vom Server aufgelösten Elemente. Ein application-Primitiv fixiert ein release_id und ein iframe-Primitiv nimmt ein src und einen title von 1 bis 200 Zeichen, sodass keines von beiden einen Selektor akzeptiert. src ist jede http- oder https-Seite, die der Bildschirm erreichen kann, einschließlich einer LAN-Seite oder einer Seite hinter einem Login; ein YouTube-Link wird als sein automatisch abspielendes Embed gespeichert. src und das optionale fallback_src eines Iframes können Bildschirm-Token wie {screen.field.kiosk_id} tragen, und ein application-Primitiv kann params mit denselben Token tragen, sodass eine Playlist jedem Bildschirm seine eigene Seite gibt. Die Player für Android, Amazon Signage Stick, Linux, Raspberry Pi und Windows öffnen die Seite selbst. Die Player-Web-App und die Player für macOS, Samsung Tizen, LG webOS und BrightSign binden sie in einen Frame ein, sodass eine Seite, die X-Frame-Options sendet (DENY, SAMEORIGIN oder das veraltete ALLOW-FROM), oder eine Content-Security-Policy-frame-ancestors-Liste ohne den Ursprung des Players dort einen blockierten Frame zeigt, und die Player-Web-App zeigt nur https-Seiten ohne Login in der Adresse. Erkennt das Veröffentlichen eine öffentliche HTTPS-Seite, die das Einbetten verweigert, gelingt der Schreibvorgang trotzdem, und die CLI gibt den warnings-Eintrag des Servers aus: Code iframe_framing_refused, page_id, primitive_id und src, den Header, der abgelehnt hat, und den nächsten Schritt (eine Seite verwenden, die das Einbetten vom Ursprung des Players erlaubt, oder deren Inhaber bitten, diesen Ursprung zu erlauben). Der Server hängt außerdem eine playlist.iframe_framing_refused-Warnung an das Ereignisprotokoll an, eine pro ablehnender Seite, die events list mit primitive_id ausgibt. Eine LAN-Seite, eine http-Seite und eine Seite, die der Server innerhalb weniger Sekunden nicht erreicht, werden nicht geprüft. Ein Player meldet eine Playlist als spielend, sobald ihr Manifest auf dem Bildschirm ist, sodass ein verifiziertes Veröffentlichen nicht beweist, dass eine Iframe-Seite gerendert wurde: Handeln Sie auf die Warnung oder sehen Sie auf den Bildschirm. Beide Web-Primitive erfordern content_fit von fill, weil keines eine intrinsische Größe hat.

Ein iframe nimmt außerdem reload_s (0, der Standard, lädt nie neu; 60 bis 86400 lädt src alle reload_s Sekunden erneut, solange die Seite auf dem Bildschirm ist), fallback_src (die Seite, die angezeigt wird, wenn src nicht lädt, mit den Formen und Regeln von src; ein wiederhergestelltes src ersetzt sie beim nächsten Neuladen) und navigation_allowlist (1 bis 64 Host-Quellen der Form [scheme://]host[:port][path], etwa example.com, *.example.com oder https://example.com/docs/; mit einer Liste erreichen die Links, skriptgesteuerten Navigationen und Weiterleitungen der Seite nur src, fallback_src und passende Adressen; weglassen für keine Einschränkung, eine leere Liste wird abgelehnt). Ein eingefügter <iframe>-Embed-Code wird auf sein src gelesen. Eine Freigabe, ein „Im Web veröffentlichen“- oder Einbettungslink von Google Slides, Docs oder Sheets oder ein Embed-Link von Microsoft 365 wird für den Bildschirm neu aufgebaut gespeichert: Slides- und PowerPoint-Präsentationen laufen in einer Schleife, eine Slides-Präsentation schaltet mit der eigenen Verzögerung des Links weiter, begrenzt auf die Seitendauer (geben Sie der Seite die Zeit der gesamten Präsentation), und Docs, Sheets, Word und Excel laden alle 5 Minuten neu. Eine Datei, die Betrachter zur Anmeldung auffordert, wird mit document_not_shared abgelehnt, dessen Detail die zu ändernde Freigabeeinstellung nennt. Siehe Eine Webseite, ein Video oder ein Dokument anzeigen.

advance.mode ist duration mit after_ms, das auf einer Seite mit genau einem YouTube-Video (keine Playlist und kein Livestream) auch until mit dem Wert video_end tragen kann, damit die Seite bis zum Ende des Videos läuft und after_ms die Anzeigedauer ist, wenn der Bildschirm die Länge des Videos nicht lesen kann, media_end auf einer Seite mit genau einem Bild- oder Videoelement, audio_end auf einer Seite, deren audio_cue eine Soundtrack-Spur benennt, oder application mit max_ms, wenn die App ihren eigenen Zug beendet, indem sie window.screenrig.nextPage() aufruft. Eine application-Seite benötigt genau ein als controller markiertes Element; jeder andere Modus verbietet das. after_ms, max_ms und dwell_ms sind ganze Millisekunden von 1.000 bis 86.400.000, und ein Bild auf einer media_end-Seite benötigt dwell_ms. Eine Seite enthält höchstens ein stream und höchstens zwei application- oder iframe-Elemente, und media_end verbietet beides.

transition.type ist eines von crossfade, swipe-left, swipe-right, swipe-up, swipe-down, dip, wipe-left, wipe-right, wipe-up, wipe-down, slide-left, slide-right, slide-up, slide-down oder stinger. duration_ms ist erforderlich, Werte von 0 bis 60000. playlist init schreibt einen 200 ms Crossfade. Swipe bewegt beide Seiten zusammen wie ein Karussell. Slide schiebt die eingehende Seite über die ausgehende, die um ein Viertel mitgezogen wird. Wipe deckt die eingehende Seite hinter einer bewegten harten Kante auf. Dip blendet die ausgehende Seite zu einer Vollfarbe aus und dann zur eingehenden Seite ein; color ist ein optionaler #RRGGBB, Standard #000000, und gilt nur für dip. Richtungsnamen bezeichnen die Bewegungsrichtung: wipe-left ist eine Kante, die nach links bewegt wird. ease ist optional: linear, in, out oder in-out; Standard ist linear für crossfade und swipe-* sowie in-out für dip, wipe-* und slide-*; nicht erlaubt bei stinger. Die eingehende Seite besitzt ihre eigene Transition. Die erste Seite einer Playlist spielt keine Transition ab.

Ein Stinger ist eine thematische Vollbildgrafik, die die ausgehende Seite überdeckt, während der Bildschirm bedeckt ist die eingehende Seite einblendet und sie dann wieder freigibt. Verwenden Sie ihn, um einen Abschnitt einer Playlist zu benennen: Setzen Sie ihn auf die erste Seite des Abschnitts. Das stinger-Objekt ist für type: "stinger" erforderlich und bei anderen Typen nicht erlaubt. Alle seine Mitglieder sind optional. theme ist eines von neomustard (Standard), cyanotype, propaganda, signal, avant-garde, bloom oder primetime und entspricht den Kartenthemen. title ist bis zu 40 Zeichen lang und subtitle bis zu 60, eingestellt im Anzeigetyp des Themas. logo ist media: plus die ID eines bereiten Bildes im Projekt, zum Beispiel media:med_01EXAMPLE. accent ist ein optionales #RRGGBB, das den Akzent des Themas ersetzt. duration_ms für einen Stinger liegt zwischen 2000 und 6000 und deckt den gesamten Bumper ab; typische Längen sind 2700 bis 4000. Der Titel bleibt für hang_ms vollständig sichtbar, 0 bis 6000, Standard 1000 (eine Sekunde), und hang_ms beträgt höchstens 60 Prozent von duration_ms; ein längeres Verweilen benötigt eine längere duration_ms. Ein Player, der keinen Stinger darstellen kann, spielt eine Crossfade mit derselben Länge. Siehe die Live-Stinger-Karten-Seite, um die Übergangswiedergabe zu sehen.

Das folgende Beispiel zeigt einen Stinger-Seitenübergang:

{ "type": "stinger", "duration_ms": 3500, "stinger": { "theme": "primetime", "title": "BREAKFAST", "subtitle": "Served until 11", "logo": "media:med_01EXAMPLE", "hang_ms": 1000 } }

Ein optionales enter Objekt an einem Primitiv fügt eine Objektanimation hinzu: fade-up, fade-down, fade-left, fade-right, fade-in, zoom-in oder zoom-out, und ein optionales stagger von 0 bis 8 verzögert den Start um 120 ms pro Schritt. Ein optionales motion hält ein Primitiv nach dem Eintritt in Bewegung: spin und drift drehen oder verschieben ein Bild oder Video, und path bewegt ein Bild, Video, eine Anwendung oder ein Iframe entlang von Wegpunkten. Siehe Seitenhintergrund und Bewegung.

Ein optionales Seiten-visibility Objekt begrenzt, wann die Seite abgespielt wird: ein erforderliches enabled Boolean, optionale zivile from und until Grenzen und bis zu 16 wiederkehrende windows von Tagen und zivilen Zeiten. from und until sind YYYY-MM-DDTHH:MM in der Zeitzone jedes Bildschirms, from inklusiv und until exklusiv und später als from; ein Fenster ist days (mon bis sun) mit start und end als HH:MM, zusammen angegeben oder beide weggelassen für den ganzen Tag, und ein end bei oder vor start überschreitet Mitternacht. enabled: false blendet die Seite aus; enabled: true benötigt mindestens eines von from, until, windows oder data. Jede Playlist behält mindestens eine Seite ohne jegliches visibility Feld. Ein Bildschirm liest diese Zeiten in seiner effektiven Zeitzone: seiner Überschreibung, sonst der vom Player gemeldeten Zone, sonst UTC.

Eine Seitenbedingung visibility.data, {key, path?, equals?}, zeigt die Seite nur an, solange ein Kartendaten-Dokument passt: key ist ein Kartendaten-Schlüssel oder eine Karten-ID, path ein RFC-6901-Zeiger in das Dokument und equals eine Zeichenfolge, Zahl, ein Boolean oder null (weglassen, um zu prüfen, ob der Wert existiert). Der Schlüssel {screen.weather} liest das Wetter am eigenen Standort jedes Bildschirms, den screen update ID --location LAT,LON festlegt: {"enabled":true,"data":{"key":"{screen.weather}","path":"/condition","equals":"rain"}} zeigt die Seite nur an, solange es dort regnet, wo der Bildschirm steht. Das Wetterdokument enthält condition (clear, cloud, fog, rain, snow, storm oder wind), band (freezing unter 0 °C, cold 0 bis 9, mild 10 bis 17, warm 18 bis 24, hot ab 25), temperatureC in ganzen Grad und isDay. Es ist das aktuelle Wetter der 0,25-Grad-Zelle des Bildschirms, etwa stündlich aktualisiert, keine Vorhersage. Ein Bildschirm ohne Standort zeigt die Seite nie an, und das Veröffentlichen lehnt einen path oder einen equals ab, den das Dokument nicht enthalten kann, etwa cloudy statt cloud. Bei einem Player, der die Host-Fähigkeit page.conditions nicht deklariert, ist eine solche Seite deaktiviert. Datenbedingungen sind eine Plus-Funktion: Ohne sie erhält ein Schreibvorgang, der einer Seite eine visibility.data-Bedingung hinzufügt, die sie noch nicht hat, feature_not_in_plan, während das Behalten oder Entfernen einer gespeicherten Bedingung und die Sichtbarkeit nach Zeitfenstern offen bleiben. Behalten Sie eine gewöhnliche Seite ohne visibility als Ersatz.

Ein video- oder stream-Primitive spielt stumm, sofern es nicht muted auf false setzt. Dann spielt es seinen Ton mit der Lautstärke des Bildschirms, solange seine Seite aktuell ist, und diese Seite pausiert den Playlist-Soundtrack, der auf der nächsten Seite ohne Ton an derselben Stelle fortgesetzt wird. Mehrere Primitive auf einer Seite spielen alle ihren Ton. Eine Seite mit Ton kann kein audio_cue tragen: Ein Schreibvorgang, der eines hinzufügt, antwortet mit invalid_request bei pages[i].audio_cue, „a page with sound cannot cue the soundtrack“, während eine gespeicherte ältere Seite, die beides hat, weiterspielt. Werbung bleibt stumm.

Ein optionales Top-Level-audio Objekt fügt einen Soundtrack hinzu, der kontinuierlich spielt, während sich die Seiten ändern, und pausiert auf einer Seite mit Ton. tracks listet 1 bis 128 Einträge in Wiedergabereihenfolge auf, jeder mit einer eindeutigen id (dem Seiten-ID-Muster) und der media_id eines bereiten audio Medienobjekts. loop ist standardmäßig true und startet nach dem letzten Track wieder beim ersten; volume ist standardmäßig 1 und reicht von 0 bis 1, multipliziert mit der Player-Lautstärke; cued ist standardmäßig false und true stoppt den Soundtrack nach jedem Track, sodass ein Track nur spielt, wenn eine Seite audio_cue ihn startet. Eine gewöhnliche Seite kann audio_cue mit einer track ID aus dieser Liste und einem optionalen restart Boolean (Standard false) tragen: Wenn die Seite erscheint, wechselt der Player zu diesem Track von dessen Anfang, startet ihn nur neu, wenn er bereits spielt und restart true ist. Cues sind Hinweise, Werbeplatz-Seiten können sie nicht tragen, und ein Cue ohne Soundtrack wird abgelehnt. Eine Seite mit advance {"mode":"audio_end"} endet, wenn der Track, den ihr audio_cue benennt, endet, benötigt also diesen Cue und einen Soundtrack, nimmt kein after_ms und folgt den duration Regeln für Bild- und Video-Primitives; ein stream Primitive benötigt weiterhin eine duration Seite, und eine Anwendung auf der Seite ist niemals deren Steuerung; max_ms ist ein optionaler Hinweis, den der Server überschreibt. playlist update ersetzt das gesamte Dokument, sodass das Weglassen von audio den Soundtrack entfernt; playlist patch behält ihn, sofern nicht audio angegeben wird, und --clear-audio oder audio: null entfernt ihn. Ein Streifen hat keinen Soundtrack. Soundtrack-Erstellung.

Weitere Befehlsgruppen