RapidBay Kodi插件开发指南:打造专属的家庭影院系统

【免费下载链接】rapidbay Self-hosted torrent video streaming service compatible with Chromecast, AppleTV & Kodi deployable in the cloud 【免费下载链接】rapidbay 项目地址: https://gitcode.com/gh_mirrors/ra/rapidbay

想要打造一个专属的家庭影院系统吗?RapidBay Kodi插件开发指南将带你一步步实现这个梦想!RapidBay是一个强大的自托管种子视频流媒体服务,通过Kodi插件开发,你可以将电影、电视剧等内容无缝集成到家庭影院中。本指南将详细介绍如何开发RapidBay Kodi插件,让你轻松打造个性化的媒体中心。

📦 什么是RapidBay?

RapidBay是一个自托管的视频服务/种子客户端,它让从种子播放视频变得非常简单:

  1. 在手机/笔记本/平板/智能电视上打开Web应用
  2. 搜索内容
  3. 选择想要的视频文件
  4. 等待下载/转换
  5. 在设备上播放或投射到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

  1. 将下载的ZIP文件复制到Kodi设备
  2. 在Kodi中:系统 → 插件 → 从ZIP文件安装
  3. 选择RapidBay插件ZIP文件
  4. 安装完成后,在视频插件中找到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文件:

  1. 添加新菜单项:在root()函数中添加新的目录项
  2. 自定义搜索:修改search()函数支持更多搜索选项
  3. 增强播放体验:在play()函数中添加更多播放控制

界面美化

使用Kodi的xbmcgui库自定义界面:

# 创建自定义列表项
li = xbmcgui.ListItem(label="我的视频")
li.setArt({'thumb': '特殊图标.png', 'fanart': '背景图片.jpg'})
li.setInfo('video', {'title': '自定义标题', 'plot': '描述信息'})

📊 插件调试技巧

日志查看

在Kodi中启用调试日志:

  1. 设置 → 系统 → 日志 → 启用调试日志
  2. 重新启动Kodi
  3. 查看日志文件:~/.kodi/temp/kodi.log

常见问题解决

问题1:连接失败

  • 检查RapidBay服务是否运行
  • 确认主机地址和端口正确
  • 检查防火墙设置

问题2:搜索无结果

  • 确认Jackett/Prowlarr配置正确
  • 检查API密钥是否有效
  • 查看RapidBay日志

问题3:播放失败

  • 检查网络连接
  • 确认种子文件可用
  • 查看视频转换状态

🎉 总结

通过RapidBay Kodi插件开发,你可以轻松打造一个功能强大的家庭影院系统。无论是电影爱好者还是电视剧迷,这个解决方案都能为你提供无缝的观影体验。

主要优势:

  • ✅ 完全自托管,数据掌握在自己手中
  • ✅ 支持多种设备:Kodi、Chromecast、AppleTV
  • ✅ 自动下载和转换,无需手动操作
  • ✅ 灵活的插件架构,易于定制扩展

现在就开始你的RapidBay Kodi插件开发之旅,打造属于你自己的智能家庭影院吧!🎬

提示:开发过程中遇到问题,可以参考项目的官方文档和社区支持资源。

【免费下载链接】rapidbay Self-hosted torrent video streaming service compatible with Chromecast, AppleTV & Kodi deployable in the cloud 【免费下载链接】rapidbay 项目地址: https://gitcode.com/gh_mirrors/ra/rapidbay

Logo

欢迎加入 MCP 技术社区!与志同道合者携手前行,一同解锁 MCP 技术的无限可能!

更多推荐