# jellyfin-plugin-danmu [![Danmu](https://img.shields.io/github/v/release/cxfksword/jellyfin-plugin-danmu)](https://github.com/cxfksword/jellyfin-plugin-danmu/releases) [![Danmu](https://img.shields.io/badge/jellyfin-10.8.x-lightgrey?logo=jellyfin)](https://github.com/cxfksword/jellyfin-plugin-danmu/releases) [![Danmu](https://img.shields.io/github/license/cxfksword/jellyfin-plugin-danmu)](https://github.com/cxfksword/jellyfin-plugin-danmu/main/LICENSE) jellyfin弹幕自动下载插件,已支持的弹幕来源:b站,弹弹play,优酷,爱奇艺。 支持功能: * 自动下载xml格式弹幕 * 生成ass格式弹幕 * 可配置定时更新 * 支持api访问弹幕 ![logo](doc/logo.png) ## 安装插件 只支持最新的`jellyfin 10.8.x`版本 添加插件存储库: 国内加速:https://ghproxy.com/https://github.com/cxfksword/jellyfin-plugin-danmu/releases/download/manifest/manifest_cn.json 国外访问:https://github.com/cxfksword/jellyfin-plugin-danmu/releases/download/manifest/manifest.json ## 如何使用 1. 安装后,进入`控制台 -> 插件`,查看下`Danmu`插件是否是**Active**状态 2. 进入`控制台 -> 媒体库`,点击任一媒体库进入配置页,在最下面的`字幕下载`选项中勾选**Danmu**,并保存 假如想修正匹配错误的弹幕,请在电影或剧集中使用jellyfin的**修改字幕**功能 3. 新加入的影片会自动获取弹幕(只匹配番剧和电影视频),旧影片可以通过计划任务**扫描媒体库匹配弹幕**手动执行获取 4. 可以在元数据中手动指定匹配的视频ID,如播放链接`https://www.bilibili.com/bangumi/play/ep682965`,对应的视频ID就是`682965` 5. 对于电视剧和动画,可以在元数据中指定季ID,如播放链接`https://www.bilibili.com/bangumi/play/ss1564`,对应的季ID就是`1564`,只要集数和b站的集数的一致,并正确填写了集号,每季视频的弹幕会自动获取 6. 同时生成ass弹幕,需要在插件配置中打开,默认是关闭的 7. 定时更新需要自己到计划任务中添加定时时间,默认手工执行更新 > 电影或季元数据也支持手动指定BV号,来匹配UP主上传的视频弹幕。多P视频和剧集是按顺序一一对应匹配的,所以保证jellyfin中剧集有正确的集号很重要 ## 支持的api接口 * `/plugin/danmu/{id}`: 获取影片或剧集的xml弹幕链接,不存在时,url为空 * `/plugin/danmu/raw/{id}`: 获取影片或剧集的xml弹幕文件内容 ## 如何播放 xml格式: * [KikoPlay](https://github.com/KikoPlayProject/KikoPlay) (Windows/Mac) * [Fileball](https://fileball.app/) (iOS/iPadOS/AppleTV) * [弹弹play](https://www.dandanplay.com/) (Windows/Mac/Android) ass格式: * PotPlayer (Windows) * IINA (Mac) * Infuse (Mac/iOS/iPadOS/AppleTV) ## How to build 1. Clone or download this repository 2. Ensure you have .NET Core SDK setup and installed 3. Build plugin with following command. ```sh dotnet restore dotnet publish --output=artifacts Jellyfin.Plugin.Danmu/Jellyfin.Plugin.Danmu.csproj # remove unused dll cd artifacts rm -rf MediaBrowser*.dll Microsoft*.dll Newtonsoft*.dll System*.dll Emby*.dll Jellyfin.Data*.dll Jellyfin.Extensions*.dll *.json *.pdb ``` ## How to test 1. Build the plugin 2. Create a folder, like `danmu` and copy `artifacts/*.dll` into it 3. Move folder `danmu` to jellyfin `data/plugins` folder ## Thanks [downkyi](https://github.com/leiurayer/downkyi)