Transmission+RSS定时批量下载pt资源与Autoremove-torrents批量删除资源

2019-02-26 23:15:00 48点赞 534收藏 73评论

一、教程目标

本文教程帮您实现如下4个功能:

1、定时完成pt站点资源的RSS订阅,集中存放pt种子(torrent),并调用transmission客户端自动完成资源下载。每个pt站点资源文件独立存放,便于管理。

2、多磁盘时,根据磁盘剩余空间百分比,选择空间大的磁盘存放下载的pt资源。

3、对RSS订阅的pt种子,进行过滤,满足指定条件的资源,才下载。

4、当下载的资源文件,满足各pt站点的分享率/做种时间要求,批量删除老旧资源文件,以达到释放空间。

二、环境描述

2.1 软硬件环境

本教程架设您以满足如下软硬件条件:

(1)群晖6.1.7,已启用ssh登录(启用ssh方法自行百度

(2)套件均安装到/volume1,pt文件下载到/volume2。

(3)transmission 2.94(已安装,并停用)

(4)ssh连接工具(putty或SecureCRT,本教程以SecureCRT为例)

(5)python3(因flexget是用python编写,因此需要安装python,安装方法自行百度)

(6)(非必须)如果对vi工具不熟悉,可使用editplus或notepad32等文本编辑工具。

(7)tr相关文件目录

种子存放路径

Transmission+RSS定时批量下载pt资源与Autoremove-torrents批量删除资源

mteam站点资源存放路径,自动选择剩余空间大的路径。

Transmission+RSS定时批量下载pt资源与Autoremove-torrents批量删除资源

三、RSS工具flexget安装

3.1 flexget安装环境准备

1)、ssh连接群晖,切换root用户

打开SecureCRT,设置字符集为UTF-8,以保证可以正常显示配置文件中的中文。

Transmission+RSS定时批量下载pt资源与Autoremove-torrents批量删除资源

用管理员账户登录到群晖,然后sudo -i回车,输入管理员密码,切换到root用户。

admin@KOOLNAS:~$ sudo -i

Password: 此处输入admin用户密码

root@KOOLNAS:~#

2)、安装python包管理工具pip

root@KOOLNAS:~# cd /volume1/@appstore/py3k/usr/local/bin

root@KOOLNAS:/volume1/@appstore/py3k/usr/local/bin# ./python3 -m ensurepip

Ignoring indexes: https://pypi.python.org/simple

Requirement already satisfied (use --upgrade to upgrade): setuptools in /volume1/@appstore/py3k/usr/local/lib/python3.5/site-packages

Requirement already satisfied (use --upgrade to upgrade): pip in /volume1/@appstore/py3k/usr/local/lib/python3.5/site-packages

successfully字样说明安装成功。这里allready satisfied说明我这已经安装过此工具,无需安装。

升级包管理工具pip至最新版

root@KOOLNAS:/volume1/@appstore/py3k/usr/local/bin# ./python3 -m pip install --upgrade pip

Requirement already up-to-date: pip in /volume1/@appstore/py3k/usr/local/lib/python3.5/site-packages (19.0.3)这里allready up-to-date说明我这已经是最新版,无需更新。

3)、安装python虚拟环境virtualenv

这里安装virtualenv虚拟环境,主要是为了是flexget运行环境与其他需要用到python的环境相隔离。

关于python的virtualenv虚拟环境的详细说明,请自行百度。

root@KOOLNAS:/volume1/@appstore/py3k/usr/local/bin# ./python3 -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple virtualenv

Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple

Requirement already satisfied: virtualenv in /volume1/@appstore/py3k/usr/local/lib/python3.5/site-packages (16.4.0)

successfully字样说明安装成功。这里allready satisfied说明我这已经安装过此工具,无需安装。

4)、创建flexget运行虚拟环境,名为flexget

root@KOOLNAS:/volume1/@appstore/py3k/usr/local/bin# ./virtualenv ./flexget/

Using base prefix '/volume1/@appstore/py3k/usr/local'

