使用AutoFilm加快emby扫描库
发表于|更新于
|阅读量:
AutoFilm简介
通过Alist提供的Webdav获取网盘视频播放链接并生成Strm文件,可被Jellyfin/Emby等影音媒体服务器识别并直接播放
部署方式
Docker部署(推荐)
1
| docker run -d --name autofilm -v ./config:/config -v ./media:/media -v./logs:/logs akimio/autofilm
|
Python部署
安装Python,推荐版本Python3.12
克隆项目并进入项目目录:
1 2
| git clone https://github.com/Akimio521/AutoFilm.git cd AutoFilm
|
安装依赖:
1
| pip install -r requirements.txt
|
配置配置文件config.yaml
启动程序:
修改配置文件 config.yml
参考下面的示例
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 49 50
| 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 及以后更新的番剧
使用方法
按照上面的要求部署好AutoFilm之后,修改配置文件中的对应参数,会生成.strm文件,保存.strm文件的文件夹最好为emby的媒体文件夹(如果不是,则需要手动复制生成好的.strm文件到emby的媒体文件夹中),这些.strm文件会被emby识别为对应的视频。
AutoFilm下config.yml中的alist地址,必须为emby服务器可访问的地址,不然在emby服务器中使用.strm文件生成的视频播放时会报错
修改好配置文件之后,可以只执行一次,但是配置文件中的定时任务需要在手动执行的时间之后,执行完成即可关闭程序