mimoLive® - Benutzerhandbuch

Allgemeine Selektoren
Nur exakte Treffer
Suche im Titel
Suche im Inhalt
Post Type Selectors

Handbuch - Inhaltsverzeichnis

Beispiele für die Verwendung der API

Inhaltsübersicht

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.

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.

Erhalten einer API Endpunkt

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.

Einschalten 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.

Ändern des 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"

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/458706932/output-destinations/4D072496-1CE3-418E-B73E-59A2927A2110

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/458706932/output-destinations/4D072496-1CE3-418E-B73E-59EDA388BB

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 Lautstärke eines Layers ändern, der über einen Audio-Einstellknopf verfügt (wie der Placer-Schicht). Der Wert "Volumen" 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 Quell-Repositorykönnen Sie eine Letzte Aufzeichnungsquelle die den Zugriff auf die letzte Aufzeichnung ermöglicht, die ein beliebiges Dateiaufzeichnungs-Ausgabeziel anzeigt. In einer Kioskanwendung ist es notwendig, den letzten Aufzeichnungspfad zu löschen, damit der nächste Benutzer der Station nicht die Aufzeichnung des vorherigen Benutzers ansehen kann. Mit den folgenden Befehl Automation Layer können Sie diese Informationen 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:
bc. curl -data '{"myData1": 1.5, "myData2": "Some text"}' -H "Inhalt-Typ: application/json" -X PUT http://127.0.0.1:8989/api/v1/documents/1643911183/datastores/myDataStore1

Curl-Befehl, um Daten zurückzulesen:
bc. 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.

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.

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

*Fallstricke in Apple Script
In Apple Script gibt es zwei Fallstricke, wenn ein Terminalbefehl wie "curl" in den Befehl "do shell script" übertragen wird:
1. Allen " muss ein \ vorangestellt werden, damit der Apple-Script-Parser weiß, dass dies nicht die Endmarkierungen für den Shell-Skriptbefehl do sind. Das \ ist ein Escape-Zeichen, das dem Parser sagt, dass er das folgende Zeichen ignorieren soll.
2. Wenn Sie mehrere Textteile mit & aneinanderhängen, ist dies für Apple Script eine "Textliste" und kein einzelner Text. Der Shell-Befehl "do" funktioniert nicht mit "list of text" und muss daher mit "as text" am Ende des curl-Befehlstextes wieder in einen einzelnen Text umgewandelt werden.

Dieses Beispiel zeigt, wie man den Titel eines unteren Drittels setzt:

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

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\":\"" &amp; lowerThirdTitle &amp; "\"}}' -H \"Content-Type: application/json\" -X PUT \"" &amp; layerAPIEndpoint &amp; "\"" 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 Ihre spezifische Schicht ersetzen API Endpunkt!

-- 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 &gt; 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 \"" &amp; layerAPIEndpoint &amp; "/setLive\"" as text
	-- wait a couple of seconds to make sure we don't glitch in time
	delay 5
end repeat

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

hinzufügen ?update= dazu:

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

Holen Sie sich alle -Zeichenfolge 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

Zum Schluss, setzen Sie all dies nach dem ?update= etwa so:

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?

E-Mail-Newsletter

Deutsch

Nehmen Sie an der 24/7 Live Zoom® Demo teil

*erforderlich

Sie müssen den Inhalt von reCAPTCHA laden, um das Formular abzuschicken. Bitte beachten Sie, dass dabei Daten mit Drittanbietern ausgetauscht werden.

Mehr Informationen