全过程小贴士-Docker搭建qBittorrent下载器和Jellyfin家庭媒体服务器
0.前言 最近几天忙着部署家庭媒体服务器,中间遇到了很多问题。考虑到个人时间有限,接下来高三并不会有太多时间打磨文章,因此暂时不提供详细的教程。这里只提供一些Tips,供部署遇到问题时排错参考用,基本涵盖了大多数个人部署的时候遇到的问题。详细的部署教程可以参阅网络,文末会推荐一些个人认为质量不错的教程。 I.推荐使用的东西 主程序部分 Jellyfin镜像:nyanmisaka/jellyfin (俗称中国特供版) 该镜像作者对该镜像的描述: 考虑到手动安装或编译 Intel 核显驱动对于用户来说并不容易,本文在此提供了一个开箱即用的 Docker 镜像,包含最新的驱动、jellyfin-ffmpeg、补丁、CJK 系统字体等。后续硬件加速的第一手修复也会推送到此镜像中。Docker 配置文件和相关选项可以继续沿用 jellyfin/jellyfin 的相关教程。 个人主要负责 Jellyfin 硬件编解码和滤镜相关功能的开发,范畴之外的功能请求可能不会回应。 开发者提供的中国特供版镜像 qBittorrent镜像:nevinee/qbittorrent 该镜像作者对该镜像的描述: qB 4.5.4/完成通知/自动分类/IYUU辅助/批量删改TK/TK出错标记/PT辅助脚本 本镜像非魔改版、非快验版、非Enhanced增强版,qBittorrent自身的行为/功能全部未做任何改动 附加功能部分 媒体管理工具:NASTool 这个工具是一站式的媒体刮削,硬链接,自动重命名工具,并且带有PT站点自动签到功能,个人使用非常方便,识别也很准确。如果可以通过验证,建议使用这个工具,他可以替代下面的Hlink和Sonarr和Jackett。不过因为之前无止境的宣传,他已经停止更新了,且用且珍惜罢。 硬链接工具:Hlink(Github) 这个工具具有Web管理界面。能够很方便地兼顾对下载的种子进行做种和Jellyfin搜刮,且支持qBittorrent下载完成后触发自动硬链接。 工具提示:其生成的硬链接会自动检测,刮削改名后不会导致重复生成,非常方便。 自动追番剧工具:AutoBangumi(Github) 这个工具具有Web管理界面,下载器目前仅适配qBittorrent,追番源目前仅有Mikan Project 蜜柑计划 (需代理访问)。 AutoBangumi下面简称AB。AB可以自动获取你在蜜柑计划中订阅的番剧并在番剧更新时自动添加下载任务到qBittorrent中。它甚至可以自动目录结构和文件名为修改可供Jellyfin刮削的样式,并且通过qBittorrent的自带API修改,可以在刮削的同时兼顾做种,可以说是很好用啦φ(゜▽゜*)♪ 自动追剧工具:Sonarr和Jackett 这两个工具我个人并未使用,鉴于网络上很多人推荐使用这个工具,这里仅作列出。关于他们的详情请见文末推荐文章。(哦对了,他俩拿来追番一点都不好用,因为他们无法根据英文很好地匹配想要的番剧,且程序相对复杂。)仅推荐追美剧等英文节目。 II.踩大坑-Jellyfin服务端 关于本地化适配 虽然前文推荐了nyanmisaka的Jellyfin,这里还要提一嘴。Jellyfin原版的客户端(包括linuxserver.io提供的)对中文的支持并不友好,生成的头图或者字幕,都经常会出现方格状,无法正常显示中文。推荐中的nyanmisaka制作的Jellyfin镜像补全了CJK中文字体,开箱即适配中文,无需额外加字体。 关于硬件解码 鉴于本人所使用的J4125小主机性能低下,并不适合服务器端解码,因此本人并未涉足这一块。不过,如果使用推荐的Docker镜像,并且Docker运行的宿主机能够访问到显卡,只要为docker配置如下设备映射: 1 2 devices: - "/dev/dri:/dev/dri" 就可以直接在Jellyfin开启硬件解码了,英特尔显卡一般用Intel QSV 如果你跟我一样,Docker是在PVE主机中的LXC里运行的,那么你可能还需要额外配置一下。可以参考这篇教程,写的还是不错的。下面摘一些该教程中的片段,仅供参考,条件允许可以点原作者的链接支持一下哦qwq 关于刮削时代理 你可能会发现Jellyfin控制台东找西找找不到设置代理的地方,加上国内不好访问TMDB,难以刮削中文数据。没错,官方确实没在网页端设计这个功能。不过,你可以设置系统环境变量。如果使用Docker,你可以在Jellyfin容器的环境变量处添加HTTP代理,需要用到的环境变量如下: 1 2 http_proxy= https_proxy= 注意:这里的大坑在于,大多数情况下,你的代理软件(例如小猫咪)只会告诉你HTTP代理端口,而不告诉你HTTPS端口。但配置代理的时候时http和https代理两个都要配置的,否则不能有效代理容器。http与https代理填写同一个地址即可。例如我的模板: 1 2 http_proxy=http://192.168.100.1:7890 https_proxy=http://192.168.100.1:7890 重点:该客户端与媒体不兼容,服务器未发送兼容的媒体格式 这是个比较笼统的报错形式。不过一般情况下,其实并不是“该客户端与媒体不兼容”的问题,一般问题在于服务端。 ...