New python executable in /volume1/@appstore/py3k/usr/local/bin/flexget/bin/python3

Also creating executable in /volume1/@appstore/py3k/usr/local/bin/flexget/bin/python

Installing setuptools, pip, wheel...

done.

done说明创建成功

启用新创建的flexget虚拟环境

root@KOOLNAS:/volume1/@appstore/py3k/usr/local/bin# cd flexget/

root@KOOLNAS:/volume1/@appstore/py3k/usr/local/bin/flexget# source ./bin/activate

(flexget) root@KOOLNAS:/volume1/@appstore/py3k/usr/local/bin/flexget#

(flexget) root@KOOLNAS:/volume1/@appstore/py3k/usr/local/bin/flexget#

命令提示符左侧出现(flexget),说明启用成功。如果要退出虚拟环境,则在当前目录执行deactivate

至此,安装flexget所需要的前提条件已准备完毕。

3.2 flexget安装

1)、安装flexget

(flexget) root@KOOLNAS:/volume1/@appstore/py3k/usr/local/bin/flexget# ./bin/pip install -i https://pypi.tuna.tsinghua.edu.cn/simple flexget

Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple

Requirement already satisfied: flexget in ./lib/python3.5/site-packages (2.20.5)

......

Requirement already satisfied: setuptools in ./lib/python3.5/site-packages (from pynzb==0.1.0->flexget) (40.8.0)

successfully字样说明安装成功。这里allready satisfied说明我这已经安装过flexget,无需安装。

-i参数指定使用国内镜像(可加快安装,若省略,则采用默认镜像安装)

2)、安装flexget需要用到的TransmissionRPC

(flexget) root@KOOLNAS:/volume1/@appstore/py3k/usr/local/bin/flexget# ./bin/pip install flexget -i https://pypi.tuna.tsinghua.edu.cn/simple transmissionrpc

Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple

Requirement already satisfied: flexget in ./lib/python3.5/site-packages (2.20.5)

......

Requirement already satisfied: setuptools>=18.5 in ./lib/python3.5/site-packages (from html5lib==0.999999999->flexget) (40.8.0)

successfully字样说明安装成功。这里allready satisfied说明我这已经安装过flexget,无需安装。

-i参数指定使用国内镜像(可加快安装,若省略,则采用默认镜像安装)

3)、安装完毕后,退出虚拟环境

(flexget) root@KOOLNAS:/volume1/@appstore/py3k/usr/local/bin/flexget# deactivate

root@KOOLNAS:/volume1/@appstore/py3k/usr/local/bin/flexget#

注意提示符左侧的变化

至此,flexget已安装完毕,可输入完整路径执行flexget

/volume1/@appstore/py3k/usr/local/bin/flexget/bin/flexget execute

但是还未创建flexget配置文件,此处会报错。

3.3 flexget升级

如果后期,flexget执行时,报版本过旧,可通过pip完成升级操作。

root@KOOLNAS:~/.config/flexget# cd /volume1/@appstore/py3k/usr/local/bin

root@KOOLNAS:/volume1/@appstore/py3k/usr/local/bin# cd flexget/

root@KOOLNAS:/volume1/@appstore/py3k/usr/local/bin/flexget# source ./bin/activate

(flexget) root@KOOLNAS:/volume1/@appstore/py3k/usr/local/bin/flexget# pip install --upgrade flexget -i https://pypi.tuna.tsinghua.edu.cn/simple flexget

Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple

Requirement already up-to-date: flexget in ./lib/python3.5/site-packages (2.20.5)

......

Requirement already satisfied, skipping upgrade: setuptools in ./lib/python3.5/site-packages (from pynzb==0.1.0->flexget) (40.8.0)

升级flexget至最新版,-i参数指定使用国内镜像(可加快安装,若省略,则采用默认镜像安装)

四、flexget配置文件

flexget配置文件遵循yaml语法,缩进(为2个空格,而非tab键缩进)要求较为严格,并保存为UTF-8编码。

