RapidBay Kodi插件开发指南:打造专属的家庭影院系统
RapidBay Kodi插件开发指南:打造专属的家庭影院系统
想要打造一个专属的家庭影院系统吗?RapidBay Kodi插件开发指南将带你一步步实现这个梦想!RapidBay是一个强大的自托管种子视频流媒体服务,通过Kodi插件开发,你可以将电影、电视剧等内容无缝集成到家庭影院中。本指南将详细介绍如何开发RapidBay Kodi插件,让你轻松打造个性化的媒体中心。
📦 什么是RapidBay?
RapidBay是一个自托管的视频服务/种子客户端,它让从种子播放视频变得非常简单:
- 在手机/笔记本/平板/智能电视上打开Web应用
- 搜索内容
- 选择想要的视频文件
- 等待下载/转换
- 在设备上播放或投射到AppleTV/Chromecast
核心功能包括:
- 使用Jackett和/或Prowlarr作为搜索后端
- 选择要播放的单个视频文件
- 自动下载字幕
- 自动转换视频文件和字幕以在所有浏览器/Chromecast/AppleTV上播放
- Kodi支持
🛠️ Kodi插件架构解析
插件文件结构
RapidBay的Kodi插件位于项目的app/kodi.addon/目录中:
app/kodi.addon/
├── addon.py # 插件入口文件
├── addon.xml # 插件配置文件
└── creds.json # 凭据配置文件(运行时生成)
核心配置文件:addon.xml
这是Kodi插件的配置文件,定义了插件的基本信息:
<?xml version="1.0" encoding="UTF-8"?>
<addon id="plugin.video.rapidbay" version="1.0.0" name="Rapidbay">
<requires>
<import addon="xbmc.python" version="3.0.0"/>
<import addon="script.module.requests"/>
</requires>
<extension point="xbmc.python.pluginsource" library="addon.py">
<provides>video</provides>
</extension>
</addon>
插件入口文件:addon.py
这是插件的主要入口点,负责加载Kodi界面代码:
import json
import os
import sys
import requests
dirname = os.path.dirname(__file__)
creds_filename = os.path.join(dirname, "creds.json")
with open(creds_filename) as f:
creds = json.load(f)
__url__ = sys.argv[0]
__handle__ = int(sys.argv[1])
__host__ = creds.get("host")
__password__ = creds.get("password")
code = requests.get(f"{__host__}/app.kodi.py").text
exec(code)
🔧 Kodi界面逻辑实现
Kodi客户端类:app.kodi.py
这个文件包含了完整的Kodi界面逻辑,使用xbmcplugin和xbmcgui库:
class RapidbayClient:
def __init__(self, rootpath, password=None):
self.rootpath = rootpath
self.password = password
def search(self, query):
return self._get(f"/api/search/{quote(query)}")
def files(self, magnet_link):
magnet_hash = self._magnet_link_to_hash(magnet_link)
files = None
while files is None:
result = self._get(f"/api/magnet/{magnet_hash}/")
files = result.get("files")
return files
主要功能模块
1. 搜索功能
def search():
dialog = xbmcgui.Dialog()
query = dialog.input("Query")
if query:
show_search_results(query)
2. 文件浏览
def view_files(magnet_link):
for file in client.files(magnet_link):
li = xbmcgui.ListItem(label=file)
li.setProperty("IsPlayable", "true")
li.setInfo("video", {"Title": file})
3. 播放功能
def play(magnet_link, filename):
magnet_hash = client.magnet_download(magnet_link, filename)["magnet_hash"]
# 显示下载进度
progress = xbmcgui.DialogProgress()
progress.create("Preparing file...", "")
# 等待文件准备就绪
while not completed:
status = client.file_status(magnet_hash, filename)
# 更新进度信息
🚀 快速开发指南
第一步:环境准备
确保你的RapidBay服务正常运行。可以通过Docker快速启动:
# 使用Jackett
docker run -p 5000:5000 \
-e JACKETT_HOST="http://your.jackett.host" \
-e JACKETT_API_KEY="YourAPIKey" \
hauxir/rapidbay
第二步:生成Kodi插件
RapidBay会自动生成Kodi插件文件。访问你的RapidBay实例:
http://<你的RapidBay主机>:5000/kodi
这将下载一个ZIP文件,包含完整的Kodi插件。
第三步:安装到Kodi
- 将下载的ZIP文件复制到Kodi设备
- 在Kodi中:系统 → 插件 → 从ZIP文件安装
- 选择RapidBay插件ZIP文件
- 安装完成后,在视频插件中找到RapidBay
第四步:配置连接
首次运行插件时,需要配置:
- RapidBay主机地址(如:http://192.168.1.100:5000)
- 密码(如果设置了PASSWORD环境变量)
⚙️ 高级配置技巧
1. 密码保护
在启动RapidBay时设置密码:
docker run -p 5000:5000 \
-e JACKETT_HOST="http://your.jackett.host" \
-e JACKETT_API_KEY="YourAPIKey" \
-e PASSWORD=YOURPASSWORD \
hauxir/rapidbay
2. 字幕支持
配置多语言字幕下载:
-e SUBTITLE_LANGUAGES="['en', 'zh', 'ja']"
3. Real Debrid加速
使用Real Debrid缓存加速下载:
-e RD_TOKEN=你的RealDebrid令牌
🔄 插件路由系统
Kodi插件使用路由系统处理用户操作:
def router(paramstring):
params = dict(parse_qsl(paramstring))
if params:
if params["action"] == "listing":
if params.get("category") == "search":
search()
elif params.get("magnet") or params.get("torrent_link"):
# 显示文件列表
view_files(magnet)
elif params["action"] == "play":
# 播放视频
play(magnet_link, filename)
else:
# 显示主菜单
root()
🎯 定制化开发
添加新功能
如果你想扩展插件功能,可以修改app.kodi.py文件:
- 添加新菜单项:在
root()函数中添加新的目录项 - 自定义搜索:修改
search()函数支持更多搜索选项 - 增强播放体验:在
play()函数中添加更多播放控制
界面美化
使用Kodi的xbmcgui库自定义界面:
# 创建自定义列表项
li = xbmcgui.ListItem(label="我的视频")
li.setArt({'thumb': '特殊图标.png', 'fanart': '背景图片.jpg'})
li.setInfo('video', {'title': '自定义标题', 'plot': '描述信息'})
📊 插件调试技巧
日志查看
在Kodi中启用调试日志:
- 设置 → 系统 → 日志 → 启用调试日志
- 重新启动Kodi
- 查看日志文件:
~/.kodi/temp/kodi.log
常见问题解决
问题1:连接失败
- 检查RapidBay服务是否运行
- 确认主机地址和端口正确
- 检查防火墙设置
问题2:搜索无结果
- 确认Jackett/Prowlarr配置正确
- 检查API密钥是否有效
- 查看RapidBay日志
问题3:播放失败
- 检查网络连接
- 确认种子文件可用
- 查看视频转换状态
🎉 总结
通过RapidBay Kodi插件开发,你可以轻松打造一个功能强大的家庭影院系统。无论是电影爱好者还是电视剧迷,这个解决方案都能为你提供无缝的观影体验。
主要优势:
- ✅ 完全自托管,数据掌握在自己手中
- ✅ 支持多种设备:Kodi、Chromecast、AppleTV
- ✅ 自动下载和转换,无需手动操作
- ✅ 灵活的插件架构,易于定制扩展
现在就开始你的RapidBay Kodi插件开发之旅,打造属于你自己的智能家庭影院吧!🎬
提示:开发过程中遇到问题,可以参考项目的官方文档和社区支持资源。
更多推荐


所有评论(0)