使用命令行将目录添加到 Kodi
Add directory to Kodi using the command line
是否可以使用命令行将目录添加到 Kodi?到目前为止我一直在寻找这个但没有运气。
我正在寻找的是使用命令行自动执行手动添加目录的过程。出于某种原因,这似乎不是一个受欢迎的问题;我错过了什么吗?
爬取 Kodi/XBMC 论坛和 wiki 显示一些选项...这是我收集的...
直接编辑数据库(不推荐)
Kodi 将此信息存储在一个 sqlite 数据库中,但是这个位置很难自己操作,因为它需要了解每个 sqlite 数据库文件的路径以及每个 column/table在每个数据库文件中(假设它是一个严格的关系数据库文件,大多数是)。
例如:
sqlite3 <path_to_kodi_preferences>/userdata/Database/MyVideos119.db
sqlite> .tables
actor movie_view studio_link
actor_link movielinktvshow tag
art musicvideo tag_link
bookmark musicvideo_view tvshow
country path tvshow_view
country_link rating tvshowcounts
director_link season_view tvshowlinkpath
episode seasons tvshowlinkpath_minview
episode_view sets uniqueid
files settings version
genre stacktimes writer_link
genre_link streamdetails
movie studio
编辑sources.xml
官方 wiki 提到 <path_to_kodi_preferences>/userdata/sources.xml
for this but it still assumes you know how to manipulate an XML file programmatically 并且社区警告说这可能是“侵入性的”并且官方 addons/plugins 不允许使用此技术。
我深入研究了这个,XML 似乎是要走的路,例如,添加视频:
<video>
<default pathversion="1"></default>
<source>
<name>Movies</name>
<path pathversion="1">/home/ubuntu/Movies/</path>
<allowsharing>true</allowsharing>
</source>
<source>
<name>Video Playlists</name>
<path pathversion="1">special://videoplaylists/</path>
<allowsharing>true</allowsharing>
</source>
+ <source>
+ <name>MyCustomDirectory</name>
+ <path pathversion="1">/home/ubuntu/MyCustomDirectory/</path>
+ <allowsharing>true</allowsharing>
+ </source>
</video>
...但是评论表明 Kodi 需要重新启动并且这个位置仍然 needs to be crawled/refreshed. There may be some "watchdog" add-ons 可以为你做这件事。
使用 Add-On API
另一种技巧是使用官方Python API, such as through UpdateLibrary(database, path)
however examples usually involve Python to call the API directly. Here's an example from the PlexKodiConnect GitHub project:
# Make sure Kodi knows we wiped the databases
xbmc.executebuiltin('UpdateLibrary(video)')
if utils.settings('enableMusic') == 'true':
xbmc.executebuiltin('UpdateLibrary(music)')
由于最简单的解决方案往往是最好的,我建议研究一种自动化 settings.xml
文件的方法。修改 XML 文件在几乎所有编程语言中都是 well-documented(到那时,你可以在技术上 brute-force 并且只需在给定位置注入一个 XML 字符串而不需要 xml 解析器),然后在确认 XML 已正确更新后处理重启和刷新操作。
是否可以使用命令行将目录添加到 Kodi?到目前为止我一直在寻找这个但没有运气。
我正在寻找的是使用命令行自动执行手动添加目录的过程。出于某种原因,这似乎不是一个受欢迎的问题;我错过了什么吗?
爬取 Kodi/XBMC 论坛和 wiki 显示一些选项...这是我收集的...
直接编辑数据库(不推荐)
Kodi 将此信息存储在一个 sqlite 数据库中,但是这个位置很难自己操作,因为它需要了解每个 sqlite 数据库文件的路径以及每个 column/table在每个数据库文件中(假设它是一个严格的关系数据库文件,大多数是)。
例如:
sqlite3 <path_to_kodi_preferences>/userdata/Database/MyVideos119.db
sqlite> .tables
actor movie_view studio_link
actor_link movielinktvshow tag
art musicvideo tag_link
bookmark musicvideo_view tvshow
country path tvshow_view
country_link rating tvshowcounts
director_link season_view tvshowlinkpath
episode seasons tvshowlinkpath_minview
episode_view sets uniqueid
files settings version
genre stacktimes writer_link
genre_link streamdetails
movie studio
编辑sources.xml
官方 wiki 提到 <path_to_kodi_preferences>/userdata/sources.xml
for this but it still assumes you know how to manipulate an XML file programmatically 并且社区警告说这可能是“侵入性的”并且官方 addons/plugins 不允许使用此技术。
我深入研究了这个,XML 似乎是要走的路,例如,添加视频:
<video>
<default pathversion="1"></default>
<source>
<name>Movies</name>
<path pathversion="1">/home/ubuntu/Movies/</path>
<allowsharing>true</allowsharing>
</source>
<source>
<name>Video Playlists</name>
<path pathversion="1">special://videoplaylists/</path>
<allowsharing>true</allowsharing>
</source>
+ <source>
+ <name>MyCustomDirectory</name>
+ <path pathversion="1">/home/ubuntu/MyCustomDirectory/</path>
+ <allowsharing>true</allowsharing>
+ </source>
</video>
...但是评论表明 Kodi 需要重新启动并且这个位置仍然 needs to be crawled/refreshed. There may be some "watchdog" add-ons 可以为你做这件事。
使用 Add-On API
另一种技巧是使用官方Python API, such as through UpdateLibrary(database, path)
however examples usually involve Python to call the API directly. Here's an example from the PlexKodiConnect GitHub project:
# Make sure Kodi knows we wiped the databases
xbmc.executebuiltin('UpdateLibrary(video)')
if utils.settings('enableMusic') == 'true':
xbmc.executebuiltin('UpdateLibrary(music)')
由于最简单的解决方案往往是最好的,我建议研究一种自动化 settings.xml
文件的方法。修改 XML 文件在几乎所有编程语言中都是 well-documented(到那时,你可以在技术上 brute-force 并且只需在给定位置注入一个 XML 字符串而不需要 xml 解析器),然后在确认 XML 已正确更新后处理重启和刷新操作。