Приклади використання API

Зміст

Передумови

- Відкрийте документ, яким ви хочете маніпулювати, у mimoLive.
- Переконайтеся, що документ перебуває у завершеному стані, щоб кінцеві точки API, такі як шари, більше не змінювалися. Майте на увазі, що якщо ви видалите шар і додасте його знову, цей шар матиме інший ідентифікатор шару при зверненні до нього через API. Втім, зміна порядку шарів або додавання варіантів шарів не призведе до зміни ідентифікатора шару.
- Увімкніть опцію HTTP-Сервер у налаштуваннях віддаленого керування mimoLive. Позначте опцію "Дозволити доступ до пульта дистанційного керування":

9e0a2b0b 6a64 4093 b15b 24aa12dead32

Будь ласка, запам'ятайте IP-номер або IP-адресу з номером порту mimoLive для подальшого використання при роботі з HTTP API.

Способи віддаленого керування mimoLive

Керування mimoLive за допомогою пультів дистанційного керування

Найефективніший спосіб - створити власну Повіддалену поверхню керування для вашого документа mimoLive, яку можна запустити на iPad, iPhone або будь-якому іншому пристрої з інтернет-браузером.

Керування mimoLive за допомогою php

У нас є добре задокументований приклад PHP-скрипта на GitHub:
https://github.com/boinx/mimoLive-HTTP-Демонстрація

Керування mimoLive за допомогою CURL

Щоб керувати mimoLive за допомогою HTTP ви можете скористатися командою bash "curl". Для того, щоб команди curl працювали, вам потрібно знайти ідентифікатор документа mimoLive, яким ви хочете маніпулювати.

Керування mimoLive за допомогою шару автоматизації

У "The Рівень автоматизації можуть виконувати деякі прості команди для запуску дій у mimLive за допомогою своїх API Кінцеві точки. Він також має команду httpRequest() для виконання будь-якого виду GET запитуйте дії, які необхідно виконати HTTP API на що здатен.

Керування mimoLive за допомогою Apple Script

Наразі mimoLive не підтримує Apple Script. Однак ви можете скористатися обхідним шляхом, щоб отримати доступ до mimoLive: У apple script є команда "do shell script", яка дозволяє виконувати команди bash, такі як "curl". У попередньому розділі пояснюється, як створити команду curl для маніпулювання певним шаром або значенням шару.

Підводні камені в Apple Script

В Apple Script є два підводні камені при перенесенні команди терміналу, наприклад, "curl", в команду скрипта оболонки do: 1. Всі " повинні бути доповнені префіксом \, щоб синтаксичний аналізатор Apple-Script знав, що вони не є кінцевими маркерами для команди do shell script. Символ \ є символом екранування, який вказує синтаксичному аналізатору ігнорувати наступний символ. 2. Якщо ви об'єднуєте декілька текстових частин за допомогою &, то для Apple Script це буде "список тексту", а не один текст. Команда оболонки do не працюватиме з "списком тексту", і тому вам потрібно перетворити його назад в один текст за допомогою "as text" в кінці тексту команди curl

Після того, як ви переконалися, що ваша команда curl готова, вам потрібно обернути її в команду "do shell script" в Apple Script:

*

Будь ласка, переконайтеся, що ви замінили xxxxxxxxxxx на ваш конкретний рівень 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"

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

Наступний приклад скрипта Apple показує, як вмикати шар кожні півгодини на годину: Це може бути корисним для комерційних накладок. Переконайтеся, що ви використовуєте шар, який вимикається через певний час (наприклад, шар-розсип з нециклічним джерелом відео).

*

Будь ласка, переконайтеся, що ви замінили xxxxxxxxxxx на ваш конкретний рівень API Endpoint!

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

Керування елементами інтерфейсу користувача у mimoLive

Отримання API Кінцева точка

Кінцеві точки API необхідні для звернення до певних елементів у вашому документі mimoLive. Список доступних кінцевих точок API наведено у розділі Кінцеві точки API.

До mimoLive 5.5 було важко отримати ідентифікатор документа і, наприклад, ідентифікатор шару за допомогою довгих команд терміналу. JSON дані. З mimoLive 5.5 це стало набагато простіше:

