You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JSON-RPC调用Player.GetItem返回空详情问题求助

Kodi JSON-RPC 获取播放视频详情问题

问题场景

通过以下JSON-RPC调用启动视频:

{"jsonrpc": "2.0",
    "method": "Player.Open",
    "params":
        {"item":
            {"file": "c:\\MyCodes\\samples\\sample-6s.mp4" }},
    "id": 1
}

启动后调用Player.GetItem获取视频详情:

{
    "jsonrpc": "2.0",
    "method": "Player.GetItem",
    "params": {
        "properties": [
            "title",
            "album",
            "artist",
            "season",
            "episode",
            "duration",
            "showtitle",
            "tvshowid",
            "thumbnail",
            "file",
            "fanart",
            "streamdetails"
        ],
        "playerid": 1
    },
    "id": "VideoGetItem"
}

返回结果中streamdetails的audio、video数组为空:

{
    "id": "VideoGetItem",
    "jsonrpc": "2.0",
    "result": {
        "item": {
            "album": "",
            "artist": [],
            "episode": -1,
            "fanart": "",
            "file": "c:\\MyCodes\\samples\\sample-6s.mp4",
            "label": "sample-6s.mp4",
            "season": -1,
            "showtitle": "",
            "streamdetails": {
                "audio": [],
                "subtitle": [],
                "video": []
            },
            "thumbnail": "",
            "title": "",
            "tvshowid": -1,
            "type": "unknown"
        }
    }
}

但通过Kodi GUI启动同一视频后,调用Player.GetItem能正常返回完整的streamdetails信息:

{
    "id": "VideoGetItem",
    "jsonrpc": "2.0",
    "result": {
        "item": {
            "album": "",
            "artist": [],
            "episode": -1,
            "fanart": "",
            "file": "C:\\MyCodes\\samples\\sample-6s.mp4",
            "label": "sample-6s.mp4",
            "season": -1,
            "showtitle": "",
            "streamdetails": {
                "audio": [
                    {
                        "channels": 2,
                        "codec": "mp3",
                        "language": ""
                    }
                ],
                "subtitle": [],
                "video": [
                    {
                        "aspect": 1.3333330154418946,
                        "codec": "mpeg4",
                        "duration": 2701,
                        "hdrtype": "",
                        "height": 384,
                        "language": "",
                        "stereomode": "",
                        "width": 512
                    }
                ]
            },
            "thumbnail": "image://video@C%3a%5cMyCodes%5csamples%5csample-6s.mp4/",
            "title": "",
            "tvshowid": -1,
            "type": "unknown"
        }
    }
}

解决办法

不需要更换Player.GetItem方法,问题出在直接用Player.Open打开文件时,Kodi未自动触发媒体元数据解析。可通过以下方式解决:

1. 调用Files.GetFileDetails预解析文件信息

在启动播放前或播放后,调用该方法强制Kodi解析文件流信息,参数需指定properties包含streamdetails:

{
    "jsonrpc": "2.0",
    "method": "Files.GetFileDetails",
    "params": {
        "file": "c:\\MyCodes\\samples\\sample-6s.mp4",
        "properties": [
            "streamdetails",
            "thumbnail"
        ]
    },
    "id": "GetFileDetails"
}

返回结果会包含完整的音频、视频参数。

2. 延迟调用Player.GetItem

若必须使用Player.GetItem,可在视频启动后等待1-2秒,待Kodi完成媒体解析后再调用,同样能拿到完整的streamdetails数据。

内容的提问来源于stack exchange,提问作者Szabó Győző

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 15:25:23