编辑工具推荐群晖的vi工具或者editplus或notepad32这里的代码编辑工具。

配置文件的完整路径为/root/.config/flexget/config.yml

4.1、配置文件详解

1)、配置文件示例

Transmission+RSS定时批量下载pt资源与Autoremove-torrents批量删除资源

Transmission+RSS定时批量下载pt资源与Autoremove-torrents批量删除资源

配置文件、提取码: ku7g

配置文件分3大模块:

schedules(调度):当将flexget作为守护进程,设置为开机启动时,此部分参数生效,用于设置flexget的定时。

templates(模板):可将部分设置(筛选条件、空间检测、tr客户端配置等),设置成模板,以供在任务模块中调用。此部分内容非必须,但是启用模板,可以简化配置文件的设置。

tasks(任务):设置具体pt站点下载任务的参数配置,可直接调用前边的模板。

注意:

(1)注意各层级参数的缩进,必须为空格键。

(2)同层级的参数,缩进需要一致。

(3)保存格式需要为UTF-8

更详细的参数说明,请见网站

4.2、配置文件校验

root@KOOLNAS:~/.config/flexget# /volume1/@appstore/py3k/usr/local/bin/flexget/bin/flexget check

2019-02-25 10:30 VERBOSE check Pre-checked 81 configuration lines

2019-02-25 10:30 VERBOSE check Checking config file `/root/.config/flexget/config.yml`

2019-02-25 10:30 VERBOSE check Config passed check.

passed check说明通过语法验证

4.3、配置文件测试

root@KOOLNAS:~/.config/flexget# flexget --test -c /root/.config/flexget/config.yml execute

2019-02-26 16:45 INFO manager Test mode, creating a copy from database ...

2019-02-26 16:45 INFO manager Test database created

2019-02-26 16:46 INFO content_size M-Team Plugin is partially disabled with --test and --learn because size information may not be available

2019-02-26 16:46 INFO manager Removed test database

可查看哪些文件可能被下载,确认无误后,可直接执行。

root@KOOLNAS:~/.config/flexget# flexget -c /root/.config/flexget/config.yml execute

备注:可通过-c选项指定参数文件,若未指定,则默认使用/root/.config/flexget/config.yml配置文件

4.4、常用的flexget命令

1)、查看flexget版本

root@KOOLNAS:~/.config/flexget# /volume1/@appstore/py3k/usr/local/bin/flexget/bin/flexget -V

2)、校验配置文件语法及内容

root@KOOLNAS:~/.config/flexget# /volume1/@appstore/py3k/usr/local/bin/flexget/bin/flexget check

3)、执行RSS测试,不会下载任何内容(此处不会对content_size内容做处理)

root@KOOLNAS:~/.config/flexget# /volume1/@appstore/py3k/usr/local/bin/flexget/bin/flexget --test execute

4)、清空数据库中无用数据

root@KOOLNAS:~/.config/flexget# /volume1/@appstore/py3k/usr/local/bin/flexget/bin/flexget database cleanup

5)、查看flexget执行状态

root@KOOLNAS:~/.config/flexget# /volume1/@appstore/py3k/usr/local/bin/flexget/bin/flexget status

6)、列出所有被拒绝的条目

root@KOOLNAS:~/.config/flexget# /volume1/@appstore/py3k/usr/local/bin/flexget/bin/flexget rejected list

7)、清除所有被拒绝的条目

root@KOOLNAS:~/.config/flexget# /volume1/@appstore/py3k/usr/local/bin/flexget/bin/flexget rejected clear

8)、列出所有失败的条目

root@KOOLNAS:~/.config/flexget# /volume1/@appstore/py3k/usr/local/bin/flexget/bin/flexget failed list

9)、清除所有失败的条目

root@KOOLNAS:~/.config/flexget# /volume1/@appstore/py3k/usr/local/bin/flexget/bin/flexget failed clear

10)、查看flexget命令的选项/帮助