Перш за все скопіюйте mimoLive HTTP серверна база URL у розділі "Пульт дистанційного керування" вікна налаштувань mimoLive (див. скріншот вище). Відкрийте текстовий редактор (наприклад, TextEdit від Apple) і вставте вміст буфера обміну у новостворений текстовий документ. Будь ласка, переконайтеся, що там є Ні. зворотна коса риска в кінці URL! Результат має виглядати так:

http://172.28.30.202:8989

У вікні документа mimoLive ви можете клацнути правою кнопкою миші (або клацнути двома пальцями) на об'єкті, що вас цікавить (наприклад, шар, джерело, кнопка елемента керування шару), щоб отримати контекстне меню. У цьому меню є один пункт, за допомогою якого ви можете скопіювати API Кінцева точка в буфер обміну macOS для використання в mimoLive API проект.

bc6c7e19 e991 48a0 a9b8 b56d690f19b4

Іноді важливо звернутися до конкретного варіанту шару, а не до шару загалом. Якщо ви клацнете правою кнопкою миші на параметрі шару, ви побачите, що існують різні варіанти API кінцеві точки для поточного живого шару або конкретного варіанту шару:

6120370f a575 43db 891b ef3a91d5aec5

Поверніться до текстового редактора і вставте щойно скопійований API Кінцева точка після HTTP Серверна база URL. А тепер URL у вашому текстовому браузері має виглядати так:

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

Це фінал API Кінцева точка для адресування шару у вашому документі. У цьому прикладі 458706932 це ідентифікатор документа, а BA868701-8131-49CB-8EDD-8C7E6E7CD60B це конкретний ідентифікатор шару певного шару в цьому документі.

Клацання правою кнопкою миші на певних елементах користувацького інтерфейсу для виклику контекстного меню для отримання конкретної кінцевої точки API працює наступним чином:

  • Джерела
  • Шари
  • Варіанти шарів
  • Параметр шару
  • Пункти призначення на виході
  • Набори шарів
Скріншот 2024 10 08 о 10.19.00

Приклад: Увімкнення та вимкнення ВИМКНЕНО шар

З вилученими API Кінцеву точку для певного шару можна вмикати та вимикати за допомогою наступних команд терміналу.

*

Будь ласка, переконайтеся, що ви замінили xxxxxxxxxxx на кінцеву точку API з попереднього кроку!

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-адреси також працюють в інтернет-браузері

Ці URL-адреси (без команди "curl") також можна ввести в адресний рядок інтернет-браузера. Після натискання клавіші return браузер звернеться до HTTP-сервера mimoLive і виконає вказану вами команду. Якщо у вас є JSON-дані, які потрібно відправити до кінцевої точки API, ви також можете додати їх до URL-адреси, див. "Перетворення команди CURL з JSON-даними в HTTP-адресу для простих HTTP-запитів" нижче.

Простий спосіб отримати повну HTTP-адресу для увімкнення або вимкнення реального стану шару - клацнути правою кнопкою миші на кнопці шару "Живий", щоб викликати контекстне меню і вибрати пункт "Копіювати URL-адресу для увімкнення реального стану шару". Це дозволить скопіювати URL-адресу до буфера обміну для подальшого використання. На скріншоті ви бачите контекстне меню кнопки Live для шару Lower Third.

Скріншот 2024 10 08 від 13.10.16

Приклад: Зміна значення шару

- Всі параметри шару можна встановити за допомогою кнопки HTTP API. Вам потрібно знайти правильний ключ, щоб встановити нове значення. У нашому прикладі ми встановимо значення Title для Шар Lower Third з ключем tvGroup_Content__Title. Оскільки нам потрібно відправити нове значення в JSON файл в папку HTTP з сервером з PUT запит команди curl стає трохи переповненим.

*Переконайтеся, що ви замінили xxxxxxxxxxx на ваш конкретний шар API Кінцева точка!

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

Швидкий спосіб отримати повну HTTP-адресу для оновлення властивості шару - клацнути правою кнопкою миші на назві властивості, викликати контекстне меню і вибрати пункт "Копіювати URL для зміни '.....'". "Ця команда меню копіює HTTP-адресу до буферу обміну, який при наступному виклику (наприклад, в інтернет-браузері) встановить властивість у поточне значення. Вивчивши URL-адресу, ви можете визначити, яку її частину потрібно змінити, щоб надіслати власні дані до цієї властивості. На скріншоті ви бачите контекстне меню для копіювання URL-адреси для зміни субтитрів шару Lower Third.

