mimoLive® - Benutzerhandbuch

Beispiele für die Verwendung der API

Inhaltsübersicht

Voraussetzungen

- Öffnen Sie das Dokument, das Sie bearbeiten möchten, in mimoLive.
- Stellen Sie sicher, dass sich das Dokument in einem fertigen Zustand befindet, damit sich die API-Endpunkte wie Ebenen nicht mehr ändern. Bitte beachten Sie, dass, wenn Sie eine Ebene entfernen und wieder hinzufügen, diese Ebene eine andere Ebenen-ID hat, wenn Sie sie über die API ansprechen. Das Neuanordnen von Ebenen oder das Hinzufügen von Ebenenvarianten ändert die Ebenen-ID jedoch nicht.
- Aktivieren Sie die HTTP-Server in den mimoLive Fernsteuerungs-Einstellungen. Aktivieren Sie die Option "Fernsteuerungszugriff zulassen":

9e0a2b0b 6a64 4093 b15b 24aa12dead32

Bitte notieren Sie sich die IP-Nummer bzw. IP-Adresse mit der Portnummer von mimoLive für die weitere Verwendung bei der Arbeit mit dem HTTP API.

Möglichkeiten der Fernsteuerung von mimoLive

Steuerung von mimoLive mit Fernbedienungsoberflächen

Am effektivsten ist es, eine eigene Fernbedienungsoberfläche für Ihr mimoLive-Dokument zu erstellen, die auf einem iPad, iPhone oder einem anderen Gerät mit einem Internet-Browser laufen kann.

Steuerung von mimoLive mit php

Wir haben ein gut dokumentiertes PHP-Beispielskript auf GitHub:
https://github.com/boinx/mimoLive-HTTP-Demo

Steuerung von mimoLive mit CURL

So steuern Sie mimoLive über HTTP können Sie den Bash-Befehl "curl" verwenden. Damit die curl-Befehle funktionieren, müssen Sie die ID des mimoLive-Dokuments finden, das Sie bearbeiten möchten.

Steuerung von mimoLive mit Automationsebene

Die Automationsebene können einige einfache Befehle ausführen, um Aktionen in mimLive durch ihre API Endpunkte. Außerdem verfügt es über einen httpRequest()-Befehl, mit dem jede Art von GET Aktionen anfordern die HTTP API fähig ist.

Steuerung von mimoLive mit Apple Script

Derzeit unterstützt mimoLive Apple Script nicht von Haus aus. Sie können jedoch einen Workaround verwenden, um mimoLive zu erreichen: Es gibt einen "do shell script"-Befehl in Apple Script, mit dem Sie Bash-Befehle wie "curl" ausführen können. Der vorherige Abschnitt erklärt, wie man einen curl-Befehl erstellt, um eine bestimmte Ebene oder einen Ebenenwert zu manipulieren.

Fallstricke in Apple Script

In Apple Script gibt es zwei Fallstricke, wenn Sie einen Terminalbefehl wie "curl" in den Befehl do shell script übertragen: 1. Allen " muss ein \ vorangestellt werden, damit der Apple-Script-Parser weiß, dass dies nicht die Endmarkierungen für den Befehl do shell script sind. Das \ ist ein Escape-Zeichen, das dem Parser mitteilt, dass er das folgende Zeichen ignorieren soll. 2. Wenn Sie mehrere Textteile mit & verketten, ist dies für Apple-Script eine "Liste von Text" und kein einzelner Text. Der Shell-Befehl do funktioniert nicht mit "list of text" und daher müssen Sie den Text mit dem "as text" am Ende Ihres curl-Befehls wieder in einen einzelnen Text umwandeln

Wenn Sie mit Ihrem curl-Befehl zufrieden sind, müssen Sie ihn in einen "do shell script"-Befehl in Apple Script verpacken:

*

Bitte stellen Sie sicher, dass Sie xxxxxxxxx durch Ihren spezifischen Layer-API-Endpunkt ersetzen!

