NAS全功能全自动自动影音工具: video_tools
创作声明:本工具基于作者实际需求制作;本工具未经充分验证,尚存未知bug
功能介绍:
以豆瓣为入口,添加电影
根据豆瓣添加的电影智能选择电影下载,并支持追剧
电影信息搜刮及nfo文件创建,可在Jellyfin等软件中形成海报墙
电影字幕下载。由于字幕库网站规则变化,此功能暂时不能用,需要重新优化
电影下载完成后,通过邮件进行通知
说明及需求:
本工具基于BT网站进行制作,不需要PT账号。很显然,作者没有PT账
本工具不需要安装Jacket等种子搜索软件。可能作者对这些软件使用不善,发现其对中文的支持不是特别好
本工具不支持动漫。由于作者不看动漫,所以没有针对动漫进行程序编制和优化
本工具无任何图像化界面,需要简单配置一下初始化文件
本工具基于dockers部署,所以需要安装docker
本工具基于Qbittorrent进行下载,所以需要安装Qbittorrent。不影响Qbittorrent下载其它资源
本工具支持邮件通知,所以根据需求添加邮箱
各功能简介:
1. 豆瓣添加电影
登录豆瓣,选取想要下载的电影,点击电影页面底部的”想看“按钮并确认。注意不要勾选“仅自己可见”
配置文件中的个人兴趣RSS可以在豆瓣个人主页中右侧底部点击文字“feed: rss 2.0",然后新打开页面地址栏中的地址就是个人兴趣rss的链接,格式为https://www.douban.com/feed/people/yourID/interests
2. 电影下载
国内电影及日韩电影通过BT之家进行下载
欧美电影通过海盗湾进行下载
由于BT站内规则变化,以及种子文件不规范,可能无法下载或者下载错误。大家如果有好的BT网站,尤其是支持中文的,不需要验证码的,请推荐
电影下载仅支持web,br和bd
分辨率支持2016p,1080p和720p,可以在配置文件配置权重。默认权重分别是3,2,1。3为权重最大
其中一条规则为:超过4小时,且下载速度小于预设值,且下载完成百分比小于预设值,则重新下载,以减少种子活跃度的影响。但是对于老电影,肯定做种的人比较少
Downloads文件夹为QBittorrent下载路径,电影下载完成后会硬链接到Videos文件夹
电影通过QBittorrent进行下载。任意版本皆可。此工具不影响QBittorrent的使用,仍可以通过此软件下载其它资源
没有计划增加软件交互界面。可以通过修改”/config“文件夹中的”data.csv“文件进行修改。修改之后还需保存为csv格式的文件
3. 电影信息搜刮
电影搜刮基于豆瓣的电影信息
电视剧搜刮是基于tmdb。相对来说,tmdb的电视剧信息更全面。本工具会修改容器本身的host文件避免DNS污染,所以正常来说,tmdb是可以访问的。建议在配置文件添加tmdb的token以搜索电视剧信息。至于tmdb的token申请,可以自行搜索
搜刮完电影信息,就可以在jellyfin/emby/kodi中看到海报墙了
4. 字幕下载
字幕下载基于字幕库网站
通常会下载两个字幕文件,一个是默认的字幕,文件带"default",一个为备选的字幕,不带"default"。如果默认字幕有问题,可以在视频软件中选择备选字幕
只会下载”ass“和"srt"格式的字幕,其它格式如"sup"格式不会下载
由于字幕库现在需要验证码登陆,暂时取消此功能,后续优化
安装及设置:
1. 文件夹设置:
存储电影的文件一中添加两个子文件夹,Videos文件夹作为jellyfin/emby的媒体库文件夹;Downloads作为QBittorrent的下载文件夹,在QB中设置
2. Docker容器建立
下载docker镜像文件:yixinrushi/video_tools. 其中tag带slim的镜像不带字幕搜索功能。其中tag带full的镜像带字幕搜索功能,由于字幕库规则变化,镜像已经撤下
点击镜像并安装,映射“/config”到文件夹二(配置文件目录),映射“/data”到文件夹一(电影存储目录)。其它不需要任何设置
3. 配置文件
第一次运行会在配置文件夹中创建配置文件“config.ini”,然后容器停止运行
用记事本等文本软件打开配置文件并修改:
rss_url:必须,豆瓣个人兴趣页,格式为https://www.douban.com/feed/people/yourID/interests,
最多可以放3个链接,以逗号分隔。意味着可以多人添加电影
url_qb: 必须, Qbittorrent的web界面地址,格式为http://192.168.2.50:8989
user_qb: 必须,Qbittorrent登录用户名
passwd_qb: 必须,Qbittorrent登录密码
邮箱及邮箱token等,可自行添加。可有可无
video_weight:电影分辨率选择权重。3最高。可有可无
download_speed_flag及download_percentage_flag:超过4小时,平均下载速度小于这里的设定值,且完成度小于这里的设定值,则重新搜索新的种子进行下载。可有可无
interval:电影搜索间隔时间,必须整数,最短为2小时,最大为24小时。默认4小时,可有可无
tmdb_key: 电视剧信息搜刮基于TMDB,所以最好能够注册TMDB并填写token。可有可无
修改完成配置文件,重新启动docker,就可万事大吉
后续版本计划
修改bug
优化代码。由于本作者初学python,所以代码整体架构需要优化
重新优化字幕下载代码
增加更多的BT网站,如YTS。待定
集成QBittorrent到镜像。待定
作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~


