准备工作

  1. Alist(挂载网盘,方便后续生成strm)
  2. alist-strm(通过alist生成本地strm)
  3. emby(影视播放)
  4. moviepilot-v2(pt搜索,影视整理及后续搜刮)
  5. qbittorrent下载所需影视到服务器本地,然后由(pt下载)
  6. upload+rclone(上传本地影视到网盘)
  7. wxchat(mp微信通知,可选)
  8. embyExternalUrl(302直链播放,可选)
  9. PT站账户

大致流程

该流程通过企业微信程序联动 moviepilot-v2 搜索 PT 站的影视,完成下载、整理、上传到网盘、以及播放的全流程。

  1. 企业微信程序联动

    • 使用企业微信程序搜索 PT 站 的影视内容。
    • 通过 moviepilot-v2 获得相关影视信息。
  2. 下载到服务器

    • 将所需影视发送到 qBittorrent 进行下载。
    • 下载的影视文件存储在本地服务器。
  3. 影视整理

    • 使用 moviepilot-v2 对下载的影视进行重命名。
    • 将影视整理到指定目录。
  4. 上传至网盘

    • 使用 upload 工具将整理好的影视文件上传至网盘。
    • 上传完成后,本地的影视文件被删除。
  5. 获取 Alist 网盘影视内容

    • 通过 alist-strm 获取网盘中的影视内容。
    • 创建 .strm 文件并保存到服务器的本地。
  6. 本地影视搜刮

    • 使用 moviepilot-v2 插件对本地的 .strm 文件进行搜刮。
  7. 播放准备

    • 通过 Emby 扫描本地的 .strm 文件。
    • 最终实现能够播放影视内容(302直链)。

程序安装

目录说明:
/em/docker:所有程序配置文件映射目录
/em/strm:本地strm存放目录
/em/media:本地影视存放目录

1. Alist

docker run -d \
--restart=always \
-v /em/docker/alist:/opt/alist/data \
-p 5244:5244 \
-p 6800:6800 \
-e PUID=0 \
-e PGID=0 \
-e UMASK=022 \
--name=alist \
-e TZ=Asia/Shanghai \
xhofe/alist-aria2:latest
随机生成一个密码
docker exec -it alist ./alist admin random

登录后台-设置-其它-令牌(后面要用)

alist后台

2.qbittorrent

docker run -d \
  --name=qbittorrent \
  -e PUID=1000 \
  -e PGID=1000 \
  -e TZ=Etc/UTC \
  -e WEBUI_PORT=5050 \
  -p 5050:5050 \
  -p 34567:34567 \
  -p 34567:34567/udp \
   -v /em/docker/qbittorrent/config:/config \
   -v /em/media:/media \
   -v /em/docker/qbittorrent/downloads:/downloads \
  --restart unless-stopped \
  lscr.io/linuxserver/qbittorrent:4.6.0

默认用户名:admin 密码:adminadmin

3. moviepilot-v2

docker run -itd \
    --name moviepilot-v2 \
    --hostname moviepilot-v2 \
    -p 3000:3000 \
    -v /em/media:/media \
    -v /em/strm:/strm \
    -v /em/docker/moviepilot-v2/config:/config \
    -v /em/docker/moviepilot-v2/core:/moviepilot/.cache/ms-playwright \
    -v /var/run/docker.sock:/var/run/docker.sock:ro \
    -e 'NGINX_PORT=3000' \
    -e 'PORT=3001' \
    -e 'PUID=0' \
    -e 'PGID=0' \
    -e 'UMASK=000' \
    -e 'TZ=Asia/Shanghai' \
    -e 'AUTH_SITE=iyuu' \
    -e 'IYUU_SIGN=xxxx' \
    -e 'SUPERUSER=admin' \
    # -e 'API_TOKEN=无需手动配置,系统会自动生成。如果需要自定义配置,必须为16位以上的复杂字符串' \
    --restart always \
    jxxghp/moviepilot-v2:latest

