使用命令行将目录添加到 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 已正确更新后处理重启和刷新操作。