能否通过命令行向Kodi添加目录?如何自动化该手动添加流程?
如何通过命令行向Kodi添加目录
当然可以实现!你没找到相关方法大概率是因为没关注到Kodi的JSON-RPC API——这是Kodi提供的远程控制核心接口,很多人要么习惯用GUI操作,要么用Python等语言封装调用,纯命令行的示例确实不算多,但完全可行。
第一步:开启Kodi的远程控制权限
首先得确保Kodi允许远程API调用:
- 打开Kodi,进入「设置」→「服务」→「控制」
- 勾选「允许通过HTTP远程控制」,默认端口是8080(也可以自定义)
- 如果需要安全验证,设置「用户名」和「密码」(后续命令要用到)
第二步:用curl命令调用API添加目录
最直接的命令行工具就是curl,通过POST请求调用Files.AddSource方法来添加源。
示例:添加本地视频目录
curl -X POST -H "Content-Type: application/json" -d '{ "jsonrpc": "2.0", "method": "Files.AddSource", "params": { "media": "video", # 可选值:video/music/pictures "source": { "path": "/mnt/external-drive/movies", # 你的目标目录路径 "label": "External Movies", # Kodi里显示的源名称 "allowsharing": true # 是否允许共享这个源 } }, "id": 1 }' http://localhost:8080/jsonrpc
如果设置了用户名密码
在curl命令开头加上--user参数:
curl --user 你的用户名:你的密码 -X POST -H "Content-Type: application/json" -d '{ # 上面的JSON内容不变 }' http://localhost:8080/jsonrpc
验证添加结果
可以用Files.GetSources方法查看已添加的源,确认是否成功:
curl -X POST -H "Content-Type: application/json" -d '{ "jsonrpc": "2.0", "method": "Files.GetSources", "params": {"media": "video"}, "id": 1 }' http://localhost:8080/jsonrpc
额外技巧
- 除了本地目录,还可以添加网络共享路径,比如SMB:
"path": "smb://your-server/music-library",只要Kodi能识别这个路径就行 - 如果要批量添加多个目录,可以把命令写成Shell脚本,循环处理路径列表
为什么这类问题看起来少见?
大部分自动化场景会用Python、PowerShell等语言封装JSON-RPC调用,纯命令行的curl示例确实不多,但本质都是基于同一个API。你之前搜索没找到,可能是关键词没选对——试试用「Kodi JSON-RPC add source command line」这类关键词搜索,就能找到更多相关内容了。
内容的提问来源于stack exchange,提问作者nullgeppetto




