phpでmimoLiveをコントロールする
GitHubにPHPスクリプトのサンプルがあります:
https://github.com/boinx/mimoLive-HTTP-デモ
でmimoLiveを制御する カール
mimoLiveをコントロールするには HTTP を使用するには、bashコマンド "curl "を使用します。curlコマンドを使用するには、操作したいmimoLiveドキュメントのIDを見つける必要があります。
オートメーションレイヤーでmimoLiveを制御する
があります。 オートメーション層 のアクションをトリガーする簡単なコマンドを実行することができます。 エーピーアイ エンドポイント。また、httpRequest() コマンドも用意されている。 ゲット リクエストアクション HTTP エーピーアイ は可能だ。
前提条件
- 操作したいドキュメントをmimoLiveで開きます。
- レイヤーなどのAPIエンドポイントが変更されないように、ドキュメントが終了した状態であることを確認してください。レイヤーを削除して再度追加した場合、API 経由でレイヤーと通信する際に、このレイヤーは異なるレイヤー ID を持つことに注意してください。ただし、レイヤーの順序を入れ替えたり、レイヤーのバリアントを追加しても、レイヤー ID は変わりません。
- を有効にする。 HTTP-mimoLiveリモートコントロール環境設定の「サーバー」をクリックします。リモートコントロールアクセスを許可する」にチェックを入れます:
で作業する際に使用するため、IP番号またはIPアドレスとmimoLiveのポート番号を控えておいてください。 HTTP エーピーアイ.
を取得する エーピーアイ エンドポイント
mimoLive 5.5以前では、ドキュメントIDやレイヤーIDをターミナルコマンドで取得するのは困難でした。 JSON データを使用します。mimoLive 5.5以降、より簡単になりました:
まずミモライブをコピーする HTTP サーバーベース URL mimoLiveプリファレンスウィンドウのリモートコントロールセクション(上のスクリーンショットを参照)。テキストエディタ(AppleのTextEditなど)を開き、クリップボードの内容を新しく作成したテキストドキュメントに貼り付けます。その際 いいえ の最後のバックスラッシュは URL!結果はこのようになるはずだ:
http://172.28.30.202:8989
mimoLiveドキュメントウインドウでマウスを使い、興味のあるオブジェクト(レイヤー、ソース、レイヤーコントロールのボタンなど)を右クリック(またはコントロールクリック、または2本指クリック)すると、コンテキストメニューが表示されます。をコピーできるメニューが1つあります。 エーピーアイ macOSクリップボードへのエンドポイント。 エーピーアイ プロジェクトに参加している。
レイヤー全般ではなく、特定のレイヤーのバリアントに対処することが重要な場合もあります。レイヤーのパラメータを右クリックすると、レイヤーごとに異なる エーピーアイ 現在のライブレイヤーか、特定のレイヤーバリアントのエンドポイント:
テキストエディタに戻り、コピーしたファイルを貼り付けます。 エーピーアイ エンドポイント HTTP サーバーベース URL.これで URL をテキストブラウザで表示すると次のようになる:
http://172.28.30.202:8989/api/v1/documents/458706932/layers/BA868701-8131-49CB-8EDD-8C7E6E7CD60B
これが最後だ。 エーピーアイ ドキュメント内のレイヤーを指定するエンドポイント。この例では 458706932 は文書IDで BA868701-8131-49CB-8EDD-8C7E6E7CD60B は、この文書内の特定のレイヤーのレイヤーIDである。
スイッチのオンとオフ オフ レイヤー
検索された エーピーアイ 特定のレイヤーのエンドポイントをオン・オフするには、以下のターミナル・コマンドを使用する。
xxxxxxxxxを前のステップのAPI Endpointに置き換えてください!
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を押すと、ブラウザがmimoLive HTTPサーバーを呼び出し、指定したコマンドを実行します。APIエンドポイントに送信する必要があるJSONデータがある場合、これをURLに追加することもできます。
レイヤーの値を変更する
- レイヤーのすべてのパラメーターは HTTP エーピーアイ.新しい値を設定するには、正しいキーを見つける必要があります。この例では Lower Thirdレイヤー をキーに設定します。新しい値を JSON ファイルを HTTP サーバーに プット リクエストのcurlコマンドは少し混雑する。
*必ず xxxxxxxxx を特定のレイヤーに置き換えてください。 エーピーアイ 終点!
curl -d '{"input-values":{"tvGroup_Content__Title":"My new title"}}' -H "Content-Type: application/json" -X PUT "xxxxxxxxx"
便利なコレクション エーピーアイ 探索のためのコマンド
セッティング アールティーエムピー URL およびライブ・ストリーミング出力先のストリーミング・キー:
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
ファイルライターの出力先のファイル名とパスの設定
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
プレーサーレイヤーのビデオソースを設定する
yyyyyyyyyyyyyyyが UUID ビデオソースの(e.g CCAF4418-367A-415F-AD25-6536C3EF3512)
xxxxxxxxxxxは、以下のようになる。 エーピーアイ 特定のレイヤーのバリアントのエンドポイント。(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"
オーディオボリュームノブのあるレイヤーの音量を設定する
このcurlコマンドを使うと、オーディオ調整ノブがあるレイヤーのオーディオボリュームを変更することができます。 プレーサー層).値 "volume "は0.0から1.0までの値をとる。
xxxxxxxxxxxは、以下のようになる。 エーピーアイ レイヤーのエンドポイント (例: 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"
背景レイヤーの色を設定する
xxxxxxxxxxxは、以下のようになる。 エーピーアイ 特定のレイヤーのバリアントのエンドポイント。(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"
最終録画ビデオソースのファイルパスをクリアする
あなたの ソースリポジトリを持つことができる。 最終録音ソース これは、ファイル録画出力先がアナウンスする最新の録画へのアクセスを提供する。キオスクアプリケーションでは、ステーションの次のユーザーが前のユーザーの録画を確認できないように、最後の録画パスをクリアする必要があります。次のように オートメーション・レイヤー・コマンド をクリックすると、Last Recording Sourceからこの情報を消去することができます:
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 ミモライブ・ドキュメントのデータ
datastores "エンドポイントを使用すると、mimoLiveドキュメントにあらゆる種類のデータを保存し、ドキュメントの再読み込み時にそれを持続させることができます。を使用する必要があります。プット「データを保存するための"ゲット"リクエストで読み返すことができる。どのようなデータでも保存することができるが、この例では以下のデータを保存している。 JSON これは非常に一般的な使用例だと思われるからだ。異なるデータを保存したい場合は、-Hパラメータを適宜調整する必要がある。
データを保存するCurlコマンド:
bc. curl -data '{"myData1":1.5, "myData2": "Some text"}'.-H "Content-Type: application/json" -X プット http://127.0.0.1:8989/api/v1/documents/1643911183/datastores/myDataStore1
Curlコマンドでデータを読み戻す:
bc. curl -X ゲット http://127.0.0.1:8989/api/v1/documents/1643911183/datastores/myDataStore1
メディアファイルソースのソースファイルパスの更新
再生されるムービーを交換したり、表示される広告を メディア・ファイル・ソース.これは、ソース上で実行される更新コマンドで行うことができます。 エーピーアイ エンドポイントである。
メディアソースのファイル参照モードが「絶対パス」に設定されていることを確認する。メディア・ソースの エーピーアイ ソースのエンドポイントを右クリックし、"ソースのコピー "を選択する。 エーピーアイ コンテキストメニューの「クリップボードへのエンドポイント」。エンドポイントを 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
*ファイルパスの先頭に"~"を付けると、現在のユーザーのホームディレクトリを参照できることに注意してください。
アップルスクリプトでmimoLiveをコントロールする
現在、mimoLiveはApple Scriptをネイティブサポートしていません。しかし、あなたはmimoLiveに到達するための回避策を使用することができます:アップルスクリプトには、"curl "のようなbashコマンドを実行できる "do shell script "コマンドがあります。前のセクションでは、特定のレイヤーまたはレイヤー値を操作するためのcurlコマンドの作成方法を説明しました。
curlコマンドに満足したら、それをApple Scriptの「シェルスクリプトを実行」コマンドでラップする必要がある:
*アップルスクリプトの落とし穴
アップル・スクリプトでは、"curl "のようなターミナル・コマンドをシェル・スクリプト・コマンドに持ち込む際に、2つの落とし穴がある:
1.Apple-Scriptのパーサーに、それらがdoシェルスクリプトコマンドのエンドマーカーではないことを知らせるために、すべての「"」の前に「♪」を付ける必要があります。これは、次の文字を無視するようにパーサーに伝えるためのエスケープ文字です。
2.複数のテキスト部分を&で連結した場合、Apple Scriptにとっては1つのテキストではなく「テキストのリスト」になります。do shellコマンドは "list of text "では動作しないので、curlコマンドのテキストの最後に "as text "を付けて単一のテキストに変換する必要があります。
この例では、下位3分の1のタイトルを設定する方法を示している:
*必ず xxxxxxxxx を特定のレイヤーに置き換えてください。 エーピーアイ 終点!
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
次のアップルスクリプトの例では、30分ごとにレイヤーをオンにする方法を示している:これは商業的なオーバーレイに便利です。一定時間が経過すると自動的にオフになるレイヤーを使ってください(例えば、ループしないムービーソースを使ったプレーサーレイヤーがそうです)。
*必ず xxxxxxxxx を特定のレイヤーに置き換えてください。 エーピーアイ 終点!
-- 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
を変換する カール コマンドを使用する。 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 をリクエストする。