set layerAPIEndpoint to "xxxxxxxxx" -- in our example this would be "http://172.28.30.202:8989/api/v1/documents/458706932/layers/BA868701-8131-49CB-8EDD-8C7E6E7CD60B"

set lowerThirdTitle to "Hello World!"
do shell script "curl -d '{\"input-values\":{\"tvGroup_Content__Title\":\"" & lowerThirdTitle & "\"}}' -H \"Content-Type: application/json\" -X PUT \"" & layerAPIEndpoint & "\"" as text

Das folgende Apple-Beispielskript zeigt, wie man eine Ebene jede halbe Stunde zur vollen Stunde einschalten kann: Dies könnte für kommerzielle Overlays nützlich sein. Stellen Sie sicher, dass Sie eine Ebene verwenden, die sich nach einer bestimmten Zeit selbst ausschaltet (z. B. eine Placer-Ebene mit einer nicht-schleifenden Filmquelle).

*

Bitte stellen Sie sicher, dass Sie xxxxxxxxx durch Ihren spezifischen Layer-API-Endpunkt ersetzen!

-- configure your Layer API Endpoint:
set layerAPIEndpoint to "xxxxxxxxx" -- in our example this would be "http://172.28.30.202:8989/api/v1/documents/458706932/layers/BA868701-8131-49CB-8EDD-8C7E6E7CD60B"
-- repeat endlessly:
repeat
	-- get the seconds last in this hour
	set currentDate to current date
	set secondsToNextHour to 3600 - ((minutes of currentDate) * 60 + (seconds of currentDate))
	-- --------------------------------------------
	-- The following code snippet is useful only if you want to
	-- switch the layer live on half hours also.
	-- if you don't want this behaviour you can delete this part.
	-- --------------------------------------------
	-- check if we are currently in the first half of the hour
	if secondsToNextHour > 1800 then
		-- yes, we are in the first half of the hour, so only wait half the time
		set secondsToNextHour to secondsToNextHour - 1800
	end if
	-- --------------------------------------------
	-- wait until the time to trigger the layer
	delay secondsToNextHour
	-- set the specified layer to live:
	do shell script "curl \"" & layerAPIEndpoint & "/setLive\"" as text
	-- wait a couple of seconds to make sure we don't glitch in time
	delay 5
end repeat

Steuerung von Elementen der Benutzeroberfläche in mimoLive

Erhalten einer API Endpunkt

API-Endpunkte sind wichtig, um bestimmte Elemente in Ihrem mimoLive-Dokument anzusprechen. Eine Liste der verfügbaren API-Endpunkte finden Sie unter API-Endpunkte.

Vor mimoLive 5.5 war es schwierig, die Dokument-ID und z.B. eine Layer-ID mit Terminal-Befehlen zu erhalten, die durch lange JSON Daten. Seit mimoLive 5.5 ist es viel einfacher:

Kopieren Sie zunächst das mimoLive HTTP Server-Basis URL aus dem Abschnitt Fernsteuerung des mimoLive-Einstellungsfensters (siehe Screenshot oben). Öffnen Sie einen Texteditor (z.B. TextEdit von Apple) und fügen Sie den Inhalt der Zwischenablage in ein neu erstelltes Textdokument ein. Bitte stellen Sie sicher, dass es keine Backslash am Ende der Zeichenfolge URL! Das Ergebnis sollte wie folgt aussehen:

http://172.28.30.202:8989

Im mimoLive-Dokumentfenster können Sie mit der rechten Maustaste (oder Control-Klick, oder Zwei-Finger-Klick) auf das gewünschte Objekt (z.B. einen Layer, eine Quelle, einen Button eines Layer-Controls) klicken, um ein Kontextmenü zu erhalten. Es gibt einen Menüpunkt, mit dem Sie die API Endpunkt zur macOS-Zwischenablage zur Verwendung in Ihrem mimoLive API Projekt.

