qBittorrent如何运行脚本 BT实现自动改名并方便Jellyfin的搜刮器
qBittorrent如何运行脚本 BT实现自动改名并方便Jellyfin的搜刮器
很多影视网站下载的视频名字大概是为了规避监测,命名非常奇葩,比如:z灼f流,y骨y等等。如果你使用了Jellyfin,Emby又或者是其他视频管理软件,搜刮器就会搜不到相应的电视剧的介绍,图片和字幕了,但是40多集电视剧每一集都要改就有些麻烦了。
还有一些电影,BT下载后会带有网站的一些网址或名称,比如:【高清影视之家发布 www.HDBTHD.com】,【高清影视之家首发 www.BBEDDE.com】等。还有目录里会放一些以MP4或者PNG结尾的假的宣传文件,这就会影响Jellyfin之类的搜刮相关的影视介绍和字幕。
如果你使用的是qBittorrent的话,那么你就可以使用它的“运行外部程序”功能,可以再BT下载创建时或者完成时运行不同的脚本。依据所有开发语言都是脚本语言的概念,你可以运行Bash脚本,也可以运行Python,当然也可以运行JS或者其他任何语言的脚本。如果你使用的是Windows系统,安装一下Python语言,然后就可以让qBittorrent自动运行你的python脚本了。比如:
- 自动重命名文件夹
- 删除图片及网站的宣传文件
- 重命名视频文件的名称
- 删除完成的种子
- 或者其他任何你想要的行动等等
如何找到qBittorrent“运行外部程序”功能?
可能有些人在qBittorrent的设置里并没有找到可以配置运行外部脚本的选项,其实这个选项并不在桌面应用的设置界面,而是在网页版界面的设置里。

