登录后台
登录
页面导航
关于
TODO
DONE
MENU
LotusIR
关于
TODO
DONE
Plex+Real-Debrid+Windows 家庭影音库
默认分类
0
2024-03-27
788
本文编写于 429 天前,最后修改于 429 天前,其中某些信息可能已经过时。
# Plex+Real-Debrid+Windows 家庭影音库 这两天在 windows 上搞了个家庭影音库(一般会搞在 NAS 上?),感觉踩了很多坑,写个文档记录一下 ## 需要工具 - Plex: 免费的功能就够用了,也可以购买终身VIP约99刀 - 管理本地媒体的软件,采用 Server-Client 模型,需要有一个设备一直跑着 Server,然后可以从各种设备下载 Client 访问(支持 PC,安卓,web,IOS,TV等) - 相比单纯的文件管理,他多了视频刮削的功能,可以根据文件名识别电影/电视剧的信息,然后拉取各种元数据(海报、演员等),当然也支持其他各种视频转码音频转码等功能 - Real-Debrid: 约3欧/月 - 国内好像不太常用,作用是帮你下载 magnet 或者 torrent,然后存储在它的服务器上并可以提供一个 https 的下载链接,作用与网盘类似 - 相比网盘,这里下载的文件是不能进行编辑移动或者重命名等操作的,这也给后面针对 Plex 进行改名造成了一些麻烦 - rclone - 一个可以将网盘等网络存储介质挂载到本地的软件,它可以将 Real-Debrid 下载的文件挂载到本地(通过 WebDav),然后就可以使用 Plex 进行管理 - docker - windows ## 部署步骤 ### 安装 docker 这一步就略过啦~ ### 启动 Plex 的 docker 官方网址是 https://github.com/plexinc/pms-docker 首先,我们需要创建一个 docker volume 来持久化 plex 的 config,这样不会每次启动镜像时都出现一个新的 server。之所以不直接使用本地路径挂载是由于 windows 中通过 VM 的 SMB 挂载的目录不支持 File Lock,会 corrupt plex 的数据库 > Docker on Windows works differently than it does on Linux; it uses a VM to run a stripped-down Linux and then runs docker within that. The volume mounts are exposed to the docker in this VM via SMB mounts. While this is fine for media, it is unacceptable for the `/config` directory because SMB does not support file locking. This **will** eventually corrupt your database which can lead to slow behavior and crashes. If you must run in docker on Windows, you should put the `/config` directory mount inside the VM and not on the Windows host. It's worth noting that this warning also extends to other containers which use SQLite databases. **通过以下命令创建一个 docker volume** ```powershell docker volume create plex-config ``` 在 windows 环境下,由于实际上 docker 的镜像是跑在虚拟机中的,因此 host 网络模式的表现与 linux 有所不同,当使用 host 模式时不能通过 localhost 访问到 plex 服务器,而 macvlan 模式相对也比较麻烦(~~懒得研究了~~),因此这里我使用了 bridge 模式启动镜像 **通过以下命令拉起 Plex 的 docker** ``` docker run -d \ --name=plex \ -e TZ="PST" \ -e PLEX_CLAIM="
" \ -e HOSTNAME="Docker PMS" \ -e ADVERTISE_IP="https://192.168.0.7:32400,http://192.168.0.7:32400/" \ -p 32400:32400/tcp \ -v plex-config:/config \ --privileged \ --device /dev/fuse \ plexinc/pms-docker ``` 其中需要注意的参数有2个,一个时 `PLEX_CLAIM`,可以通过 https://www.plex.tv/claim/ 获取 另一个时 ADVERTISE_IP,需要把其中的 192.168.0.7 修改成主机的局域网 IP 地址,这样同一局域网的其他设备会通过这个地址来访问 Plex 服务器(否则默认的话会通过 Docker 的 IP 地址访问,而 docker 的地址只有主机能访问通),如果要通过外网访问,还没想好要怎么设置。。 另外,这里给予了容器 privileged 权限,这是为了让 rclone 需要用到的 fuse 正常工作,不确定是不是又其他解决方法。 ### 在 docker 中挂载 real-debrid 文件 - 首先进入 docker 容器 ```powershell docker exec -it plex bash ``` - plex 的镜像缺少许多基础的工具,首先需要安装,通过以下命令进行安装(一行一行来) ```bash apt-get update apt-get install sudo apt-get install wget apt-get install vim apt-get install unzip apt-get install fuse apt-get install fuse3 ``` - 接下来安装 [rclone](https://rclone.org/downloads/) ``` wget https://rclone.org/install.sh && sudo ./install.sh && rm install.sh ``` - 安装完成后配置 real-debrid 的 webdav 挂载,挂载需要用到的 url、用户名、密码等信息可以在 https://real-debrid.com/account 找到 ``` rclone config ``` - 完成配置后,挂载到 docker 中,由于 plex server 的用户是一个 plex 的用户,我们需要进行一些设置使得这个用户可以访问到我们挂载的文件夹 创建挂载的目标目录,并修改目录的所有者 ``` mkdir /RealDebrid && chown plex /RealDebrid ``` 修改 `/etc/fuse.conf` 文件,把 `user_allow_other` 取消注释 ``` vim /etc/fuse.conf ``` 挂载 RealDebrid ,其中 --daemon 以守护进程的模式挂载(后台挂载),--allow-other 用于允许其他用户访问挂载的目录 ```bash rclone mount realdebrid: /RealDebrid --daemon --allow-other ``` ### 重新组织目录结构 好了,到了上一步,我们的 Plex 服务已经基本布置完成了,我们已经可以打开 Plex 然后将挂载的目录添加到媒体库中进行观看了,当然现在还有一些问题,由于我们下载的文件名可能比较混乱,Plex 无法进行良好的刮削,因此我们需要重新组织目录结构 这里我采用的方法是将挂载目录中的视频文件通过符号链接链接到另一个目录,然后手动组织目录结构,使用绝对路径进行符号链接可以使之后的整理更加简单 而这也是我不直接在 windows 上部署 plex server 的原因,由于挂载的目录是完全只读的,而 windows 中符号链接对于 plex 并不生效,硬链接则必须是同一个磁盘上进行 Anyway, 当整理完目录后所有的准备工作都已经完成了,enjoy~ ## 下一步 - [ ] 开发一个程序(网页)管理媒体文件,自动进行符号链接 - [ ] 基于[蜜柑计划](https://mikanani.me/Home/Classic)完成RSS订阅自动追番的功能
取消回复
评论