bc6c7e19 e991 48a0 a9b8 b56d690f19b4

Manchmal ist es wichtig, eine bestimmte Ebenenvariante anzusprechen und nicht die Ebene im Allgemeinen. Wenn Sie mit der rechten Maustaste auf den Parameter einer Ebene klicken, sehen Sie, dass es verschiedene API Endpunkte entweder für die aktuelle Live-Ebene oder die spezifische Ebenenvariante:

6120370f a575 43db 891b ef3a91d5aec5

Gehen Sie zurück zu Ihrem Texteditor und fügen Sie die soeben kopierte API Endpunkt nach der HTTP Server-Basis URL. Jetzt ist die URL in Ihrem Textbrowser sollte folgendermaßen aussehen:

http://172.28.30.202:8989/api/v1/documents/458706932/layers/BA868701-8131-49CB-8EDD-8C7E6E7CD60B

Dies ist die letzte API Endpunkt, um eine Ebene in Ihrem Dokument zu adressieren. In diesem Beispiel 458706932 ist die Dokument-ID und BA868701-8131-49CB-8EDD-8C7E6E7CD60B ist die spezifische Ebenen-ID einer bestimmten Ebene in diesem Dokument.

Wenn Sie mit der rechten Maustaste auf bestimmte Elemente der Benutzeroberfläche klicken, wird ein Kontextmenü angezeigt, über das Sie den jeweiligen API-Endpunkt abrufen können:

  • Quellen
  • Schichten
  • Ebenen-Varianten
  • Ebene Parameter
  • Ausgabeziele
  • Ebenen-Sets
Bildschirmfoto 2024 10 08 um 10.19.00

Beispiel: Einschalten von ON und AUS a Schicht

Mit den abgerufenen API Endpunkt für eine bestimmte Ebene können Sie ihn mit den folgenden Terminalbefehlen ein- und ausschalten.

*

Bitte stellen Sie sicher, dass Sie xxxxxxxxx durch den API-Endpunkt aus dem vorherigen Schritt ersetzen!

curl xxxxxxxxx/setLive
curl xxxxxxxxx/setOff
curl xxxxxxxxx/toggleLive
# our example will look like this:
curl http://172.28.30.202:8989/api/v1/documents/458706932/layers/BA868701-8131-49CB-8EDD-8C7E6E7CD60B/setLive
*

Die URLs funktionieren auch in einem Internet-Browser

Diese URLs (ohne den "curl"-Befehl) können auch in die Adresszeile eines Internet-Browsers eingegeben werden. Sobald Sie auf "Return" klicken, ruft der Browser den mimoLive HTTP-Server auf und führt den von Ihnen angegebenen Befehl aus. Wenn Sie JSON-Daten haben, die Sie an den API-Endpunkt senden müssen, können Sie diese ebenfalls zur URL hinzufügen, siehe "Konvertieren eines CURL-Befehls mit JSON-Daten in eine HTTP-URL für einfache HTTP-Anfragen" unten.

Eine einfache Möglichkeit, die vollständige HTTP-URL zu erhalten, um den Live-Status einer Ebene ein- oder auszuschalten, besteht darin, mit der rechten Maustaste auf die Live-Schaltfläche der Ebene zu klicken, um ein Kontextmenü zu öffnen und "URL kopieren, um Ebene live zu setzen" zu wählen. Dadurch wird die URL in die Zwischenablage kopiert, damit Sie sie verwenden können. Auf dem Screenshot sehen Sie das Kontextmenü für die Schaltfläche Live einer Lower Third-Ebene.

Bildschirmfoto 2024 10 08 um 10.13.16

Beispiel: Ändern eines Wertes einer Ebene

- Alle Parameter eines Layers können über die Funktion HTTP API. Sie müssen den richtigen Schlüssel finden, um einen neuen Wert zu setzen. In unserem Beispiel werden wir den Titel eines Lower Third Schicht mit dem Schlüssel tvGroup_Content__Title. Da wir den neuen Wert in einer JSON Datei zum HTTP Server mit einer PUT Anfrage wird der curl-Befehl ein wenig überfüllt.

