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-nox

by 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的搜刮器的更多相关文章

  1. msf客户端渗透(七):跳板、post模块、自动运行脚本

    跳板 假设有这样一个场景,有一个局域网内网网关是1.1.1.1,局域网里的主机1是kali,它经过一个防火墙连接到公网,主机2和主机3在另一个内网网关为2.1.1.1的局域网,由于防火墙做了设置,只有 ...

  2. Crontab无法自动执行,直接运行脚本却能执行

    Crontab无法自动执行,直接运行脚本却能执行 http://bbs.chinaunix.net/thread-1926428-1-1.html crontab -e crontab内容为* * * ...

  3. 安卓8.0真机运行appium1.4遇到的问题:运行自动化脚本,手机自动安装 settings.apk和unclock.apk,执行脚本时提示安装UnicodeIME-debug.apk失败,怎么关掉自动安装?

    运行自动化脚本,手机自动安装 settings.apk和unclock.apk,执行脚本时提示安装UnicodeIME-debug.apk失败,怎么关掉自动安装? 这3个apk的目录分别是: D:\P ...

  4. ubuntu20.04开机自动运行脚本实例

    在 Ubuntu 20.04 中,/etc/rc.local 文件仍然存在,但不再默认启用,因为它已经被 systemd 代替.下面是使用systemd开机执行的脚本的实例: 1.编写脚本myscri ...

  5. 用 crontab 实现开机自动运行脚本

    开发「bufpay.com 个人即时到账收款平台」的时候,订单状态和支付二维码的状态如果过期了要实时修改状态,最大效率利用支付二维码. 过期脚本需要开机启动,并且 deamon 运行,有很多办法可以开 ...

  6. 用expect做自动运行脚本

    下面的脚本演示了在Ubuntu上安装expect,写一个切换用户的expect脚本,并运行脚本看到效果的过程. root@guserver:~# apt-get install expect godu ...

  7. Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新)

    原文:Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 程序如何自己更新自己呢?你可能会想到启动一个新的程序或者脚本来更新自己.然而 Windows 操作系统允许一个应 ...

  8. inno安装卸载时检测程序是否正在运行卸载完成后自动打开网页-代码无效

    inno安装卸载时检测程序是否正在运行卸载完成后自动打开网页-代码无效 inno setup 安装卸载时检测程序是佛正在运行卸载完成后自动打开网页-代码无效 --------------------- ...

  9. Oracle12c中多宿主容器数据库(CDBs)和可插拔数据库(PDBs)新特性之运行脚本

    对开发者和DBA们来说,对shell脚本批量任务的影响成了多宿主选项带来的最大改变之一.因为多宿主环境通过服务来连接到可插拔数据库,因此,依靠CRON和OS认证成了换成多宿主环境后的一个最大问题.本文 ...

  10. loadrunner 运行脚本-Run-time Settings-Browser Enmulation设置详解

    运行脚本-Run-time Settings-Browser Enmulation设置详解 by:授客 QQ:1033553122 浏览器模拟 所有Internet Vuser Header包含一个标 ...

随机推荐

  1. 2021-06-21:贩卖机只支持硬币支付,且收退都只支持10 ,50,100三种面额。一次购买只能出一瓶可乐,且投钱和找零都遵循优先使用大钱的原则,需要购买的可乐数量是m, 其中手头拥有的10、50

    2021-06-21:贩卖机只支持硬币支付,且收退都只支持10 ,50,100三种面额.一次购买只能出一瓶可乐,且投钱和找零都遵循优先使用大钱的原则,需要购买的可乐数量是m, 其中手头拥有的10.50 ...

  2. 【Azure Redis 缓存】使用开源工具redis-copy时遇见6379端口无法连接到Redis服务器的问题

    问题描述 当使用Azure Redis服务时,需要把一个Redis服务的数据导入到另一个Redis上,因为Redis服务没有使用高级版,所以不支持直接导入/导出RDB文件. 以编程方式来读取数据并写入 ...

  3. SQL Server2019 新增字段并设置默认值

    命令: ALTER TABLE 表名 add 列名 数据类型 default 默认值 not null 例如: ALTER TABLE LJEL005H add el_req int default ...

  4. Github Copilot Chat 初体验

    最近因为阳了的缘故一直躺在床上.今天终于从床上爬起来了.不是因为好透了,而是因为我收到了申请Copilot Chat preview 权限通过的邮件.实在忍不住,于是起床开电脑在咳嗽声中进行了一番体验 ...

  5. Velocity 不用愁!Velocity 系统的前端工程化之路

    Velocity是一个基于Java的Web页面模版引擎.十多年前,Velocity将Java代码从Web页面中分离出来,使得开发者能够并行网页开发和Java开发.随着十年前后端分离的浪潮涌动,回首再面 ...

  6. celery 组件在django环境应用

    第一步安装 pip install celery==4.4 第二步 配置环境 # ############################# celery 配置连接redis ############ ...

  7. 3、数据库:Oracle部署 - 系统部署系列文章

    Oracle数据库的安装,以前写过一篇,这次将新版的安装再记录一次,让读者能够有所了解,笔者也能够记录下最新版的安装过程. 一.数据库下载: Oracle最新版目前在官网是19c,从下面这个链接进去下 ...

  8. SignalR+Hangfire 实现后台任务队列和实时通讯

    SignalR+Hangfire 实现后台任务队列和实时通讯 1.简介: SignalR是一个.NET的开源框架,SignalR可使用Web Socket, Server Sent Events 和 ...

  9. 关于进程、线程、协程的概念以及Java中的应用

    进程.线程.协程 本文将从"操作系统"."Java应用"上两个角度来探究这三者的区别. 一.进程 在我本人的疑惑中,我有以下3个问题. 1.1为什么要引入进程? ...

  10. C#里的var和dynamic区别到底是什么,你真的搞懂了嘛

    前言 这个var和dynamic都是不确定的初始化类型,但是这两个本质上的不同.不同在哪儿呢?var编译阶段确定类型,dynamic运行时阶段确定类型.这种说法对不对呢?本篇看下 概括 以下详细叙述下 ...