使用HTTP GET请求管理多媒体中心
在本文中,我想谈一谈如何使用HTTP GET请求管理当前最受欢迎的多媒体中心-KODI(XBMC)和Dune HD。这里将仅描述可以远程控制的最受欢迎的请求(例如:在家庭WiFi网络中或通过INTERNET网络使用路由器的适当设置),不仅使用预先编写的脚本,还可以将它们简单地输入到浏览器的地址栏中。我不会在这里描述所有请求,因为:首先,很多请求很少使用,其次,有完整的文档。在构建智能家居系统时,这些查询也可用于控制多媒体中心,而我实际上是用自己的系统来开发这些系统的。以下是一些要求:1.启动文件进行播放。指向文件的链接应该是直接的,即明确指向正在播放的文件或流,而来自Youtube的链接则无效,因此它们将无法工作。如何直接从Youtube获得指向视频的链接,请参见此处。- 1.1 KODI(XBMC)-http://登录:密码 @ ip地址:8080 / jsonrpc?Request = {“ jsonrpc”:“ 2.0”,“ id”:“ 1”,“ method”:“ Player.Open” ,“ Params”:{“ item”:{“ file”:“ URL ”}}}
- 1.2 Dune HD-http:// ip-address / cgi-bin / do?Cmd = launch_media_url&media_url = URL
在下文中:登录 -在KODI设置中设置的登录名(Web服务器->允许通过HTTP进行Kodi控制)。PASSWORD-在KODI设置中设置的密码(Web服务器->允许Kodi通过HTTP控制)。URL-复制资源的网络或Internet地址。ip- address-家庭或INTERNET网络中设备的IP地址。如果您配置Dune HD,以便在按遥控器上的POWER按钮时进入待机模式,那么当要求播放文件时,它将自动打开。2.音量控制。- 2.1 KODI(XBMC)-http://登录:密码 @ ip地址:8080 / jsonrpc?Request = {“ jsonrpc”:“ 2.0”,“ id”:“ 1”,“方法”:“ Application.SetVolume” ,“参数”:{“音量”: 35 }}}
- 2.2沙丘高清-http:// ip-address / cgi-bin / do?Cmd = set_playback_state&volume = 35
将音量设置为35。3.倒回到特定位置。- 3.1 KODI(XBMC)-http://登录:密码 @ ip地址:8080 / jsonrpc?Request = {“ jsonrpc”:“ 2.0”,“ method”:“ Player.Seek”,“ params”:{ “ playerid “:0,” value“: 50 },” id“:” 1“}
- 3.2沙丘高清-http:// ip-address / cgi-bin / do?Cmd = set_playback_state&position = 50
注意!对于KODI,值50以百分比表示,对于Dune HD以秒为单位,因为它没有这样的功能(我这样做-我编写了一个小脚本来获取曲目的完整持续时间,并且通过简单的计算,我已经将值设置为百分比)。还有另一个细微差别-在这里和将来,对于KODI,您首先需要获取值“ playerid”,这是活动玩家的ID。它是使用以下请求获得的:http:// 登录:PASSWORD @ ip-address:8080 / jsonrpc?Request = {“ jsonrpc”:“ 2.0”,“ method”:“ Player.GetActivePlayers”,“ id”:“ 1”},如果我没记错的话,顺序大致如下:对于音频-“ playerid“:0,对于视频-” playerid“:1,1,对于照片-” playerid“:2。值必须是整数类型,即不带引号的整数。4.暂停/播放。- 4.1 KODI(XBMC)-http://登录:密码 @ ip地址:8080 / jsonrpc?Request = {“ jsonrpc”:“ 2.0”,“ id”:“ 1”,“方法”:“ Player.PlayPause” ,“ Params”:{ “ playerid”:0 }}
- 4.2沙丘高清-http:// ip-address / cgi-bin / do?Cmd = set_playback_state&speed = 0-暂停/ 256-播放
5.播放列表中的下一首曲目。- 5.1 KODI(XBMC)-http://登录:密码 @ ip地址:8080 / jsonrpc?Request = {“ jsonrpc”:“ 2.0”,“ id”:“ 1”,“ method”:“ Player.GoTo” ,“ Params”:{ “ playerid”:0,“ to”: “ next” }}-
- 5.2沙丘高清-http:// ip-address / cgi-bin / do?Cmd = ir_code&ir_code = E21DBF000
对于Dune HD没有明确的命令,因此可以通过模拟遥控器上的按钮来切换到下一首曲目。在文档中,命令代码写在一个地方,所以我用正确的命令制作了一个文件,可以在此处获取。6.播放列表中的上一个曲目。- 6.1 KODI (XBMC) — http://LOGIN:PASSWORD@ip-address:8080/jsonrpc?request={«jsonrpc»:«2.0»,«id»:«1»,«method»:«Player.GoTo»,«params»:{«playerid»:0,«to»:«previous»}} -
- 6.2 Dune HD — http://ip-address/cgi-bin/do?cmd=ir_code&ir_code=B649BF00
不要忘记将您的“ playerid”放入对KODI(XBMC)的请求中。这些多媒体中心仍然存在大量不同类型的查询,您可以使用它们实现几乎所有功能。结果,例如,您可以获得基于Web的管理界面,在该界面上将显示控制面板上的所有操作,或者使多媒体中心具备语音搜索音乐或视频等内容的能力。。多媒体中心回复的格式:KODI(XBMC)-JSON格式,Dune HD-XML格式。可以使用支持发送HTTP GET请求以及支持JSON的各种编程语言来实现管理,为此,我使用了著名的php(curl,json_decode和DuneHD simplexml_load_file)。所用材料
JSON-RPC_API / v6 Kodi / XBMCDUNE IP控制文档 Source: https://habr.com/ru/post/zh-CN388279/
All Articles