mirror of
https://github.com/91270/MeiamSubtitles.git
synced 2026-05-12 11:07:12 +08:00
3.0 KiB
3.0 KiB
MeiamSubtitles 项目文档
项目概览
MeiamSubtitles 是一套为 Emby 和 Jellyfin 媒体服务器开发的 C# 字幕插件。它支持从 迅雷影音 和 射手网 自动下载中文字幕,并利用文件哈希匹配技术确保字幕的精确度。
项目结构
解决方案 MeiamSubtitles.sln 包含以下核心项目:
- Emby 插件:
Emby.MeiamSub.Shooter: 射手网字幕提供程序 (目标框架:netstandard2.1)。Emby.MeiamSub.Thunder: 迅雷看看字幕提供程序 (目标框架:netstandard2.1)。
- Jellyfin 插件:
Jellyfin.MeiamSub.Shooter: 射手网字幕提供程序 (目标框架:net9.0)。Jellyfin.MeiamSub.Thunder: 迅雷看看字幕提供程序 (目标框架:net9.0)。- 注: Jellyfin 插件遵循现代 .NET 架构,通过
PluginServiceRegistrator使用依赖注入来管理服务 (如IHttpClientFactory)。
- 开发工具:
Emby.MeiamSub.DevTool: 控制台应用程序,用于开发调试,特别是验证各平台字幕匹配所需的哈希计算逻辑。
编译与开发
环境要求
- .NET 9 SDK (用于编译 Jellyfin 插件)
- .NET Framework / .NET Core (支持 .NET Standard 2.1)
编译命令
在根目录下执行以下命令编译整个解决方案:
dotnet build MeiamSubtitles.sln
编译产出
项目配置了 PostBuild 事件,编译后的 DLL 文件会自动复制到:
- 各项目目录下的
..\Release。 - 解决方案根目录下的
Release或Debug文件夹。
开发调试工具
可以使用 Emby.MeiamSub.DevTool 在本地测试哈希算法:
cd Emby.MeiamSub.DevTool
dotnet run
注:测试时需在 Program.cs 中修改对应的视频文件路径。
安装指南
手动安装 (Emby/通用)
- 编译项目或下载已发布的版本。
- 将生成的
.dll文件复制到服务器的插件目录:- Windows:
Emby-Server\Programdata\Plugins\或Emby-Server\System\Plugins\ - Linux:
/opt/emby-server/system/plugins或/var/lib/emby/plugins - 群晖 (Synology):
/var/packages/EmbyServer/var/plugins
- Windows:
- 重启 Emby 服务。
Jellyfin 安装
Jellyfin 支持通过插件存储库安装:
- 存储库 URL:
https://github.com/91270/MeiamSubtitles.Release/raw/main/Plugin/manifest-stable.json - 在 控制台 -> 插件 -> 存储库 中添加此链接。
核心技术
- C# / .NET: 核心开发语言 (Jellyfin: .NET 9, Emby: .NET Standard 2.1)。
- 依赖注入 (Jellyfin): 使用
IHttpClientFactory管理 HTTP 请求,符合 Jellyfin 现代插件架构。 - 异步编程: 核心 I/O 操作 (文件哈希) 采用异步模式 (
ReadExactlyAsync),防止阻塞服务器线程。 - 依赖库版本:
- Emby:
MediaBrowser.Server.Core(v4.9.1.90) - Jellyfin:
Jellyfin.Controller(v10.11.5)
- Emby:
- 哈希算法: 实现了射手网和迅雷特定的 MD5/SHA1 哈希计算逻辑,用于视频内容的精确匹配。