root@KOOLNAS:~# /volume1/@appstore/py3k/usr/local/bin/flexget/bin/flexget -h

五、添加定时任务,自动执行

编辑crond配置文件,增加如下内容(每20分钟执行一次)

*/20 * * * * root /volume1/@appstore/py3k/usr/local/bin/flexget/bin/flexget execute

root@KOOLNAS:~/.config/flexget# vi /etc/crontab

MAILTO=""

PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/syno/sbin:/usr/syno/bin:/usr/local/sbin:/usr/local/bin

#minute hour mday month wday who command

0 0 1 * * root /usr/syno/bin/syno_disk_health_record

0 22 1 * * root /tmp/synoschedtask --run id=1

0 22 4 */6 * root /tmp/synoschedtask --run id=2

0 20 * * * root /tmp/synoschedtask --run id=4

33 4 * * 5 root /tmp/synoschedtask --run id=5

*/20 * * * * root /volume1/@appstore/py3k/usr/local/bin/flexget/bin/flexget execute

六、常见配置文件报错解决

1、Did not pass schema validation

通常为缩进错误,请根据错误提示的位置,检查配置文件

2、Indentation error

通常为缩进错误,请根据错误提示的位置,检查配置文件

3、 Reason: found character 't' that cannot start any token

Check configuration near line 8, column 0

通常为使用了tab键缩进替代了空格缩进,请根据错误提示的位置,检查配置文件,删除缩进前的空白,然后用空格完成缩进。

七、定时删除pt资源工具autoremove-torrents

7.1 autoremove-torrents安装

root@KOOLNAS:~/.config/flexget# cd /volume1/@appstore/py3k/usr/local/bin

root@KOOLNAS:/volume1/@appstore/py3k/usr/local/bin# cd flexget/

root@KOOLNAS:/volume1/@appstore/py3k/usr/local/bin/flexget# source ./bin/activate

(flexget) root@KOOLNAS:/volume1/@appstore/py3k/usr/local/bin/flexget# ./bin/pip install -i https://pypi.tuna.tsinghua.edu.cn/simple autoremove-torrents

Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple

Collecting autoremove-torrents

Downloading https://pypi.tuna.tsinghua.edu.cn/packages/c8/56/f5dd6cfe395386113394a3d16e41ca5bd6a6842224c8cdfd0e95b8544d52/autoremove-torrents-1.2.5.tar.gz

......

Successfully installed autoremove-torrents-1.2.5 enum34-1.1.6

(flexget) root@KOOLNAS:/volume1/@appstore/py3k/usr/local/bin/flexget#

Successfully说明安装成功

7.2 autoremove-torrents配置文件

1)、创建配置文件

root@KOOLNAS:~# cd

root@KOOLNAS:~# cd .config/

root@KOOLNAS:~/.config# mkdir amt

root@KOOLNAS:~/.config# cd amt

root@KOOLNAS:~/.config/amt# vi config.yml

Transmission+RSS定时批量下载pt资源与Autoremove-torrents批量删除资源

配置文件、提取码: ku7g

2)、测试配置文件

root@KOOLNAS:~/.config/amt# /volume1/@appstore/py3k/usr/local/bin/flexget/bin/autoremove-torrents --conf=/root/.config/amt/config.yml --view

3)、执行批量删除

root@KOOLNAS:~/.config/amt# /volume1/@appstore/py3k/usr/local/bin/flexget/bin/autoremove-torrents --conf=/root/.config/amt/config.yml

4)、设置autoremove-torrents定时删除种子

编辑crond配置文件/etc/crontab,将如下命令追加到末尾(每日的23点执行)

0 0 23 * * root /volume1/@appstore/py3k/usr/local/bin/flexget/bin/autoremove-torrents --conf=/root/.config/amt/config.yml

root@KOOLNAS:~/.config/flexget# vi /etc/crontab

MAILTO=""

PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/syno/sbin:/usr/syno/bin:/usr/local/sbin:/usr/local/bin

#minute hour mday month wday who command

