onelist能让alist聚合网盘拥有海报墙

什么是 onelist ?

onelist 是一个类似 emby 的专注于刮削 alist 聚合网盘形成影视媒体库的程序。

主要解决以下痛点

  • alist 挂载云盘后能在网页端看视频,却没有分类,没有海报墙;
  • 使用 webdav 挂载本地后,用 jellyfin 或者 emby 刮削会下载视频截取封面导致封号;
  • jellyfin 或者 emby 之类,没有大带宽公网 ip,在外难以访问;

准备

TMDB API 申请

在浏览器中打开 https://www.themoviedb.org,右上角 加入 TMDB

注册一个账号

登录成功后,进入 账户设置

找到 API –> 创建 –> Developer ,第一次要填写一些应用信息,无非是应用名称、URL、简介一类的,成功之后就能看到API 密钥

hosts

TMDB 的访问存在一些限制,如果刮削效果不好,可以尝试修改路由器的自定义 HOST 或者容器的 hosts 文件

路由器不同,可能设置自定义 HOST 的方法也不一样,所以这里就只介绍修改容器内的 hosts 文件

1
2
3
4
5
# 进入容器内
docker exec -it onelist /bin/bash

# 编辑 hosts 文件
vi /etc/hosts

在文件的末尾添加官方提供的👇下面的列表,至于效果如何,老苏未并验证

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
13.224.161.90 api.themoviedb.org
104.16.61.155 image.themoviedb.org
13.35.67.86 api.themoviedb.org
54.192.151.79 www.themoviedb.org
13.225.89.239 api.thetvdb.com
13.249.175.212 api.thetvdb.com
13.35.161.120 api.thetvdb.com
13.226.238.76 api.themoviedb.org
13.35.7.102 api.themoviedb.org
13.225.103.26 api.themoviedb.org
13.226.191.85 api.themoviedb.org
13.225.103.110 api.themoviedb.org
52.85.79.89 api.themoviedb.org
13.225.41.40 api.themoviedb.org
13.226.251.88 api.themoviedb.org

vim 编辑器的使用可以网上搜一下,当然有条件的话,还是科学上网更简单一些

安装

在群晖上以 Docker 方式安装。老苏建议使用 docker-compose 方式安装

【说明】:采用群晖套件 Docker 图形化安装,无法指定 host,可以考虑:

  1. 在路由器中添加自定义 HOST
  2. 或者直接添加科学上网的黑名单;
  3. 给容器 hosts 文件增加 dns解析;

来确保 onelist 可以正常访问 api.themoviedb.org

在注册表中搜索 onelist ,选择第一个 msterzhang/onelist,版本选择 latest

本文写作时, latest 版本对应为 v2.0.5

docker 文件夹中,创建一个新文件夹 onelist,并在其中建一个子文件夹 config

文件夹 装载路径 说明
docker/onelist/config /config 存放设置和数据库文件

端口

本地端口不冲突就行,不确定的话可以用命令查一下

1
2
# 查看端口占用
netstat -tunlp | grep 端口号
本地端口 容器端口
5245 5245

环境

可变
PUID 默认值为 911,设为 0
PGID 默认值为 911,设为 0
TZ 时区,默认值为 Asia/Shanghai,不需要修改

命令行安装

docker cli 安装

如果你熟悉命令行,可能用 docker cli 更快捷

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 新建文件夹 onelist 和 子目录
mkdir -p /volume1/docker/onelist/config

# 进入 onelist 目录
cd /volume1/docker/onelist

# 运行容器
docker run -d \
--restart unless-stopped \
--name onelist \
--add-host api.themoviedb.org:13.224.161.90 \
-p 5245:5245 \
-v $(pwd)/config:/config \
-e PUID=0 \
-e PGID=0 \
-e TZ=Asia/Shanghai \
msterzhang/onelist:latest

其中:

  • PUIDPGID 均为 0 表示是 root 用户,也就是超级用户或系统管理员;
  • --add-host api.themoviedb.org:13.224.161.90 会向容器内的 hosts 文件中插入一条记录;

docker-compose 安装

也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
version: '3.3'

services:
onelist:
restart: always
container_name: onelist
image: 'msterzhang/onelist:latest'
volumes:
- './config:/config'
ports:
- '5245:5245'
environment:
- PUID=0
- PGID=0
- UMASK=022
- TZ=Asia/Shanghai
extra_hosts:
- 'api.themoviedb.org:13.224.161.90'
- 'api.themoviedb.org:13.35.67.86'
- 'api.themoviedb.org:13.249.175.212'
- 'api.themoviedb.org:13.35.161.120'
- 'image.themoviedb.org:104.16.61.155'
- 'www.themoviedb.org:54.192.151.79'

然后执行下面的命令

1
2
3
4
5
6
7
8
9
10
# 新建文件夹 onelist 和 子目录
mkdir -p /volume1/docker/onelist/config

# 进入 onelist 目录
cd /volume1/docker/onelist

# 将 docker-compose.yml 放入当前目录

# 一键启动
docker-compose up -d

运行

在浏览器中输入 http://群晖IP:5245 就能看到注册界面

默认用户:xxxx.@qq.com,默认密码:xxxxx

【注意】:进入后台后,需要删除初始化的默认账号,防止被别人登录

登录成功后的主界面

管理 –> 系统设置 –> TheMovieDb api密匙,虽然系统带了一个,但不确定是否能用,最好还是用我们自己申请的 key

也可以在 config

找到配置文件 config.env 文件修改

管理 –> 媒体中心 –> 新增

填写媒体库信息和 Alist 信息,封面可以先不填,类型支持电影和电视剧;域名、账号和密码就是你的 Alist 的域名、管理账号和密码。

媒体库创建成功后,需要挂载目录

Alist 中阿里云盘的设置

老苏收藏的电影的完整路径,http://192.168.191.199:5244/阿里云盘181/视频/电影/全球华语影视

设置路径为 /阿里云盘181/视频/电影/全球华语影视,至于下面两个开关,老苏都打开了

设置完成后就开始刮削了

如果设置没问题,会看到处理进度

完成之后,主页能看到刮削成功的内容

进入查看详情

支持直接播放

看起来刮削的效果并不好,不知道是网络问题还是用了默认的 tmdb api key,回头再试试 修复

参考文档

msterzhang/onelist: 一个类似emby的专注于刮削alist聚合网盘形成影视媒体库的程序。
地址:https://github.com/msterzhang/onelist