*Bitte stellen Sie sicher, dass Sie xxxxxxxxx durch Ihre spezifische Schicht ersetzen API Endpunkt!

curl -d '{"input-values":{"tvGroup_Content__Title":"My new title"}}' -H "Content-Type: application/json" -X PUT "xxxxxxxxx"

Eine schnelle Möglichkeit, eine vollständige HTTP-URL zu erhalten, um die Aktualisierung einer Ebeneneigenschaft auszulösen, besteht darin, mit der rechten Maustaste auf den Namen der Eigenschaft zu klicken, wodurch ein Kontextmenü erscheint, und "URL kopieren, um '.....' zu ändern" zu wählen. "Dieser Menübefehl kopiert eine HTTP-URL in die Zwischenablage, die, wenn sie aufgerufen wird (z.B. in einem Internet-Browser), die Eigenschaft auf ihren aktuellen Wert setzt. Wenn Sie die URL untersuchen, können Sie feststellen, welcher Teil davon geändert werden muss, um Ihre eigenen Daten an diese Eigenschaft zu senden. Im Screenshot sehen Sie das Kontextmenü zum Kopieren der URL zum Ändern des Untertitels einer Lower Third-Ebene.

Bildschirmfoto 2024 10 08 um 10.05.39
http://127.0.0.1:8989/api/v1/documents/xxxxxxxxxxxx/layers/yyyyyyyyyyyy/variants/zzzzzzzzzzzz?include=data.attributes.input-values&fields[input-values]=tvGroup_Content__Subtitle&update=%7B%22input-values%22:%7B%22tvGroup_Content__Subtitle%22:%22mimoLive%20User%22%7D%7D

Der neue Wert in der URL muss URL-kodiert sein!

In diesem Beispiel wird das Leerzeichen zwischen "mimoLive" und "User" als kodiert.

Bewährte Praktiken

Sammlung von Nützlichem API Befehle für Sie zum Erkunden

Einstellung der RTMP URL und Streaming Key eines Live-Streaming-Ausgabeziels:

curl --data '{"data": { "attributes": {"settings": {"rtmpurl":"rtmp://mystreaminghost.com", "streamingkey":"MYTOTALLYSECRETSTREAMKEY"} } } }' --request PATCH http://192.168.0.100:8989/api/v1/documents/xxxxxxxxx/output-destinations/yyyyyyyyyyyyy

Festlegen des Dateinamens und des Pfads für ein File Writer-Ausgabeziel

curl --data '{"data": { "attributes": {"settings": { "location": "~/Destktop/Recordings", "filename": "MyGreatShow %year-%month-%day-%hour-%minute.%extension" } } } }' --request PATCH http://192.168.0.100:8989/api/v1/documents/xxxxxxxxxxxx/output-destinations/yyyyyyyyyyyy

Einstellen der Videoquelle für eine Placer-Ebene

yyyyyyyyyyyyy wird die UUID der Videoquelle. (e.g CCAF4418-367A-415F-AD25-6536C3EF3512)