0 0 1 * * root /usr/syno/bin/syno_disk_health_record

0 22 1 * * root /tmp/synoschedtask --run id=1

0 22 4 */6 * root /tmp/synoschedtask --run id=2

0 20 * * * root /tmp/synoschedtask --run id=4

33 4 * * 5 root /tmp/synoschedtask --run id=5

*/20 * * * * root /volume1/@appstore/py3k/usr/local/bin/flexget/bin/flexget execute

0 0 23 * * root /volume1/@appstore/py3k/usr/local/bin/flexget/bin/autoremove-torrents --conf=/root/.config/amt/config.yml

注意:为防止种子误删除,这里不建议将autoremove-torrents设置为定时自动执行;建议定期手动加--view参数,确认无误后,再批量删除。另外,autoremove-torrents工具暂时不支持种子最后活动时间的扫描,因此,可能会删除已符合pt站点分享约束,但是正在上传的种子文件。这样反而,不利于提高pt站点的上传量。是否使用amt的自动删除,请读者自行决定。

至此,全自动化的pt资源RSS订阅下载(每20分钟扫描一次),并定时删除(每日23点删除)符合pt站点分享规则资源文件的目标已全部实现。

编者注:

因能力有限,此教程仅供参考,只作抛砖引玉只用,风险自担。

