mimoLive® - 用户手册

通用选择器
仅限精确匹配
在标题中搜索
在内容中搜索
帖子类型选择器

手册 - 内容表

API使用实例

目录

用 php 控制 mimoLive

我们在GitHub上有一个记录良好的PHP脚本样本:
https://github.com/boinx/mimoLive-HTTP-演示

通过以下方式控制mimoLive CURL

要通过以下方式控制mimoLive HTTP 你可以使用bash命令 "curl"。为了让curl命令工作,你需要找到你想操作的mimoLive文档的ID。

用自动化层控制mimoLive

ǞǞǞ 自动化层 可以执行一些简单的命令,在mimLive中通过它们来触发动作。 API 端点。它也有一个httpRequest()命令来执行任何类型的 争取 要求的行动 HTTP API 是有能力的。

先决条件

- 打开你想在mimoLive中操作的文件。
- 确保文档处于完成状态,这样像Layers这样的API端点就不会再改变。请注意,如果你删除一个图层并再次添加它,当通过API与它对话时,这个图层将有一个不同的图层ID。然而,重新排序图层或添加图层变体不会改变图层ID。
- 启用 HTTP-服务器在mimoLive远程控制首选项。勾选 "允许远程控制访问 "选项:

9E0A2B0B 6A64 4093 B15B 24AA12DEAD32

请注意 IP 号或 IP 地址与 mimoLive 的端口号,以便在使用时进一步使用。 HTTP API.

获得一个 API 端点

在mimoLive 5.5之前,很难通过终端命令来获得文件ID和比如说层的ID,通过长长的命令来寻找 JSON 数据。从mimoLive 5.5开始,这就容易多了:

首先,复制mimoLive HTTP 服务器基地 URL 从mimoLive偏好窗口的远程控制部分(见上面的截图)。打开一个文本编辑器(例如苹果的TextEdit)并将剪贴板的内容粘贴到一个新创建的文本文件。请确保,有 的末尾的反斜杠。 URL!结果应该是这样的:

http://172.28.30.202:8989

在mimoLive文档窗口用你的鼠标,你可以右击(或控制点击,或双指点击)感兴趣的对象(例如一个图层,一个源,一个图层控件的按钮)来获得一个上下文菜单。有一个菜单项,可以让你复制 API 在你的 mimoLive 中使用 macOS 剪贴板的端点 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 是文件的ID,而 BA868701-8131-49CB-8EDD-8C7E6E7CD60B 是本文件中某一图层的具体图层ID。

打开和 关闭 A层

用检索到的 API 某个层的端点,你可以用以下终端命令来切换它的开启和关闭。

*

请确保将xxxxxxxx替换为上一步的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
*

这些URLs在互联网浏览器中也可以使用

这些URL(没有 "curl "命令)也可以放到互联网浏览器的地址栏中。一旦你点击返回,浏览器将调用mimoLive HTTP服务器并执行你指定的命令。如果你有JSON数据需要发送到API端点,你也可以把它添加到URL中,见下面的 "将带有JSON数据的CURL命令转换为简单的HTTP请求的HTTP URL"。

改变一个图层的值

- 一个层的所有参数都可以通过 HTTP API.你需要找到正确的键,以便设置一个新的值。在我们的例子中,我们将设置一个名为 "Title "的字符串。 下三层 与键值tvGroup_Content__Title。因为我们需要将新的值在一个 JSON 文件到 HTTP 的服务器上有一个 拨出 请求curl命令变得有点拥挤。

*请确保用你的特定层替换xxxxxxxx。 API 端点!

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

收集有用的 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/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

设置一个铺垫层的视频源

yyyyyyyyyyyyy将是 UUID 的视频源。(e.g CCAF4418-367A-415F-AD25-6536C3EF3512)

xxxxxxxxxxxxx将是 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"

设置有音频音量旋钮的图层的音量

用这个curl命令,你可以改变一个有音频调节旋钮的图层的音频音量(如 浆果层).量 "的值可以从0.0到1.0。

xxxxxxxxxxxxx将是 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"

设置背景层的颜色

xxxxxxxxxxxxx将是 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文档中存储任何类型的数据,以便在文档重新加载时保持它。你需要使用一个"拨出"请求来保存数据,以及一个"争取"请求来读回它。你可以存储任何类型的数据,但是在这个例子中,我们存储的是 JSON 数据,因为这似乎是一个非常普遍的使用情况。如果你想存储不同的数据,你需要相应地调整-H参数。

Curl命令来存储数据:
bc. curl -data '{"myData1":1.5, "myData2": "一些文本"}'-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

更新媒体文件源的源文件路径

你可能想交换所播放的电影,或用一个广告来取代所显示的广告。 媒体文件来源.这可以通过在源码上执行更新命令来完成 API 端点。

确保媒体源的文件参考模式被设置为 "绝对路径"。获取 API 通过在左栏中右键单击该源,并选择 "复制源的 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

*请注意,你可以利用文件路径开头的"~"来引用当前用户的主目录。

用 Apple Script 控制 mimoLive

目前mimoLive并不支持Apple Script。然而,你可以使用一个变通方法来联系mimoLive:在apple script中有一个 "do shell script "命令,让你执行像 "curl "这样的bash命令。上一节解释了如何创建一个curl命令来操作某个图层或图层值。

一旦你对你的curl命令感到满意,你需要在Apple Script中用 "do shell script "命令来包装它:

*苹果脚本中的陷阱
在Apple Script中,当把 "curl "这样的终端命令带到do shell脚本命令中时,有两个陷阱:
1.所有的 "需要在前面加上一个\,以便让Apple-Script分析器知道那些不是do shell脚本命令的结束标记。这个""是一个转义字符,用来告诉分析器要忽略下面的字符。
2.如果你用&连接多个文本部分,那么对Apple Script来说,这就是一个 "文本列表",而不是一个单一的文本。do shell命令不会对 "文本列表 "起作用,因此你需要在curl命令文本的末尾用 "作为文本 "将其转换为单个文本。

这个例子显示了如何设置下三分之一的标题:

*请确保用你的特定层替换xxxxxxxx。 API 端点!

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

下面的苹果脚本例子显示了如何在每半小时的时间里打开一个图层:这对商业覆盖来说是很有用的。请确保使用一个在一定时间后会自动关闭的图层(例如,具有非循环电影源的Placer图层会这样做)。

*请确保用你的特定层替换xxxxxxxx。 API 端点!

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

转换一个 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

添加 更新= 到它:

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

获取所有 -data字符串 并删除所有不必要的空格:

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

最后,把这一切 更新后 像这样:

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这个功能的体验?

电子邮件通讯

简体中文

加入全天候实时 Zoom® 演示

*必须