Prerequisiti
- Aprire il documento che si desidera manipolare in mimoLive.
- Assicurarsi che il documento sia in uno stato finito, in modo che gli endpoint dell'API come i livelli non vengano più modificati. Si tenga presente che se si rimuove un livello e lo si aggiunge di nuovo, questo livello avrà un ID livello diverso quando si parla con esso tramite l'API. Tuttavia, il riordino dei livelli o l'aggiunta di varianti di livello non cambierà l'ID del livello.
- Abilitare il HTTP-Server nelle Preferenze del Controllo remoto di mimoLive. Selezionare l'opzione "Consenti accesso al controllo remoto":

Annotare il numero IP o l'indirizzo IP con il numero di porta di mimoLive per poterlo utilizzare in seguito quando si lavora con il programma. HTTP API.
Modi per controllare mimoLive a distanza
Controllo di mimoLive con le superfici di controllo a distanza
Il modo più efficace è quello di creare una Superficie di Controllo Remoto personalizzata per il suo documento mimoLive, che può essere eseguita su un iPad, iPhone o qualsiasi altro dispositivo con un browser internet.
Controllo di mimoLive con php
Abbiamo un esempio di script PHP ben documentato su GitHub:
https://github.com/boinx/mimoLive-HTTP-Dimostrazione
Controllo di mimoLive con CURVA
Per controllare mimoLive tramite HTTP è possibile utilizzare il comando bash "curl". Affinché i comandi curl funzionino è necessario trovare l'ID del documento mimoLive che si vuole manipolare.
Controllo di mimoLive con il livello di automazione
Il Livello di automazione possono eseguire alcuni semplici comandi per attivare azioni in mimLive tramite il loro API Endpoint. Dispone anche di un comando httpRequest() per eseguire qualsiasi tipo di GET azioni di richiesta il HTTP API è in grado di fare.
Controllo di mimoLive con Apple Script
Attualmente mimoLive non supporta nativamente Apple Script. Tuttavia, è possibile utilizzare un workaround per raggiungere mimoLive: Esiste un comando "do shell script" in Apple Script che consente di eseguire comandi bash come "curl". La sezione precedente spiega come creare un comando curl per manipolare un determinato livello o valore di livello.
Le insidie di Apple Script
In Apple Script ci sono due insidie quando si porta un comando da terminale come "curl" nel comando do shell script: 1. Tutti i " devono essere preceduti da un \code(0144) per far capire al parser Apple-Script che non sono i marcatori finali del comando do shell script. La \ è un carattere di escape per indicare al parser di ignorare il carattere successivo. 2. Se concatena più parti di testo con &, per Apple Script si tratta di un "elenco di testo" e non di un testo singolo. Il comando do shell non funziona con gli "elenchi di testo" e pertanto è necessario riconvertirli in un testo singolo con il comando "as text" alla fine del testo del comando curl.
Una volta che si è soddisfatti del comando curl, è necessario inserirlo in un comando "do shell script" in Apple Script:
Si assicuri di sostituire xxxxxxxxx con il suo Endpoint API di livello specifico!
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
Il seguente esempio di script Apple mostra come accendere un layer ogni mezz'ora: Questo potrebbe essere utile per le sovrapposizioni commerciali. Assicuratevi di utilizzare un livello che si spenga dopo un certo tempo (ad esempio, un livello Placer con una sorgente di filmato non in loop).
Si assicuri di sostituire xxxxxxxxx con il suo Endpoint API di livello specifico!
-- 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
Controllo degli elementi dell'interfaccia utente in mimoLive
Ottenere un API Punto finale
Gli endpoint API sono essenziali per indirizzare elementi specifici nel suo documento mimoLive. Per un elenco degli endpoint API disponibili, faccia riferimento a Endpoint API.
Prima di mimoLive 5.5 era difficile ottenere l'ID del documento e, ad esempio, l'ID del livello con i comandi del terminale, cercando tra le lunghe pagine del sito. JSON dati. Da mimoLive 5.5 è molto più semplice:
Prima di tutto copiare il file mimoLive HTTP base del server URL dalla sezione Controllo remoto della finestra Preferenze di mimoLive (vedi schermata precedente). Aprire un editor di testo (ad esempio TextEdit di Apple) e incollare il contenuto degli Appunti in un nuovo documento di testo. Assicurarsi che ci sia no backslash alla fine del campo URL! Il risultato dovrebbe essere simile a questo:
http://172.28.30.202:8989
Nella finestra del documento mimoLive con il mouse, è possibile fare clic con il tasto destro del mouse (o con il tasto di controllo, o con due dita) sull'oggetto di interesse (ad esempio un livello, una sorgente, un pulsante di un controllo di livello) per ottenere un menu contestuale. C'è una voce di menu che permette di copiare l'oggetto API Endpoint per gli Appunti di macOS per utilizzarli in mimoLive API progetto.