xxxxxxxxxxxxx wird die API Endpunkt der jeweiligen Schichtvariante. (e.g. http://172.28.30.202:8989/api/v1/documents/2014814935/layers/BA868701-8131-49CB-8EDD-8C7E6E7CD60B/variants/AA868701-8131-49CB-8EDD-8C7E6E7CD60A)

curl -d '{"input-values":{"tvIn_VideoSourceAImage":"yyyyyyyyyyyyy"}}' -H "Content-Type: application/json" -X PUT "xxxxxxxxxxxxxxxx"

Einstellen der Lautstärke einer Ebene, die über einen Audio-Lautstärkeregler verfügt

Mit diesem Curl-Befehl können Sie die Audio-Lautstärke einer Ebene ändern, die über einen Audio-Einstellknopf verfügt (wie die Placer-Ebene). Der Wert "volume" kann Werte zwischen 0.0 und 1.0 annehmen.

xxxxxxxxxxxxx wird die API Endpunkt der Ebene (z. B. http://10.101.2.2:8989/api/v1/documents/13195157/layers/BA868701-8131-49CB-8EDD-8C7E6E7CD60B)

curl -d '{"volume": 0.5}' -H "Content-Type: application/json" -X PUT "xxxxxxxxxxxxxxxx"

Einstellen der Farbe einer Hintergrundebene

xxxxxxxxxxxxx wird die API Endpunkt der jeweiligen Schichtvariante. (e.g. http://172.28.30.202:8989/api/v1/documents/2014814935/layers/BA868701-8131-49CB-8EDD-8C7E6E7CD60B/variants/AA868701-8131-49CB-8EDD-8C7E6E7CD60A)

curl -d '{"input-values":{"tvGroup_Appearance__Color_1":{"red": 1.0, "blue": 0.5, "green": 0, "alpha": 0.5}}}' -H "Content-Type: application/json" -X PUT "xxxxxxxxxxxxxxxx"

Löschen des Dateipfads einer Videoquelle der letzten Aufnahme

In Ihrem Quellenspeicher können Sie eine Quelle für die letzte Aufnahme einrichten, über die Sie auf die letzte Aufnahme zugreifen können, die ein beliebiges Ausgabeziel für Datei-Aufnahmen anzeigt. In einer Kioskanwendung wird es notwendig sein, den Pfad für die letzte Aufzeichnung zu löschen, damit der nächste Benutzer des Senders nicht die Aufzeichnung des vorherigen Benutzers einsehen kann. Mit dem folgenden Befehl der Automatisierungsebene können Sie diese Information aus der Quelle der letzten Aufnahme löschen:

httpRequest(http://127.0.0.1:8989/api/v1/documents/2014814935/sources/2014814935-413AC0A3-AC43-4A7D-A228-6D0181BF1476?update=%7B%22filepath%22%3A%22%22%7D)

Ablage JSON Daten im mimoLive-Dokument

Mit dem "datastores"-Endpunkt können Sie jede Art von Daten im mimoLive-Dokument speichern, um sie über ein erneutes Laden des Dokuments hinaus zu erhalten. Sie müssen ein "PUT"Anfrage zum Speichern der Daten und eine "GETAnfrage", um sie zurückzulesen. Sie können jede Art von Daten speichern, aber in diesem Beispiel speichern wir JSON Daten, da dies ein sehr häufiger Anwendungsfall zu sein scheint. Wenn Sie andere Daten speichern wollen, müssen Sie den Parameter -H entsprechend anpassen.

Curl-Befehl zum Speichern von Daten:

curl —data '{"myData1": 1.5, "myData2":"Some text"}' -H "Content-Type: application/json" -X PUT http://127.0.0.1:8989/api/v1/documents/1643911183/datastores/myDataStore1

Curl-Befehl, um Daten zurückzulesen:

curl -X GET http://127.0.0.1:8989/api/v1/documents/1643911183/datastores/myDataStore1

Aktualisieren des Quelldateipfads einer Mediendateiquelle

Möglicherweise möchten Sie den abgespielten Film austauschen oder eine Anzeige durch eine Quelle der Mediendatei. Dies kann mit einem Aktualisierungsbefehl erfolgen, der auf der Quelle API Endpunkt.

Stellen Sie sicher, dass der Dateireferenzmodus der Medienquelle auf "Absoluter Pfad" eingestellt ist. Holen Sie die API Endpunkt für diese Quelle, indem Sie in der linken Spalte mit der rechten Maustaste darauf klicken und "Copy Source's" wählen API Endpunkt in Zwischenablage" im Kontextmenü. Erstellen Sie eine URL der folgenden Form:

http://127.0.0.1:8989/api/v1/documents/<YOUR DOCUMENT ID>/sources/<SOURCE API ENDPOINT>?update={"filepath":"<LOCAL FILE PATH>"}

Stellen Sie sicher, dass Sie die JSON Daten im URL um eine gültige URL die in einem curl-Befehl wie folgt verwendet werden kann:

curl -X GET http://127.0.0.1:8989/api/v1/documents/1748069974/sources/1748069974-334DA2E4-DFF3-4225-8F4A-D09D40A6BD5D?update=%7B%22filepath%22:%22~/Desktop/Screen%20Recording%202022-07-27%20at%2012.18.23.mov%22%7D

Bitte beachten Sie, dass Sie das "~" am Anfang des Dateipfads verwenden können, um auf das Heimatverzeichnis des aktuellen Benutzers zu verweisen.

Konvertierung einer CURL Befehl mit JSON Daten zu einem HTTP URL für einfache HTTP Anfragen an

Manchmal ist es nur möglich, eine einfache HTTP Anfrage an mimoLive zu senden, anstatt einen curl-Befehl zu verwenden, z.B. im Fall von Automatisierungsanwendungen von Drittanbietern oder dem Automation Layer mimoLive selbst. Dies erfordert die Umwandlung des Datenblocks des curl-Befehls in einen Teil des URL. Sie können dies wie folgt tun:

Nehmen wir an, wir haben den folgenden curl-Befehl:

curl --data '{"data": { "attributes": {"settings": {"rtmpurl":"rtmp://mystreaminghost.com", "streamingkey":"MYTOTALLYSECRETSTREAMKEY"} } } }' --request PATCH http://192.168.0.100:8989/api/v1/documents/458706932/output-destinations/4D072496-1CE3-418E-B73E-59A2927A2110

Sie würden die HTTP Teil Erstens:

http://192.168.0.100:8989/api/v1/documents/458706932/output-destinations/4D072496-1CE3-418E-B73E-59A2927A2110

Fügen Sie ?update= hinzu:

http://192.168.0.100:8989/api/v1/documents/458706932/output-destinations/4D072496-1CE3-418E-B73E-59A2927A2110?update=

Ermitteln Sie alle Datenstrings und entfernen Sie alle unnötigen Leerzeichen:

{"data":{"attributes":{"settings":{"rtmpurl":"rtmp://mystreaminghost.com","streamingkey":"MYTOTALLYSECRETSTREAMKEY"}}}}

Kodieren Sie dies in seine URL Form von Umgehung der nicht-URL-konformen Zeichen (z. B. über https://www.urlencoder.org/)

%7B%22data%22%3A%7B%22attributes%22%3A%7B%22settings%22%3A%7B%22rtmpurl%22%3A%22rtmp%3A%2F%2Fmystreaminghost.com%22%2C%22streamingkey%22%3A%22MYTOTALLYSECRETSTREAMKEY%22%7D%7D%7D%7D

Schließlich fügen Sie all dies nach dem ?update= wie folgt ein:

http://192.168.0.100:8989/api/v1/documents/458706932/output-destinations/4D072496-1CE3-418E-B73E-59A2927A2110?update=%7B%22data%22%3A%7B%22attributes%22%3A%7B%22settings%22%3A%7B%22rtmpurl%22%3A%22rtmp%3A%2F%2Fmystreaminghost.com%22%2C%22streamingkey%22%3A%22MYTOTALLYSECRETSTREAMKEY%22%7D%7D%7D%7D

Jetzt können Sie dies verwenden URL in einem einfachen HTTP Anfrage.

Ihr Feedback

Wie würden Sie Ihre Erfahrungen mit dieser Funktion von mimoLive bewerten?

Benutzerhandbuch: Neueste Updates

Kastr

Castr ist eine Cloud-basierte Live-Streaming-Plattform, die es Nutzern ermöglicht, Inhalte an mehrere

Mehr lesen "

Sprache wählen