值友8643921847
校验提示文案
值友9598847986
校验提示文案
值友3168881153
校验提示文案
入红尘J
校验提示文案
值友6009447707
校验提示文案
值友3047718418
校验提示文案
值友8586338431
校验提示文案
andrew409
校验提示文案
醒在黑夜
校验提示文案
yimengssss
校验提示文案
不想起名
校验提示文案
Fisher
到底是看剧还是折腾
校验提示文案
iamnio
校验提示文案
值友7717544078
校验提示文案
yixinrushi
注意,带字幕镜像的初始化文件和不带字幕镜像的初始化文件不同
校验提示文案
霜叶红于3月花
校验提示文案
老七seven
校验提示文案
rightshore
校验提示文案
值友8888768119
因为PT确实对于下载电影来说很友好。
校验提示文案
骨玉
校验提示文案
莎士比亚没有
校验提示文案
四海哥
校验提示文案
值友9051220985
校验提示文案
值友2735975309
2024/2/26 22:49:47 File "/media_flow/main.py", line 495, in get_video_info
2024/2/26 22:49:47 get_video_info()
2024/2/26 22:49:47 File "/media_flow/main.py", line 1200, in run_media
2024/2/26 22:49:47 run_media()
2024/2/26 22:49:47 File "/media_flow/main.py", line 1443, in
2024/2/26 22:49:47 Traceback (most recent call last):
2024/2/26 22:49:45 UnicodeDecodeError: 'utf-8' codec can't decode byte 0xd7 in position 0: invalid continuation byte
2024/2/26 22:49:45 (result, consumed) = self._buffer_decode(data, self.errors, final)
2024/2/26 22:49:45 File "/usr/local/lib/python3.10/codecs.py", line 322, in decode
2024/2/26 22:49:45 for r in reader:
校验提示文案
折枝插花
校验提示文案
值友9374174338
校验提示文案
值友8364899586
if epi_status[episode_no - 1] != 0:
IndexError: list index out of range
Traceback (most recent call last):
File "/media_flow/main.py", line 1443, in
run_media()
File "/media_flow/main.py", line 1255, in run_media
epi_states, c[9] = download_video(c[0], c[1], c[2], epi_states, c[7], c[9])
File "/media_flow/main.py", line 558, in download_video
epi_status, dl_links = get_tv_tpb(title, o_title, season, epi_status, video_folder, dl_links)
File "/media_flow/main.py", line 897, in get_tv_tpb
ok_flag = download_video_qb(title, epi_status, epi_dl_link, folder)
File "/media_flow/main.py", line 960, in download_video_qb
dl_flag = handle_torrent_content(video_title, epi_status, tags)
File "/media_flow/main.py", line 1029, in handle_torrent_content
校验提示文案
Squall67
校验提示文案
战五渣吖
校验提示文案
值友5712900983
校验提示文案
值友9081202614
校验提示文案
值友9081202614
校验提示文案
值友1048468042
added_date = datetime.datetime.strptime(added_dates[i], gmt_format) + datetime.timedelta(hours=8)
if added_date.date() == datetime.datetime.today().date():
校验提示文案
大火yzs
好多人都在问重启的问题,
我的也是一样的,docker一运行就直接重启了。修改配置之后还是不停的重启。没有任何log信息。容器也进不去。
给个源码地址,让别人给看看什么问题。
或者哪怕把你用的哪些bt网站说明一下也行啊。
校验提示文案
冷与高傲
Traceback (most recent call last):
File "/media_flow/main.py", line 1443, in
run_media()
File "/media_flow/main.py", line 1255, in run_media
epi_states, c[9] = download_video(c[0], c[1], c[2], epi_states, c[7], c[9])
File "/media_flow/main.py", line 552, in download_video
epi_status, dl_links = get_tv_btzj(title, epi_status, video_folder, dl_links)
File "/media_flow/main.py", line 761, in get_tv_btzj
ok_flag = download_video_qb(title, epi_status, torrent_link, folder)
File "/media_flow/main.py", line 960, in download_video_qb
dl_flag = handle_torrent_content(video_title, epi_status, tags)
File "/media_flow/main.py", line 1029, in handle_torrent_content
if epi_status[episode_no - 1] != 0:
IndexError: list index out of range
校验提示文案
momogoutou
校验提示文案
值友5613515448
校验提示文案
欢歌笑语
校验提示文案
值友4865058245
校验提示文案
值友3442569661
校验提示文案