A volte è importante intervenire su una variante specifica del livello piuttosto che sul livello in generale. Se si fa clic con il tasto destro del mouse sul parametro di un livello, si vedrà che ci sono diverse opzioni API per il livello live corrente o per la variante specifica del livello:

Tornare all'editor di testo e incollare il file appena copiato API Punto finale dopo il HTTP Base del server URL. Ora il URL nel browser di testo dovrebbe avere il seguente aspetto:
http://172.28.30.202:8989/api/v1/documents/458706932/layers/BA868701-8131-49CB-8EDD-8C7E6E7CD60B
Questo è l'ultimo API per indirizzare un livello nel documento. In questo esempio 458706932 è l'ID del documento e BA868701-8131-49CB-8EDD-8C7E6E7CD60B è l'ID di livello specifico di un certo livello in questo documento.
Cliccando con il tasto destro del mouse su alcuni elementi dell'interfaccia utente, viene visualizzato un menu contestuale per ottenere l'endpoint API specifico:
- Fonti
- Strati
- Varianti di livello
- Parametro del livello
- Destinazioni di uscita
- Set di livelli

Esempio: Accensione e accensione SPENTO a Strato
Con i dati recuperati API Endpoint per un determinato livello è possibile attivarlo e disattivarlo con i seguenti comandi da terminale.
Assicurarsi di sostituire xxxxxxxxx con l'endpoint API del passo precedente!
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
Gli URL funzionano anche in un browser Internet
Questi URL (senza il comando "curl") possono essere inseriti anche nella barra degli indirizzi di un browser Internet. Una volta premuto "return", il browser chiamerà il server HTTP di mimoLive ed eseguirà il comando specificato. Se si dispone di dati JSON da inviare all'endpoint dell'API, è possibile aggiungere anche questi all'URL; vedere "Conversione di un comando CURL con dati JSON in un URL HTTP per semplici richieste HTTP" di seguito.
Un modo semplice per ottenere l'URL HTTP completo per attivare o disattivare lo stato Live di un livello è quello di fare clic con il pulsante destro del mouse sul pulsante Live del livello per visualizzare un menu contestuale e selezionare 'Copia URL per impostare il Live del livello'. Questo copierà l'URL negli appunti per poterlo utilizzare. Nella schermata, può vedere il menu contestuale per il pulsante Live di un livello Lower Third.

