自定义Jellyfin插件

本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

转载自夜明的孤行灯

本文链接地址: 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/

发表评论