文章摘要
GPT 4
此内容根据文章生成,并经过人工审核,仅用于文章内容的解释与总结

AutoFilm简介

通过Alist提供的Webdav获取网盘视频播放链接并生成Strm文件,可被Jellyfin/Emby等影音媒体服务器识别并直接播放

使用文档

当前文档适用版本:v1.2.2
若版本不同,具体功能实现可能会有差异

部署方式

Docker部署(推荐)

1
2
docker run -d --name autofilm  -v ./config:/config -v ./media:/media -v./logs:/logs akimio/autofilm

Python部署

  1. 安装Python,推荐版本Python3.12
  2. 克隆项目并进入项目目录:
    1
    2
    git clone https://github.com/Akimio521/AutoFilm.git
    cd AutoFilm
  3. 安装依赖:
    1
    pip install -r requirements.txt
  4. 配置配置文件config.yaml
  5. 启动程序:
    1
    python app/main.py

配置文件

参考下面的示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
Settings:
DEV: False # 开发者模式(可选,默认 False)

Alist2StrmList:
- id: 动漫 # 标识 ID
cron: 0 20 * * * # 后台定时任务 Crontable 表达式
url: https://alist.akimio.top # Alist 服务器地址
username: admin # Alist 用户名
password: adminadmin # Alist 密码
source_dir: /ani/ # Alist 服务器上文件夹路径
target_dir: D:\media\ # 输出路径
flatten_mode: False # 平铺模式,开启后 subtitle、image、nfo 强制关闭(可选,默认 False)
subtitle: False # 是否下载字幕文件(可选,默认 False)
image: False # 是否下载图片文件(可选,默认 False)
nfo: False # 是否下载 .nfo 文件(可选,默认 False)
raw_url: False # 是否使用原始地址替换 Alist 服务器下载地址(可选,默认 False)
overwrite: False # 覆盖模式,本地路径存在同名文件时是否重新生成/下载该文件(可选,默认 False)
other_ext: # 自定义下载后缀,使用西文半角逗号进行分割,(可选,默认为空)
max_workers: 5 # 下载文件最大并发数(可选,默认 5)

- id: 电影
cron: 0 0 7 * *
url: http://alist.example2.com:5244
username: alist
password: alist
source_dir: /网盘/115/电影
target_dir: /media/my_video
flatten_mode: False
subtitle: False
image: False
nfo: False
raw_url: True
overwrite: False
other_ext: zip,md
max_workers: 5

Ani2AlistList:
- id: 新番追更 # 标识 ID
cron: 20 12 * * * # 后台定时任务 Crontable 表达式
url: https://127.0.0.1:5244 # Alist 服务器地址
username: admin # Alist 用户名(需管理员权限)
password: myalist # Alist 密码
target_dir: /视频/动漫/新番 # Alist 地址树存储器路径,若存储器不存在将自动创建(可选,默认/Anime)
rss_update: False # 使用 RSS 订阅更新最新番剧,启用后忽视传入的 year 和 month(可选,默认为 True)
year: 2024 # 动漫季度-年份,仅支持 2019-1 及以后更新的番剧(可选,默认使用当前日期)
month: 7 # 动漫季度-月份,仅支持 2019-1 及以后更新的番剧(可选,默认使用当前日期)
src_domain: aniopen.an-i.workers.dev # ANI Open 项目域名(可选,默认为 aniopen.an-i.workers.dev)
rss_domain: api.ani.rip # ANI Open 项目 RSS 订阅域名(可选,默认为 api.ani.rip)

Alist2StrmList模块

主要用于生成Strm文件,可配置是否下载图片、字幕、nfo等详细配置,也可以自定义需要下载的格式
主要参数

  • cron:用于后台定时任务,例如0 20 * * *为每天晚上8:00都会运行
  • source_dir:为存放需要转化为Strm文件的路径,程序会遍历其子路径(如果用户设置了base_path,已登入用户看到的路径为准,不需要手动补全base_path
  • target_dir:本地Strm文件的存放目录,建议使用绝对路径,相对路径可能出现找不到文件的情况
  • flatten_mode:启用后只生成Strm文件,关闭图片、字幕等文件的下载,并且Strm文件会直接在target_dir目录中生成,并非在其子目录中生成
  • overwrite:覆写功能,默认关闭,多次运行的时候检测到本地文件已经存在,会跳过,开启后会先删除原文件再重新生成
  • raw_url:会请求上游云盘获取云盘的CDN下载链接替换Alist的下载链接(此链接一般有时效性

备注
用户开启签名(Sign)功能后,下载链接会额外多出查询参数,新版本(v1.2.2及以上)无需配置Token既可以获取正确下载链接,如果设置签名过期时间,可以配合cron后台任务和overwrite覆写功能一起使用

Ani2Alist模块

配合ANi Open (an-i.workers.dev)项目使用,将动漫挂载到Alist上,可以配合Alist2StrmList模块使用
主要参数

  • cron:用于后台定时任务,例如0 20 * * *为每天晚上8:00都会运行
  • target_dir:将视频挂载到Alist服务器上的父路径(所有视频都会在这个路径下)
  • rss_update:通过ANI Open项目的RSS订阅快速添加最近更新的15个番剧
  • year/month:指定更新哪个季度的番剧,仅支持 2019-1 及以后更新的番剧

备注
Alist用户需具有管理员权限,否则失败,网络条件不好的可以自行反代Ani Open的两个域名并填入src_domainrss_domain