安装完成后,添加下载器qbittorrent,然后设置目录

目录设置

媒体库目录就是存放整理好的影视资源的目录,也是我们下面upload程序需要监控的目录

其它的一些设置直接看官方的wiki或者在网上找教程就行,很简单教程也很多。

4.微信通知(可选)

网上自行找教程,需要说的一点就是moviepilot-v2上添加微信通知之后需要重启,不然微信程序的验证无法通过。
贴一份代理的程序命令

docker run -d \
    --name wxchat \
    --restart=always \
    -p 3020:80 \
    ddsderek/wxchat:latest

5.upload

docker run -d -p 5001:5001 \
  -v /em/docker/upload/config.json:/usr/src/app/config.json \
  -v /em/docker/upload/app.log:/usr/src/app/app.log \
  -v /em/media/date/dsj/:/em/media/date/dsj/ \
  -v /em/media/date/dy/:/em/media/date/dy/ \
  -v /usr/bin/rclone:/usr/local/bin/rclone \
  -v /root/.config/rclone:/root/.config/rclone \
  --name upload \
  --restart unless-stopped \
 250520/upload
提前安装好rclone,并通过webdav连接alist/root/.config/rclone是本地的rclone配置文件所在的目录。
程序是让chatgpt写的,勉强能用

拉取docker镜像之后会在/em/docker/upload目录下生成config.jsonapp.log两个目录,删掉,并创建同名的两个文件,在config.json文件贴上如下配置

{
    "dsj_dir": "/em/media/date/dsj/",
    "dy_dir": "/em/media/date/dy/",
    "rclone_dest_dsj": "tianyi:dsj",
    "rclone_dest_dy": "tianyi:dy",
    "tg_bot_token": "xxxx", 
    "tg_chat_id": "xxxx", 
    "monitoring_status": false
}
第一行/em/media/date/dsj/是上面设置的电视剧媒体库目录
第二行/em/media/date/dy/是电影
第三第四行tianyi:dsjtianyi:dy是相应的网盘名称和路径。tianyi是我rclone添加的网盘名称
第五行是tgbot的token,在文件上传成功或失败后发送提醒
第六行是你的tgid

预览图

6.alist-strm

docker run -d \
  --name alist-strm \
  -p 18080:5000 \
  -v /em/strm/alist:/strm \
  -v /em/docker/alist-strm/config:/config \
  itefuir/alist-strm:latest

配置参考
我是分别为dsj和dy创建了两个配置,一个全量更新和一个增量更新。
先分别手动运行一次全量更新,然后定时任务每五分钟运行一次增量更新。

配置文件

定时任务

7.emby

docker run -d \
--name emby \
-v /em/strm:/strm \
-v /em/docker/emby/config:/config \
-e UID=0 \
-e GID=0 \
-e GLIST=0 \
-e GIDLIST=0,0 \
--net=host \
--device /dev/dri:/dev/dri \
--privileged \
--restart always \
amilys/embyserver:beta

安装完成后,进入后台创建api

emby

媒体库路径选择本地strm

emby

8.embyExternalUrl(可选)

cd /em
wget https://github.com/bpking1/embyExternalUrl/archive/refs/tags/v0.4.6.tar.gz
tar -zxvf v0.4.6.tar.gz

解压完成后打开/em/embyExternalUrl-0.4.6/emby2Alist/nginx/conf.d/constant.js文件,修改以下三处

constant.js

再修改/em/embyExternalUrl-0.4.6/emby2Alist/nginx/conf.d/config/constant-mount.js中以下三处

constant-mount.js

修改完后重启,然后emby连接端口由原来的8096改为8091,就可以进行302直链播放。

只有你的网盘直链302重定向才有效果。
302

结束

我的方案其实还有很多可以简化的地方,但是这样虽然看着程序多,其实也不难-。-



如果觉得我的文章对你有用,请随意赞赏

本文标题:自建emby媒体库

本文链接:https://oior.net/archives/123.html

除非另有说明,本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议

声明:转载请注明文章来源。