Prasyarat
- Buka dokumen yang ingin Anda manipulasi di mimoLive.
- Pastikan dokumen sudah dalam keadaan selesai sehingga endpoint API seperti Layer tidak berubah lagi. Perlu diketahui bahwa jika Anda menghapus sebuah layer dan menambahkannya lagi, layer ini akan memiliki Layer ID yang berbeda ketika berbicara dengannya melalui API. Namun, menyusun ulang layer atau menambahkan varian layer tidak akan mengubah ID layer.
- Aktifkan fitur HTTP-Server di Preferensi Kontrol Jarak Jauh mimoLive. Centang opsi "Izinkan Akses Remote Control":
Harap catat Nomor IP atau alamat IP dengan nomor port mimoLive untuk digunakan lebih lanjut saat bekerja dengan HTTP API.
Cara Mengontrol mimoLive dari Jarak Jauh
Mengontrol mimoLive dengan Permukaan Remote Control
Cara yang paling efektif adalah dengan membuat Remote Control Surface khusus untuk dokumen mimoLive Anda, yang dapat dijalankan di iPad, iPhone, atau perangkat lain yang memiliki peramban internet.
Mengontrol mimoLive dengan php
Kami memiliki contoh skrip PHP yang terdokumentasi dengan baik di GitHub:
https://github.com/boinx/mimoLive-HTTP-Demo
Mengontrol mimoLive dengan CURL
Untuk mengontrol mimoLive melalui HTTP Anda dapat menggunakan perintah bash "curl". Agar perintah curl dapat bekerja, Anda harus menemukan ID dokumen mimoLive yang ingin Anda manipulasi.
Mengontrol mimoLive dengan lapisan Otomasi
The Lapisan otomatisasi dapat melakukan beberapa perintah mudah untuk memicu tindakan di mimLive dengan API Titik akhir. Ia juga memiliki perintah httpRequest() untuk melakukan segala jenis DAPATKAN meminta tindakan yang HTTP API mampu melakukannya.
Mengontrol mimoLive dengan Skrip Apple
Saat ini mimoLive tidak mendukung Apple Script. Namun, Anda dapat menggunakan solusi untuk menghubungi mimoLive: Terdapat perintah "do shell script" di dalam Apple Script yang memungkinkan Anda untuk melakukan perintah bash seperti "curl". Bagian sebelumnya menjelaskan cara membuat perintah curl untuk memanipulasi layer atau nilai layer tertentu.
Jebakan dalam Skrip Apple
Di Apple Script ada dua jebakan ketika membawa perintah terminal seperti "curl" ke perintah do shell script: 1. All " harus diawali dengan \ untuk memberi tahu pemilah Apple-Script bahwa itu bukan penanda akhir perintah do shell script. Tanda \ adalah karakter pelarian untuk memberi tahu pengurai agar mengabaikan karakter berikut. 2. Jika Anda menggabungkan beberapa bagian teks dengan &, maka ini adalah "daftar teks" untuk Apple Script, bukan satu teks. Perintah shell do tidak akan bekerja dengan "daftar teks" dan oleh karena itu Anda perlu mengubahnya kembali menjadi satu teks dengan "as text" di akhir teks perintah curl Anda
Setelah Anda puas dengan perintah curl, Anda perlu membungkusnya dengan perintah "do shell script" di Apple Script:
Pastikan untuk mengganti xxxxxxxxx dengan Endpoint API layer spesifik Anda!
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
Contoh skrip Apple berikut ini menunjukkan cara mengaktifkan lapisan setiap setengah jam pada jam: Hal ini dapat berguna untuk overlay komersial. Pastikan untuk menggunakan layer yang akan mati dengan sendirinya setelah waktu tertentu (misalnya Placer Layer dengan sumber film yang tidak melingkar).
Pastikan untuk mengganti xxxxxxxxx dengan Endpoint API layer spesifik Anda!
-- 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
Mengontrol Elemen Antarmuka Pengguna di mimoLive
Mendapatkan API Titik akhir
Titik akhir API sangat penting untuk menangani elemen tertentu dalam dokumen mimoLive Anda. Untuk daftar titik akhir API yang tersedia, silakan merujuk ke Titik Akhir API.
Sebelum mimoLive 5.5, sulit untuk mendapatkan ID Dokumen dan misalnya ID Layer dengan perintah Terminal yang panjang. JSON data. Sejak mimoLive 5.5, hal ini menjadi lebih mudah:
Pertama-tama salinlah mimoLive HTTP basis server URL dari bagian Remote Control pada jendela Preferensi mimoLive (lihat gambar di atas). Buka editor teks (misalnya TextEdit dari Apple) dan tempelkan konten Clipboard ke dalam dokumen teks yang baru dibuat. Harap pastikan bahwa ada tidak garis miring di akhir URL! Hasilnya akan terlihat seperti ini:
http://172.28.30.202:8989
Pada jendela dokumen mimoLive dengan mouse Anda, Anda dapat mengklik kanan (atau klik-kontrol, atau klik-dua-jari) pada objek yang diinginkan (misalnya Layer, Sumber, tombol kontrol Layer) untuk mendapatkan menu konteks. Ada satu item menu yang memungkinkan Anda menyalin API Titik akhir ke Papan Klip macOS untuk menggunakannya di mimoLive Anda API proyek.
Kadang-kadang penting untuk menangani varian layer tertentu daripada layer secara umum. Jika Anda mengklik kanan pada parameter layer, Anda akan melihat bahwa ada beberapa API titik akhir untuk lapisan aktif saat ini atau varian lapisan tertentu:
Kembali ke editor teks Anda dan tempelkan yang baru saja disalin API Titik akhir setelah HTTP Basis server URL. Sekarang URL di browser teks Anda akan terlihat seperti ini:
http://172.28.30.202:8989/api/v1/documents/458706932/layers/BA868701-8131-49CB-8EDD-8C7E6E7CD60B
Ini adalah yang terakhir API Titik akhir untuk mengalamatkan sebuah layer dalam dokumen Anda. Dalam contoh ini 458706932 adalah ID dokumen dan BA868701-8131-49CB-8EDD-8C7E6E7CD60B adalah ID lapisan spesifik dari lapisan tertentu dalam dokumen ini.
Klik kanan pada elemen antarmuka pengguna tertentu untuk membuka menu konteks untuk mendapatkan titik akhir API tertentu yang berfungsi sebagai berikut:
- Sumber
- Lapisan
- Varian Lapisan
- Parameter Lapisan
- Tujuan Keluaran
- Set Lapisan
Contoh: Mengaktifkan dan OFF sebuah Lapisan
Dengan yang diambil API Titik akhir untuk lapisan tertentu dapat Anda aktifkan dan nonaktifkan dengan perintah terminal berikut ini.
Pastikan untuk mengganti xxxxxxxxx dengan API Endpoint dari langkah sebelumnya!
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
URL juga dapat digunakan di peramban Internet
URL tersebut (tanpa perintah "curl") juga dapat dimasukkan ke dalam bilah alamat peramban Internet. Setelah Anda menekan return, browser akan memanggil server HTTP mimoLive dan melakukan perintah yang Anda tentukan. Jika Anda memiliki data JSON yang perlu dikirim ke titik akhir API, Anda juga dapat menambahkannya ke URL, lihat "Mengubah perintah CURL dengan Data JSON ke URL HTTP untuk Permintaan HTTP sederhana" di bawah ini.
Cara mudah untuk mendapatkan URL HTTP lengkap untuk mengubah status live layer menjadi aktif atau nonaktif adalah dengan mengklik kanan pada tombol Live layer untuk membuka menu konteks dan memilih 'Salin URL Untuk Mengatur Layer Live'. Ini akan menyalin URL ke clipboard untuk Anda gunakan. Pada tangkapan layar, Anda dapat melihat menu konteks untuk tombol Live pada layer Lower Third.
Contoh: Mengubah Nilai Lapisan
- Semua parameter lapisan dapat ditetapkan melalui menu HTTP API. Anda harus menemukan kunci yang benar untuk menetapkan nilai baru. Dalam contoh kita, kita akan mengatur Judul sebuah Lapisan Lower Third dengan kunci tvGroup_Content__Title. Karena kita perlu mengirim nilai baru dalam sebuah JSON ke file HTTP server dengan PUT meminta perintah curl menjadi sedikit ramai.
*Pastikan untuk mengganti xxxxxxxxx dengan layer spesifik Anda API Endpoint!
curl -d '{"input-values":{"tvGroup_Content__Title":"My new title"}}' -H "Content-Type: application/json" -X PUT "xxxxxxxxx"
Cara cepat untuk mendapatkan URL HTTP lengkap untuk memicu pembaruan properti layer adalah dengan mengklik kanan pada nama properti, membuka menu konteks, dan memilih "Salin URL Untuk Mengubah '.....' " Perintah menu ini menyalin URL HTTP ke clipboard, yang ketika dipanggil (misalnya, di browser Internet), akan mengatur properti ke nilai saat ini. Dengan memeriksa URL, Anda dapat menentukan bagian mana yang perlu dimodifikasi untuk mengirim data Anda sendiri ke properti ini. Pada tangkapan layar, Anda dapat melihat menu konteks untuk menyalin URL untuk mengubah subjudul layer 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
Nilai baru dalam URL harus dikodekan dengan URL!
Dalam contoh ini, spasi antara "mimoLive" dan "User" dikodekan sebagai
Praktik Terbaik
Koleksi Berguna API Perintah untuk Anda jelajahi
Mengatur RTMP URL dan Kunci Streaming dari Tujuan Output Streaming Langsung:
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
Mengatur Nama File dan Jalur Tujuan Keluaran Penulisan File
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
Mengatur Sumber Video dari Lapisan Penempatan
yyyyyyyyyyyyy akan menjadi UUID dari sumber video. (e.g CCAF4418-367A-415F-AD25-6536C3EF3512)
xxxxxxxxxxxxx akan menjadi API titik akhir dari varian lapisan tertentu. (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"
Mengatur Volume Layer yang memiliki Kenop Volume Audio
Dengan perintah curl ini, Anda dapat mengubah volume audio dari layer yang memiliki kenop pengaturan audio (seperti Placer layer). Nilai "volume" dapat mengambil nilai dari 0,0 hingga 1,0.
xxxxxxxxxxxxx akan menjadi API titik akhir lapisan (misalnya 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"
Menetapkan Warna lapisan Latar Belakang
xxxxxxxxxxxxx akan menjadi API titik akhir dari varian lapisan tertentu. (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"
Menghapus jalur file dari sumber video Perekaman Terakhir
Dalam Repositori Sumber, Anda dapat memiliki Sumber Perekaman Terakhir yang akan memberikan akses ke rekaman terakhir yang akan diumumkan oleh Tujuan Keluaran Rekaman File mana pun. Dalam aplikasi kios, jalur perekaman terakhir perlu dihapus agar pengguna stasiun berikutnya tidak dapat meninjau perekaman pengguna sebelumnya. Dengan perintah Layer Otomasi berikut ini, Anda dapat menghapus informasi ini dari Sumber Perekaman Terakhir:
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)
Menyimpan JSON Data dalam Dokumen mimoLive
Dengan titik akhir "datastores" Anda dapat menyimpan data apa pun dalam dokumen mimoLive untuk mempertahankannya selama pemuatan ulang dokumen. Anda perlu menggunakan sebuah "PUT" permintaan untuk menyimpan data dan "DAPATKAN" untuk membacanya kembali. Anda dapat menyimpan data apa pun, namun dalam contoh ini kami menyimpan JSON Data karena ini tampaknya merupakan kasus penggunaan yang sangat umum. Jika Anda ingin menyimpan data yang berbeda, Anda perlu menyesuaikan parameter -H.
Perintah curl untuk menyimpan data:
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
Perintah curl untuk membaca data kembali:
curl -X GET http://127.0.0.1:8989/api/v1/documents/1643911183/datastores/myDataStore1
Memperbarui Jalur File Sumber dari Sumber File Media
Anda mungkin ingin menukar film yang diputar atau mengganti iklan yang ditampilkan oleh Sumber File Media. Hal ini dapat dilakukan dengan perintah pembaruan yang dilakukan pada sumber API titik akhir.
Pastikan bahwa mode referensi file Sumber Media diatur ke "Absolut Path". Dapatkan API titik akhir untuk sumber ini dengan mengklik kanan di kolom kiri dan memilih "Copy Source's API Titik Akhir ke Papan Klip" di menu konteks. Membuat URL dengan formulir berikut ini:
http://127.0.0.1:8989/api/v1/documents/<YOUR DOCUMENT ID>/sources/<SOURCE API ENDPOINT>?update={"filepath":"<LOCAL FILE PATH>"}
Pastikan untuk menyandikan JSON data dalam URL untuk mendapatkan URL yang dapat digunakan dalam perintah curl seperti ini:
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
Harap diperhatikan bahwa Anda dapat menggunakan "~" di awal jalur file untuk merujuk direktori home dari pengguna saat ini.
Mengonversi CURL perintah dengan JSON Data Ke HTTP URL untuk sederhana HTTP Permintaan
Terkadang hanya memungkinkan untuk mengirim pesan sederhana HTTP permintaan ke mimoLive daripada menggunakan perintah curl, misalnya dalam kasus aplikasi otomatisasi pihak ketiga atau Lapisan Otomasi mimoLive itu sendiri. Hal ini memerlukan konversi blok data dari perintah curl menjadi bagian dari URL. Anda dapat melakukannya sebagai berikut:
Anggaplah kita memiliki perintah curl berikut ini:
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
Anda akan mengambil HTTP bagian pertama:
http://192.168.0.100:8989/api/v1/documents/458706932/output-destinations/4D072496-1CE3-418E-B73E-59A2927A2110
Tambahkan ?update= ke dalamnya:
http://192.168.0.100:8989/api/v1/documents/458706932/output-destinations/4D072496-1CE3-418E-B73E-59A2927A2110?update=
Dapatkan semua string data dan hapus semua spasi yang tidak perlu:
{"data":{"attributes":{"settings":{"rtmpurl":"rtmp://mystreaminghost.com","streamingkey":"MYTOTALLYSECRETSTREAMKEY"}}}}
Enkode ini ke URL bentuk oleh keluar dari karakter yang tidak sesuai dengan URL (misalnya menggunakan 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
Terakhir, letakkan semua setelah tanda ?update= seperti ini:
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
Sekarang Anda dapat menggunakan ini URL secara sederhana HTTP permintaan.