【问题标题】:Update XBMC library from Python script从 Python 脚本更新 XBMC 库
【发布时间】:2016-11-12 20:39:46
【问题描述】:

我正在尝试编写一个脚本来在我的 XBMC 上运行“更新库”命令。

当我尝试运行时:

url = 'http://root:libreelec@%IP_ADDRESS%:12345/jsonrpc?request={"jsonrpc": "2.0", "method": "VideoLibrary.Scan"}'
r = requests.get(url)

我看到库已更新,但出现以下错误:

Traceback (most recent call last):
  File "<input>", line 2, in <module>
  File "C:\Python27\lib\site-packages\requests\api.py", line 70, in get
    return request('get', url, params=params, **kwargs)
  File "C:\Python27\lib\site-packages\requests\api.py", line 56, in request
    return session.request(method=method, url=url, **kwargs)
  File "C:\Python27\lib\site-packages\requests\sessions.py", line 475, in request
    resp = self.send(prep, **send_kwargs)
  File "C:\Python27\lib\site-packages\requests\sessions.py", line 596, in send
    r = adapter.send(request, **kwargs)
  File "C:\Python27\lib\site-packages\requests\adapters.py", line 473, in send
    raise ConnectionError(err, request=request)
ConnectionError: ('Connection aborted.', BadStatusLine("''",))

我已尝试将代码修改为:

    url = 'http://root:libreelec@%IP_ADDRESS%:12345/jsonrpc?'
    data = json.dumps({"request": {"jsonrpc": "2.0", "method": "VideoLibrary.Scan"}})
    r = requests.get(url, params=data)

但它似乎不起作用,这意味着我没有看到库更新。

我做错了什么?

【问题讨论】:

    标签: python request xbmc kodi


    【解决方案1】:

    谁在 URL 中“根”?一切都很简单:

    url = 'http://libreelec:12345/jsonrpc'
    data = {"jsonrpc": "2.0", "method": "VideoLibrary.Scan", "id": "1"}
    r = requests.post(url, json=data)
    

    /json 端点也接受 POST,request.post 会将dict 处理为适合您的 JSON 请求。

    【讨论】:

    • 我仍然得到相同的结果,XBMC 库已更新,我也收到错误消息。有什么想法吗?
    • 我忘记了“id”参数(从您的帖子中盲目复制粘贴的 JSON)。现在 JSON 有效负载是正确的,但我无法说出其他部分,如 Kodi 设置(您需要启用对 Kodi 的远程控制)或 JSON-RPC 端点地址。你应该自己检查一下。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-03
    • 2020-03-07
    • 2011-11-15
    • 2014-08-29
    • 2021-11-29
    • 1970-01-01
    相关资源
    最近更新 更多