Скріншот 2024 10 08 від 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

Нове значення в URL-адресі має бути закодоване!

У цьому прикладі пробіл між "mimoLive" та "User" закодовано як

Найкращі практики

Збірка корисного API Команди для вивчення

Налаштування параметрів RTMP URL і Ключ потокового мовлення одержувача прямого ефіру:

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

Встановлення імені файлу та шляху до місця призначення виводу пристрою запису файлів

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

Налаштування джерела відео для шару розсипу

yyyyyyyyyyyyуууууууууууууууууууууууууууууууу буде UUID джерела відео. (e.g CCAF4418-367A-415F-AD25-6536C3EF3512)

ххххххххххххххххх буде API кінцева точка певного варіанту шару. (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"

Налаштування гучності шару, який має регулятор гучності звуку

За допомогою цієї команди згортання ви можете змінювати гучність звуку шару, який має регулятор звуку (наприклад, шар Розсип). Значення "гучність" може набувати значень від 0.0 до 1.0.

ххххххххххххххххх буде API кінцева точка шару (наприклад, 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"

Налаштування кольору фонового шару

ххххххххххххххххх буде API кінцева точка певного варіанту шару. (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"

Очищення шляху до файлу джерела відео з останнім записом

У вашому Сховищі джерел ви можете створити Джерело останнього запису, яке надасть доступ до останнього запису, який буде оголошено будь-яким пунктом призначення виводу файлового запису. У програмі для кіоску потрібно буде очистити шлях до останнього запису, щоб наступний користувач станції не зміг переглянути запис попереднього користувача. За допомогою наступної команди Шару автоматизації ви можете очистити цю інформацію у Джерелі останнього запису:

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)

Зберігання JSON Дані в документі mimoLive

За допомогою кінцевого пункту "datastores" ви можете зберігати будь-які дані у документі mimoLive, щоб зберегти їх при перезавантаженні документа. Вам потрібно використовувати "PUT" запит на збереження даних і "GET", щоб прочитати його назад. Ви можете зберігати будь-який тип даних, однак у цьому прикладі ми зберігаємо JSON Data, тому що це дуже поширений випадок використання. Якщо ви хочете зберігати інші дані, вам потрібно відповідно налаштувати параметр -H.

Команда Curl для збереження даних:

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 для зчитування даних назад:

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

Оновлення шляху до вихідного файлу джерела медіафайлу

Ви можете змінити фільм, який відтворюється, або замінити рекламу, що показується, на Джерело медіафайлу. Це можна зробити за допомогою команди оновлення, виконаної у джерелі API кінцева точка.

Переконайтеся, що режим посилання на файл у медіа-джерелі встановлено на "Абсолютний шлях". Отримайте файл API для цього джерела, клацнувши на ньому правою кнопкою миші в лівому стовпчику і вибравши "Copy Source's API Кінцева точка в буфер обміну" у контекстному меню. Створіть URL наступної форми:

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

Переконайтеся, що ви закодували JSON дані в URL щоб отримати дійсну URL які можна використовувати у команді curl ось так:

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

Зверніть увагу, що ви можете використовувати "~" на початку шляху до файлу для посилання на домашній каталог поточного користувача.

Перетворення CURL команду з JSON Дані до HTTP URL для простих HTTP Запити

Іноді можна надіслати лише простий HTTP запит до mimoLive, а не за допомогою команди curl, наприклад, у випадку сторонніх програм автоматизації або самого шару автоматизації mimoLive. Для цього потрібно перетворити блок даних команди curl, щоб він став частиною URL. Ви можете зробити це наступним чином:

Припустимо, у нас є наступна команда 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

Ти візьмеш HTTP частина спочатку:

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

Додайте до нього ?update=:

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

Отримайте весь -рядок даних і видаліть усі зайві пропуски:

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

Закодуйте це в його URL заповніть форму за посиланням екранування символів, що не відповідають URL-адресі (наприклад, за допомогою 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

Нарешті, додайте все це після ?update= ось так:

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

Тепер ви можете використовувати це URL у простій HTTP прохання.

Ваш відгук

Як би ви оцінили свій досвід роботи з цією функцією mimoLive®?

Посібник користувача: Останні оновлення

Огляд шарів

Шари mimoLive - це потужний інструмент, який дозволяє користувачам створювати приголомшливу графіку, анімацію та

Читати далі "

Виберіть мову