Esempio: Modifica del valore di un livello
- Tutti i parametri di un livello possono essere impostati tramite l'opzione HTTP API. È necessario trovare la chiave corretta per impostare un nuovo valore. Nel nostro esempio, imposteremo il titolo di un oggetto Terzo strato inferiore con la chiave tvGroup_Content__Title. Poiché è necessario inviare il nuovo valore in un file JSON al file HTTP con un server INSERIRE richiesta il comando curl diventa un po' affollato.
*Assicuratevi di sostituire xxxxxxxxx con il vostro strato specifico. API Punto finale!
curl -d '{"input-values":{"tvGroup_Content__Title":"My new title"}}' -H "Content-Type: application/json" -X PUT "xxxxxxxxx"
Un modo rapido per ottenere un URL HTTP completo per attivare l'aggiornamento di una proprietà di livello è quello di fare clic con il pulsante destro del mouse sul nome della proprietà, rivelando un menu contestuale, e selezionare "Copia URL per modificare '.....'". "Questo comando del menu copia un URL HTTP negli appunti che, una volta richiamato (ad esempio, in un browser Internet), imposterà la proprietà al suo valore attuale. Esaminando l'URL, può determinare quale parte di esso deve essere modificata per inviare i suoi dati a questa proprietà. Nella schermata, può vedere il menu contestuale per copiare l'URL per modificare il sottotitolo di un livello Lower Third.

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
Il nuovo valore nell'URL deve essere codificato come URL!
In questo esempio, lo spazio tra "mimoLive" e "User" è codificato come .
Le migliori pratiche
Raccolta di utili API Comandi da esplorare
Impostazione del RTMP URL e la chiave di streaming di una destinazione di uscita per lo streaming in diretta:
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
Impostazione del nome e del percorso di una destinazione di output del file writer
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
Impostazione della sorgente video di un livello di posizionamento
yyyyyyyyyyyyyyyyyy sarà il UUID della sorgente video. (e.g CCAF4418-367A-415F-AD25-6536C3EF3512)
xxxxxxxxxxxxx sarà il API endpoint di una determinata variante di livello. (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"
Impostazione del volume di un livello dotato di manopola del volume audio
Con questo comando curl, può modificare il volume audio di un livello che dispone di una manopola di regolazione audio (come il livello Placer). Il valore "volume" può assumere valori compresi tra 0,0 e 1,0.
xxxxxxxxxxxxx sarà il API punto finale del livello (ad es. 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"
Impostazione del colore di un livello di sfondo
xxxxxxxxxxxxx sarà il API endpoint di una determinata variante di livello. (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"
Cancellazione del percorso del file di una sorgente video dell'ultima registrazione
Nel suo Repository di sorgenti, può avere una Sorgente di ultima registrazione che fornirà l'accesso all'ultima registrazione che qualsiasi Destinazione di uscita di registrazione di file annuncerà. In un'applicazione kiosk, sarà necessario cancellare il percorso dell'ultima registrazione, in modo che l'utente successivo della stazione non sia in grado di rivedere la registrazione dell'utente precedente. Con il seguente comando del livello di automazione può cancellare questa informazione dalla Sorgente dell'ultima registrazione:
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)
Immagazzinamento JSON Dati nel documento mimoLive
Con l'endpoint "datastores" è possibile memorizzare qualsiasi tipo di dati nel documento mimoLive per conservarli durante la ricarica del documento. È necessario utilizzare un oggetto "INSERIRE" per salvare i dati e un "GET" per rileggerlo. È possibile memorizzare qualsiasi tipo di dati, ma in questo esempio stiamo memorizzando JSON Data perché questo sembra essere un caso d'uso molto comune. Se si desidera memorizzare dati diversi, è necessario regolare il parametro -H di conseguenza.
Comando Curl per memorizzare i dati:
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
Comando Curl per leggere i dati:
curl -X GET http://127.0.0.1:8989/api/v1/documents/1643911183/datastores/myDataStore1
Aggiornare il percorso del file di origine di una sorgente di file multimediale
È possibile che si voglia cambiare il filmato riprodotto o sostituire una pubblicità mostrata con una Fonte del file multimediale. Questo può essere fatto con un comando di aggiornamento eseguito sul sorgente API endpoint.
Assicurarsi che la modalità di riferimento del file della sorgente multimediale sia impostata su "Percorso assoluto". Ottenere il API endpoint di questa sorgente facendo clic con il tasto destro del mouse su di essa nella colonna di sinistra e selezionando "Copia sorgente". API Endpoint to Clipboard" nel menu contestuale. Realizzare un URL della forma seguente:
http://127.0.0.1:8989/api/v1/documents/<YOUR DOCUMENT ID>/sources/<SOURCE API ENDPOINT>?update={"filepath":"<LOCAL FILE PATH>"}
Assicurarsi di codificare il file JSON dati nel URL per ottenere un valido URL che può essere usato in un comando curl come questo:
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
Si noti che è possibile utilizzare "~" all'inizio del percorso del file per fare riferimento alla home directory dell'utente corrente.
Conversione di un CURVA con il comando JSON Dati a un HTTP URL per semplice HTTP Richieste
A volte è possibile inviare solo un semplice HTTP a mimoLive invece di usare un comando curl, ad esempio nel caso di applicazioni di automazione di terze parti o dello stesso Automation Layer mimoLive. Ciò richiede la conversione del blocco dati del comando curl in parte del file URL. È possibile farlo nel modo seguente:
Supponiamo di avere il seguente comando curl:
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
Si prende il HTTP parte prima:
http://192.168.0.100:8989/api/v1/documents/458706932/output-destinations/4D072496-1CE3-418E-B73E-59A2927A2110
Aggiunga ?update= ad esso:
http://192.168.0.100:8989/api/v1/documents/458706932/output-destinations/4D072496-1CE3-418E-B73E-59A2927A2110?update=
Prende tutti i dati stringa e rimuove tutti gli spazi non necessari:
{"data":{"attributes":{"settings":{"rtmpurl":"rtmp://mystreaminghost.com","streamingkey":"MYTOTALLYSECRETSTREAMKEY"}}}}
Codificare questo dato nel suo URL forma da evasione dei caratteri non conformi all'URL (ad esempio, utilizzando 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
Infine, inserisca tutto questo dopo il parametro ?update=, in questo modo:
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
Ora è possibile utilizzare questo URL in un semplice HTTP richiesta.