展开 收起
73评论

  • 精彩
  • 最新
  • 我缺的是黑晖,缺的是软件?缺的是资源,现在找资源,越来越难,论坛管的死死的,还要各种玩法,累。

    校验提示文案

    提交
    您不适合黑群,也不适合pt。还是玩迅雷吧! [喜极而泣]

    校验提示文案

    提交
    收起所有回复
  • 这个支持,一向手动 [皱眉]

    校验提示文案

    提交
    这个flexget的官方文档写得很乱,但确实提高效率,适合刷级别!

    校验提示文案

    提交
    收起所有回复
  • 还有记住这些命令,参数,格式有啥技巧,太长了

    校验提示文案

    提交
    可以将执行文件加入系统的PATH环境变量,重启系统就生效了。然后,每个命令都有帮助选项。比如flexget -h查看flexget的命令参数

    校验提示文案

    提交
    我感觉要是开发个web管理页面就好了,改配置敲命令什么的我感觉还是太麻烦了点

    校验提示文案

    提交
    收起所有回复
  • 请教,pt站可连接是否,要怎么设置

    校验提示文案

    提交
    开启端口转发,默认应该是51413

    校验提示文案

    提交
    有的pt站是否,有的可连接怎么办 [皱眉]

    校验提示文案

    提交
    收起所有回复
  • transmission 2.94对比自带的download station稳定性、速度怎么样?一直用的download station,以前还可以用transmission remote gui管理,现在download station升级了,好像无法用gui管理,正在考虑转用transmission

    校验提示文案

    提交
    换tr吧,感觉比downloadstation方便

    校验提示文案

    提交
    换tr吧,个人感觉比download station要方便。可惜没有ios手机端

    校验提示文案

    提交
    收起所有回复
  • 楼主群晖的话你这一套能整一个docker镜像让我等小白直接下载使用不?

    校验提示文案

    提交
    没整过docker哦

    校验提示文案

    提交
    收起所有回复
  • 请问一下,配置文件config.yml如何上传至root目录,用winscp admin账户不能进入root目录,用root账户提示密码不对,crt root明明是没问题的

    校验提示文案

    提交
    可以用你的管理员账户传到home目录下,然后ssh登录进去,sudo -i切换至root。然后用cp命令复制到你的/root目录。或者,不传/root目录,你在启动flexget的时候用-c参数指定一下位置也可以。这样,flexget生成的sqlite数据库文件和日志文件都会保存到你config.yml的目录下。

    校验提示文案

    提交
    config.yml文件是直接上传到root目录下,还是/root/.config/flexget/config.yml路径下?我用winscp,root账户登陆,root目录下没有东西。请问.config是需要自己创建的吗?或者这是隐藏文件,需要设置才能看见?

    校验提示文案

    提交
    还有3条回复
    收起所有回复
  • 不知道楼主有没有遇到 flexget 下载的 torrent 文件有中文乱码的问题?
    类似如下这样的。
    %5BPTHOME%5D.%5B%E5%B0%8F%E6%A3%AE%E6%9E%97%20%E5%86%AC%E6%98%A5%E7%AF%87%5D.Little.Forest.Winter.Spring.2015.BluRay.720p.x264.AC3-CMCT.mkv

    校验提示文案

    提交
    是有这问题,应该是字符编码的问题,我也不是很清楚。

    校验提示文案

    提交
    请问这个现在解决了吗…因为缓存问题打算入坑transmission [喜极而泣]

    校验提示文案

    提交
    还有3条回复
    收起所有回复
  • 可以做到只下FREE的种子不

    校验提示文案

    提交
    rss信息中没有种子促销信息,所以通过RSS是无法做到只下载free种子。理论上可通过爬虫借助cookie登录站点,来获取free种子,进而调用tr来下载。

    校验提示文案

    提交
    难不难,啥时候出个教程哈哈

    校验提示文案

    提交
    还有1条回复
    收起所有回复
  • 不知道我这个算不算挖坟,目前没我遇到一个很奇怪的问题,我hdc订阅下载电视剧,但是因为他们的种子名字是一样(我猜想),然后造成第一次任务执行时可以正常的,后面rss 获取到新增的剧集,然后flexget 对新的内容时reject 不会下载。就只有首次会下载

    校验提示文案

    提交
    按道理应该不会啊,根据时间来增量的。并且不同的剧集种子信息是不同的啊,你是根据什么判断reject的呢

    校验提示文案

    提交
    我配置的时候是这样的,在pt站rss 做准确匹配 所以一个任务 都是accept_all: yes
    但是因为pt站他们的种子 确实是同名,任务执行的时候就会说 种子已经存在,现在我找了另外一个pt站点,每次发布剧集都有带第几集的名字的那种,看看情况。后续方便的话,而已加可以发图的工具的聊天方式么

    校验提示文案

    提交
    还有5条回复
    收起所有回复
  • 网盘链接调了 您的配置文件 github上我也没找到 能否更新一波下载地址
    向大佬学习 赞👍

    校验提示文案

    提交
    明天给您找一下

    校验提示文案

    提交
    示例配置文件链接: 去看看 提取码: ywk7
    autoremove-torrents说明文档去看看

    校验提示文案

    提交
    还有1条回复
    收起所有回复
  • 大佬问下运行autoremove-torrents,能不能只删除指定文件数据

    校验提示文案

    提交
    按规则删除的

    校验提示文案

    提交
    收起所有回复
  • 求馒头邀请码一枚,可互换(允许邀请的前提)

    校验提示文案

    提交
    互换就是作死,这么高调 [狂汗]

    校验提示文案

    提交
    互换不同平台邀请码

    校验提示文案

    提交
    收起所有回复
  • MT很赞,懂的人自然懂

    校验提示文案

    提交
    自从有了MT后,身体是一天不如一天你了

    校验提示文案

    提交
    营养快线多囤一些

    校验提示文案

    提交
    还有7条回复
    收起所有回复
  • 都用群晖了,可以试试docker版的flexget,没那么多命令。

    校验提示文案

    提交
  • 看得我一愣一愣的,这啥,这啥啥啥? [抽打]

    校验提示文案

    提交
  • 看的头皮发麻 还是手动吧,能力严重不足

    校验提示文案

    提交
  • 大赞,群友,啊哈哈哈

    校验提示文案

    提交
  • 哪个站…能提示吗…

    校验提示文案

    提交
  • 新手小白 表示没看懂 [哭泣] [哭泣] [哭泣] [哭泣] [哭泣] [哭泣]

    校验提示文案

    提交
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
534
扫一下,分享更方便,购买更轻松