这是我设置了8181端口,这个可以在桌面应用-设置的“Web UI”选项里配置。
by itgeeker.net
这里有两个方式运行自定义脚本,qBittorrent称之为外部程序。一个是新增BT现在时,另一个是完成下载后运行。分别是:
- 新增 torrent 时运行外部程序
- torrent 完成时运行外部程序
ITGeeker技术奇客这里 以BT下载完成后如何运行Python脚本为例与大家分享。
qBittorrent脚本参数
qBittorrent在配置的下方很贴心的附上了脚本运行可能需要的变量。这些是qBittorrent支持的参数(区分大小写):
- %N:Torrent 名称
- %L:分类
- %G:标签(以逗号分隔)
- %F:内容路径(与多文件 torrent 的根目录相同)
- %R:根目录(第一个 torrent 的子目录路径)
- %D:保存路径
- %C:文件数
- %Z:Torrent 大小(字节)
- %T:当前 tracker
- %I: 信息哈希值 v1
- %J:信息哈希值 v2
- %K: Torrent ID
提示:使用引号将参数扩起以防止文本被空白符分割(例如:”%N”)
qBittorrent的脚本运行命令如何配置?
WINDOWS运行PYTHON脚本命令格式:
D:\pyenv311_itgeeker_dev\Scripts\python.exe D:\download_dev\qbit_after.py "%F"
UBUNTU运行PYTHON脚本命令格式:
/bin/python3 /opt/qbit_after.py "%F"
#或者使用Bash脚本
sh /opt/qbit_after.sh "%F"
- 前面是Python命令的完整路径,ITGeeker技术奇客在Windows里用的python虚拟环境,也建议使用虚拟环境以免和其他python环境冲突。
- 中间是脚本的完整路径,根据你脚本的实际位置填写。这里也可以是其他脚本,比如sh,js,perl等,但要和前面的运行命令统一。
- 最后是qBittorrent支持的参数”%F”,值得是下载后的BT内容完整目录。这里是把该参数传递给qbit_after.py这个脚本使用。
Ubuntu安装带有WebUI的qBittorrent
sudo apt install -y qbittorrent-noxby itgeeker.net
Python运行脚本
接下来就是python命令的编写,这里分享ITGeeker技术奇客写的部分脚本:
if len(sys.argv) > 1:
first_argv = sys.argv[1]
print('first_argv: %s' % first_argv)
is_file = check_is_a_file(first_argv)
if not is_file:
remove_files_from_folder(first_argv)
else:
update_film_name(first_argv)
提示:这里需要先判断一下(check_is_a_file)下载的是文件还是目录,有些BT下载后直接是文件,有些是目录。然后再进行相应操作。
by itgeeker.net
qBittorrent如何运行脚本 BT实现自动改名并方便Jellyfin的搜刮器的更多相关文章
- msf客户端渗透(七):跳板、post模块、自动运行脚本
跳板 假设有这样一个场景,有一个局域网内网网关是1.1.1.1,局域网里的主机1是kali,它经过一个防火墙连接到公网,主机2和主机3在另一个内网网关为2.1.1.1的局域网,由于防火墙做了设置,只有 ...
- Crontab无法自动执行,直接运行脚本却能执行
Crontab无法自动执行,直接运行脚本却能执行 http://bbs.chinaunix.net/thread-1926428-1-1.html crontab -e crontab内容为* * * ...
- 安卓8.0真机运行appium1.4遇到的问题:运行自动化脚本,手机自动安装 settings.apk和unclock.apk,执行脚本时提示安装UnicodeIME-debug.apk失败,怎么关掉自动安装?
运行自动化脚本,手机自动安装 settings.apk和unclock.apk,执行脚本时提示安装UnicodeIME-debug.apk失败,怎么关掉自动安装? 这3个apk的目录分别是: D:\P ...
- ubuntu20.04开机自动运行脚本实例
在 Ubuntu 20.04 中,/etc/rc.local 文件仍然存在,但不再默认启用,因为它已经被 systemd 代替.下面是使用systemd开机执行的脚本的实例: 1.编写脚本myscri ...
- 用 crontab 实现开机自动运行脚本
开发「bufpay.com 个人即时到账收款平台」的时候,订单状态和支付二维码的状态如果过期了要实时修改状态,最大效率利用支付二维码. 过期脚本需要开机启动,并且 deamon 运行,有很多办法可以开 ...
- 用expect做自动运行脚本
下面的脚本演示了在Ubuntu上安装expect,写一个切换用户的expect脚本,并运行脚本看到效果的过程. root@guserver:~# apt-get install expect godu ...
- Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新)
原文:Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 程序如何自己更新自己呢?你可能会想到启动一个新的程序或者脚本来更新自己.然而 Windows 操作系统允许一个应 ...
- inno安装卸载时检测程序是否正在运行卸载完成后自动打开网页-代码无效
inno安装卸载时检测程序是否正在运行卸载完成后自动打开网页-代码无效 inno setup 安装卸载时检测程序是佛正在运行卸载完成后自动打开网页-代码无效 --------------------- ...
- Oracle12c中多宿主容器数据库(CDBs)和可插拔数据库(PDBs)新特性之运行脚本
对开发者和DBA们来说,对shell脚本批量任务的影响成了多宿主选项带来的最大改变之一.因为多宿主环境通过服务来连接到可插拔数据库,因此,依靠CRON和OS认证成了换成多宿主环境后的一个最大问题.本文 ...
- loadrunner 运行脚本-Run-time Settings-Browser Enmulation设置详解
运行脚本-Run-time Settings-Browser Enmulation设置详解 by:授客 QQ:1033553122 浏览器模拟 所有Internet Vuser Header包含一个标 ...
随机推荐
- 2021-06-21:贩卖机只支持硬币支付,且收退都只支持10 ,50,100三种面额。一次购买只能出一瓶可乐,且投钱和找零都遵循优先使用大钱的原则,需要购买的可乐数量是m, 其中手头拥有的10、50
2021-06-21:贩卖机只支持硬币支付,且收退都只支持10 ,50,100三种面额.一次购买只能出一瓶可乐,且投钱和找零都遵循优先使用大钱的原则,需要购买的可乐数量是m, 其中手头拥有的10.50 ...
- 【Azure Redis 缓存】使用开源工具redis-copy时遇见6379端口无法连接到Redis服务器的问题
问题描述 当使用Azure Redis服务时,需要把一个Redis服务的数据导入到另一个Redis上,因为Redis服务没有使用高级版,所以不支持直接导入/导出RDB文件. 以编程方式来读取数据并写入 ...
- SQL Server2019 新增字段并设置默认值
命令: ALTER TABLE 表名 add 列名 数据类型 default 默认值 not null 例如: ALTER TABLE LJEL005H add el_req int default ...
- Github Copilot Chat 初体验
最近因为阳了的缘故一直躺在床上.今天终于从床上爬起来了.不是因为好透了,而是因为我收到了申请Copilot Chat preview 权限通过的邮件.实在忍不住,于是起床开电脑在咳嗽声中进行了一番体验 ...
- Velocity 不用愁!Velocity 系统的前端工程化之路
Velocity是一个基于Java的Web页面模版引擎.十多年前,Velocity将Java代码从Web页面中分离出来,使得开发者能够并行网页开发和Java开发.随着十年前后端分离的浪潮涌动,回首再面 ...
- celery 组件在django环境应用
第一步安装 pip install celery==4.4 第二步 配置环境 # ############################# celery 配置连接redis ############ ...
- 3、数据库:Oracle部署 - 系统部署系列文章
Oracle数据库的安装,以前写过一篇,这次将新版的安装再记录一次,让读者能够有所了解,笔者也能够记录下最新版的安装过程. 一.数据库下载: Oracle最新版目前在官网是19c,从下面这个链接进去下 ...
- SignalR+Hangfire 实现后台任务队列和实时通讯
SignalR+Hangfire 实现后台任务队列和实时通讯 1.简介: SignalR是一个.NET的开源框架,SignalR可使用Web Socket, Server Sent Events 和 ...
- 关于进程、线程、协程的概念以及Java中的应用
进程.线程.协程 本文将从"操作系统"."Java应用"上两个角度来探究这三者的区别. 一.进程 在我本人的疑惑中,我有以下3个问题. 1.1为什么要引入进程? ...
- C#里的var和dynamic区别到底是什么,你真的搞懂了嘛
前言 这个var和dynamic都是不确定的初始化类型,但是这两个本质上的不同.不同在哪儿呢?var编译阶段确定类型,dynamic运行时阶段确定类型.这种说法对不对呢?本篇看下 概括 以下详细叙述下 ...