本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
转载自夜明的孤行灯
本文链接地址: https://www.huangyunkun.com/2021/08/18/write-your-own-jellyfin-plugin/
最近把多媒体管理软件从Plex切换到Jellyfin了,之前用的ttm搜刮器做的整理,最近由于Nas没有放在住的房屋,远程管理比较麻烦,所以又把目光放回Jellyfin的插件上。
由于动漫都是走Sonarr下载的,把rename打开以后识别上就没啥大问题了。官方自带了themoviedb的插件,但是一是不支持代理,二是包含了很多YouTube的信息,这个确实不必要。所以自己参考写了一个插件,主要是支持Proxy方便访问themoviedb,二是移除了一些不需要的信息。
插件编写
插件的编写使用C#,主要就是实现对应的接口,主要是IRemoteMetadataProvider和IRemoteImageProvider。一个负责源数据,一个负责图片。
我一般是用TV和Movie两种,其中TV的集数识别可以依赖Jellyfin,当然如果有需要也可以自己实现从文件名分析。
插件测试
插件的测试自然可以用单元测试,但是由于一般来说插件主要做的是把信息转为Jellfyin的对象,没有太多复杂逻辑。直接打包放到Jellfyin中使用就行了。
在本地为了方便,我一般用docker-compose来启动。
version: "3"
services:
jellyfin:
image: jellyfin/jellyfin:latest
volumes:
- config:/config:z
- ./videos:/media/videos
- ./Jellyfin.Plugin.HappyMovie/bin/Debug/net5.0/Jellyfin.Plugin.HappyMovie.dll:/config/plugins/HappyMovie/Jellyfin.Plugin.HappyMovie.dll:ro
- ~/.nuget/packages/yove.proxy/1.1.1/lib/netstandard2.0/Yove.Proxy.dll:/config/plugins/HappyMovie/Yove.Proxy.dll:ro
ports:
- 127.0.0.1:8896:8096
volumes:
config:
dll文件路径根据自己的项目实际情况修改即可。这里也要包括外部依赖。比如我这里使用了代理配置,所以依赖了YoveProxy库。
插件发布安装
插件直接分发DLL即可完成安装。为了更好的方便普通用户使用,也可以提供一个manifest.json文件。
这个文件的具体格式可以参考:https://raw.githubusercontent.com/htynkn/HappyMovie/master/manifest.json
也有现成的python脚本可以生成。最关键是把DLL文件打包到zip中。
本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
转载自夜明的孤行灯
本文链接地址: https://www.huangyunkun.com/2021/08/18/write-your-own-jellyfin-plugin/