Flexget的安装与使用

安装flexget:

1.docker安装

1
2
3
4
sudo apt-get update # 更新 apt 包索引。
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun # 使用官方安装脚本自动安装
apt install docker.io
apt install docker-compose
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
docker run -d \
--name=flexget \
--restart unless-stopped \
-p 5050:5050 \
-v /home/user/flexget/data:/data \
-v /home/user/flexget/config:/config \
-e FG_WEBUI_PASSWD=trf69Z5jfv5H3PNC \
-e FG_LOG_LEVEL=info \
-e FG_LOG_FILE=flexget.log \
-e TZ=Asia/Shanghai \
wiserain/flexget:latest
# passwd密码要有复杂度,像123那样的运行不了
# passwd那栏等号前后不能有空格
# \前面要有一个空格
# 如果密码有特殊符号,建议添加""里面
# 容器重启后会重制为默认密码

docker-compose安装:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
version: '3.3'
services:
flexget:
container_name: flexget
restart: unless-stopped
ports:
- '5050:5050'
volumes:
- '/home/user/flexget/data:/data'
- '/home/user/flexget/config:/config'
environment:
- 'FG_WEBUI_PASSWD=trf69Z5jfv5H3PNC'
- 'FG_LOG_LEVEL=info'
- 'FG_LOG_FILE=flexget.log'
- 'TZ=Asia/Shanghai'
image: 'wiserain/flexget:latest'
1
2
3
若出现 cify a version of "2" (or "2.0") and place your service definitions under the `services` key, or omit the `version` key and place your service definitions at the root of the file to use version 1.
请将version: "3"改成version: "2"
# flexget日志等配置文件位于/home/user/flexget/config/flexget.log

然后 docker-compose up -d

2.pip安装

1
2
3
4
5
6
7
8
9
10
11
12
# pip3 install --upgrade pip
# pip3 install --upgrade setuptools
# 安装flexget
pip3 install flexget #安装flexget,报错执行上面两行命令
which flexget #查询 FlexGet 安装位置,例如位置为 /usr/local/bin/flexget
flexget -V #查看flexget版本
# 配置Flexget目录及config文件
mkdir /root/.flexget #创建.flexget目录
vim /root/.flexget/config.yml # 创建及更改config.yml内容
mkdir ~/.flexget/plugins && cd ~/.flexget/plugins && wget https://github.com/Juszoe/flexget-nexusphp/releases/download/v1.4/nexusphp.py #创建plugins目录,下载nexusphp插件
flexget daemon start --daemonize #开启 webui 后台运行
# pip太难,不建议使用

3.pyenv (Quickbox Lite)

从 1.3.5 开始,FlexGet 将会以 pyenv 环境安装,二进制路径更改为 /home/${username}/.local/flexget3/bin/flexget

1
2
3
4
5
6
crontab -e -u ${username}
添加以下内容(每分钟运行示例):
# min hour day month week command
*/1 * * * * /home/${username}/.local/flexget3/bin/flexget -c /home/${username}/.config/flexget/config.yml --cron execute
# flexget可执行文件位于/home/${username}/.local/flexget3/bin/flexget
# flexget日志等配置文件位于/home/${username}/.config/flexget/

flexget的使用

1.修改密码

1.docker

1
2
3
docker exec -it flexget /bin/bash   #进入容器
flexget web passwd xxxx #修改密码,复杂度
# 这里修改的密码会在容器重启后恢复默认,如果想要永久修改密码,那么请重新建立容器

2.pip

1
flexget web passwd xxxx #设置web ui 后台密码 为 xxxx

3.pyenv

1
/home/${username}/.local/flexget3/bin/flexget web passwd xxxx #设置web ui 后台密码 为 xxxx

2.命令行使用flexget

1
2
3
4
5
6
7
8
9
10
11
12
13
14
flexget --test execute
# 如配置文件存在语法错误,会提示你在第几行有什么错误 如果配置文件没问题的话则会测试执行,不会真的下种子,可以用来测试配置文件写得是否合乎预期

flexget execute --learn
# 第一次使用 RSS 的时候难免会下载到一些已经出种的老种,为了解决这个情况,第一次执行 flexget 的时候,可以用
# 这样子不会下载种子,但是会把这次 RSS 到的种子标记为已下载,这样之后就不会下到老种了
# docker安装的需要执行docker容器后使用命令
# pip安装的自动设置了环境变量,能够直接使用命令
# pyenv安装的需要加上flexget的安装路径 /home/${username}/.local/flexget3/bin/flexget 后再使用命令

# 更新flexget,docker版本需要进入容器后执行下列语句
pip install --upgrade flexget
pip3 install --upgrade flexget

安装flexget-nexusphp插件

1.docker

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
#进入flexget容器/config目录
docker exec -it flexget /bin/bash
#创建plugins目录
mkdir plugins
#赋予plugins目录最高权限
chmod -R 777 plugins
#进入plugins目录
cd plugins
#下载官方原版nexusphp.py插件
#https://github.com/Juszoe/flexget-nexusphp/releases
wget https://github.com/Juszoe/flexget-nexusphp/releases/download/v1.4/nexusphp.py
#赋予nexusphp.py最高权限
chmod -R 777 nexusphp.py
#回到/config目录
cd /config
# 配置config.yml
#测试运行
flexget --test execute
#正式运行
flexget execute
#退出exec
exit
ctrl+A+D
#重启docker
docker restart flexget

2.pip

下载插件 nexusphp.py

在Flexget配置文件夹下新建plugins文件夹,例如:

1
2
~/.flexget/plugins/  # Linux
C:\Users\<YOURUSER>\flexget\plugins\ # Windows

再次注意plugins文件夹和config.yml处在同一级目录下,例如:

1
2
3
4
/.flxget
┕━config.yml
┕━plugins
┕━nexusphp.py

将插件拷贝至plugins

若启用了Web-UI或守护进程,则重启flexget重新加载配置

3.pyenv (Quickbox Lite)

1
2
cd /home/${username}/.local/flexget3/plugins && wget https://github.com/Juszoe/flexget-nexusphp/releases/download/v1.4/nexusphp.py
# ${username}对应于用户名

Warning

1
2
3
4
对于deluge
# 如果使用server port报错"BUG: Unhandled error in plugin deluge: _ssl.c:980: The handshake operation timed out",那么修改port为daemon port
# 如果使用localhost连不上de客户端,那么请使用本机ip地址
# 建议如果使用pip安装的flexget,则使用localhost或者IP地址都可,如果是docker安装的flexget那么请优先使用IP地址。

flexget配置文件

1
2
3
4
5
6
7
# docker flexget_config
web_server:
bind: 0.0.0.0
port: 5050
web_ui: yes
# base_url: /flexget # 如果使用反代请打开,未使用反代修改后可能会无法打开
# 修改可能会导致无法打开web界面
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
# https://flexget.com/en/Plugins/deluge
# https://flexget.com/Plugins/qbittorrent
templates:
# 剩余空间模板,当 path 对应的路径的剩余空间小于 space 规定的数值的时候停止 RSS 下载
freespace:
free_space:
path: /home/${username}
space: 10240
de:
deluge:
path: /home/user/torrents/deluge/
host: localhost
# de不使用https或者http协议,使用localhost连不上de客户端。
port: xxxx
username: username
password: xxxxx
# max_down_speed: 45000
# max_up_speed: 10000
qb:
qbittorrent:
path: /home/user/torrents/qbittorrent/
host: localhost
port: xxxx
username: username
password: xxxx
# maxdownspeed: 30000
# maxupspeed: 10000
tr:
transmission:
host: localhost
port: 9091
username: myusername
password: mypassword
# max_up_speed: XXX #tr专属
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
tasks:
xxx:
rss:
url: <url> #订阅链接
other_fields:
- link
ascii: yes
# 这个需要安装nexusphp插件
nexusphp:
cookie: 'cookies'
discount:
- free
- 2xfree
hr: no
seeders:
max: 2
leechers:
min: 2
max_complete: 0.2
remember: no
template: free_space
content_size:
min: 10240
strict: no
template: de
deluge:
label: xxx
# max_up_speed: 10000 #de专属,下载up换成down
# maxupspeed: 10000 #qb专属,下载up换成down
# path: /downloads/xxx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
tasks:
xxx:
rss: <url> #订阅
accept_all: yes
regexp:
#正则匹配
accept:
- Free
- XXX0
reject:
- XXX
- XXX
from: title
if:
- "'CXX' in title": reject
- "'CXXWEB' in title": reject
- "'CXXBits' in title": reject
- "'sXXb' in title": reject
template: de
deluge:
label: xx
# max_up_speed: 10000 #de专属,下载up换成down
# maxupspeed: 10000 #qb专属,下载up换成down
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
tasks:  
xxx:
rss: <url> #订阅链接
# In order to accept entries that have different urls but share the same title 
# 因为 abc 发单集的时候用的标题是一样的, 因此下过一次后
# 之后新发出来的单集由于标题一样,flexget 会当成是以前已经下过的种子
# 为了避免这个问题,对 seen 插件设定为只检查 url 是否一致
seen:
fields:
- url
# 正则表达式;标题带 abc 的种子就下载(accept,接受),不想下载的话就写拒绝(reject)
regexp:
accept:
- abc
reject:
- XXX
from: title
template: freespace
# 只下载体积为 100-100000 MB 的种子,前提是RSS链接中勾选了体积相关的选项
content_size:
max: 100000
min: 100
strict: no
template: qb
qbittorrent:
label: xxx
1
2
3
4
5
6
7
8
9
10
11
tasks:
xxx:
rss: <url>
accept_all: yes
content_size:
min: 3000
max: 500000
strict: no
template: de
deluge:
label: xxx

flexget完整配置示例

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
web_server:
bind: 0.0.0.0
port: 5050
web_ui: yes

templates:
# 剩余空间模板,当 path 对应的路径的剩余空间小于 space 规定的数值的时候停止 RSS 下载
de:
deluge:
path: /home/<username>/torrents/deluge/
host:
# de不使用https或者http协议
port: 10020
username: username
password: passwd
# max_down_speed: 45000
# max_up_speed: 10000


tasks:
xx1:
rss: <url>
accept_all: yes
content_size:
min: 3000
max: 500000
strict: no
template: de
deluge:
label: xx

schedules:
- tasks: [xx1, xx2]
interval:
minutes: 2 #2分钟执行一次
- tasks: [xx3]
interval:
minutes: 5 #5分钟执行一次

RSS

1.内站

对于内站来说一般都带有RSS功能,但是注意如果要筛选大小和免费时要勾选对应的标签,对于一些站官组会free我们有以下方式:

1.勾选RSS时仅选择对应发布组

2.勾选ALL,然后正则筛选官组

#比如说月月,可以勾选RSS ALl,然后在正则表达里添加朋友等,避免筛选到中性种子

#比如说瓷,可以仅勾选官组

#比如说听听歌,由于听听歌小组经常会有HR的种子,所以可以不勾选听听歌或者筛选掉听听歌种子

2.外站

对于特定站点可以使用RSS,只不过入口比较隐蔽

1.峨眉派, mtv, pby等站点,右键torrent界面的RSS标志复制,这个链接默认全RSS,需要注意筛选大小等等。

2.cgp, jpp等站点找不到RSS相关的标志,这个需要按下Ctrl+U,然后按下Ctrl+F 搜索RSS,里面的链接有多种类型,选择All Torrent就行了。然后自己可以进行大小等的筛选。

#自己可以测试一下能不能正常使用,选中复制链接后新开无痕浏览器,能不能正常打开,如果能正常打开的话,选择里面种子的链接看看能不能下载对应的种子。PS:如果种子链接和RSS链接内有一串类似密钥的字符串那么八成是可以使用的。

3.cg虽然通过Ctrl+F 能够搜索到RSS链接,但是还需要站点的cookies才能打开RSS链接和下载对应的种子。星大github对此有更详细的说明。

4.对于其他联盟站请使用 irssi/autobrr+ART

定时运行

1.可以使用自带的schedules:

1
2
3
4
schedules:
- tasks: [xxx,xx2]
interval:
minutes: 2 #2分钟执行一次

2.使用crontab

使用 cron 的话,schedules 最好改成 no,正如脚本里默认的那样(schedules: no
首先在 SSH 输入 crontab -e,选择一个文本编辑器,默认的 nano 即可 (nano 使用教程:http://man.linuxde.net/nano)
设置 2 分钟执行一次 RSS,就在文件里(写在哪个位置无所谓,顶部也行、底部也行)输入:

1
2
3
4
5
6
7
# pip
*/2 * * * * /usr/local/bin/flexget --cron execute

# pyenv
crontab -e -u ${username} # 不使用root账户可能会无法执行
# min hour day month week command
*/2 * * * * /home/${username}/.local/flexget3/bin/flexget -c /home/${username}/.config/flexget/config.yml --cron execute

(这里的就是 2 分钟执行一次的意思)
保存、退出,之后可以在 WebUI 中看 Log 来判断 Flexget 是否有在正常工作,或者在 SSH 中输入 flexget status 查看状态

如果使用docker的flexget则可以使用一下方式

1.在docker内部使用cron
1
2
*/2 * * * * /usr/local/bin/flexget --cron execute
# /usr/local/bin/flexget 这里使用flexget应该也是可以的,这个路径未验证

ART

安装 ART

1
pip install autoremove-torrents

qb使用http协议,de不能加http。

加入crontab -e的时候,autoremove-torrents要使用绝对路径。例如:/usr/local/bin/autoremove-torrents,可使用which和whereis查询路径。

deluge需要开启preferences -> plugins -> label

以下配置仅供参考

  1. 3o
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
my_task:
client: qbittorrent
host: http://127.0.0.1:15169 #qb使用http,de不使用http
username: xxxx
password: xxxx
delete_data: true
strategies:
trash:
status:
- Uploading
remove: seeding_time > 3600 and upload_speed < 100 #删除做种大于5分钟且上传小于300K/S的任务
wasted:
status:
- Queued
remove: ( create_time > 600 and size < 10 ) or ( create_time > 900 and size < 15 ) or ( create_time > 1200 and size > 15 )
black:
status:
- Downloading
remove: connected_leecher < 2 and connected_seeder > 20 and upload_speed < 10
1
2
3
4
5
6
7
crontab -e

# qk lite 安装
*/5 * * * * /home/<username>/.local/autoremovetorrents/bin/autoremove-torrents -c /home/<username>/.config/autoremovetorrents/config.yml -l /home/<username>/.config/autoremovetorrents/logs_black

# pip 安装
*/5 * * * * /usr/local/bin/autoremove-torrents -c /root/.config/autoremovetorrents/config.yml -l /root/.config/autoremovetorrents/log
  1. 33o
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
delete_task:
client: deluge
host: localhost:10047
username: XXX
password: XXX
delete_data: true
strategies:
clean_slow_uploading_S2:
status:
- Downloading
remove: seeder > 3 and connected_leecher < 2
clean_Seeding_S1:
status:
- Uploading
remove: leecher < 3 and upload_speed < 200
clean_Seeding_S2:
status:
- Uploading
remove: upload_speed < 200
#maximum_number:
# limit: 16
# action: remove-inactive-seeds
black:
excluded_trackers: open(补全)
status:
- Downloading
remove: download_speed > 50000 and create_time > 300 and upload_speed < 10000 and progress > 20 #删除加入5分钟后,已经下载了20%,下载速度大于50m/s,上传速度小于10m/s
1
2
3
4
5
6
7
crontab -e

# qk lite 安装
*/5 * * * * /home/<username>/.local/autoremovetorrents/bin/autoremove-torrents -c /home/<username>/.config/autoremovetorrents/config.yml -l /home/<username>/.config/autoremovetorrents/logs_black

# pip 安装
*/5 * * * * /usr/local/bin/autoremove-torrents -c /root/.config/autoremovetorrents/config.yml -l /root/.config/autoremovetorrents/log
  1. netcup
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
my_task:
client: deluge
host: 185.233.104.185:10043
username: lkl
password:
delete_data: true
strategies:
trash:
excluded_categories:
- keep
status:
- Uploading
remove: seeding_time > 60 and upload_speed < 100
wasted:
excluded_categories:
- keep
status:
- Queued
remove: ( create_time > 60 and size < 10 ) or ( create_time > 60 and size < 15 ) or ( create_time > 300 and size > 15 )
black:
excluded_categories:
- keep
status:
- Downloading
remove: ( connected_leecher < 2 and connected_seeder > 0 and upload_speed < 1000 ) or ( download_speed > 20000 and upload_speed < 1000) or ( upload_speed < 10 and download_speed < 1000 and progress > 30 )
error:
excluded_categories:
- keep
status:
- Error
remove: ( average_uploadspeed < 3000 ) or ( size > 100 and progress > 30 ) or ( size < 100 and progress > 60 )
more:
excluded_categories:
- keep
status:
- Uploading
categories:
- au
ratio: 3.01
space1:
excluded_categories:
- keep
status:
- Uploading
remote_free_space:
min: 20
path: /home/<username>/torrents/deluge
action: remove-slow-upload-seeds
space2:
excluded_categories:
- keep
status:
- Uploading
remote_free_space:
min: 12
path: /home/<username>/torrents/deluge
action: remove-big-seeds #remove-slow-upload-seeds #remove-inactive-seeds #remove-old-seeds
space3:
excluded_categories:
- keep
remote_free_space:
min: 20
path: /home/<username>/torrents/deluge
action: progress = 100 and upload_speed < 2000
space4:
excluded_categories:
- keep
remote_free_space:
min: 8
path: /home/<username>/torrents/deluge
action: remove-big-seeds
space5:
excluded_categories:
- keep
remote_free_space:
min: 10
path: /home/<username>/torrents/deluge
action: progress > 50 and upload_speed < 20000 and size > 30 and size < 100
1
2
3
4
5
6
7
crontab -e

# qk lite 安装
*/3 * * * * /home/<username>/.local/autoremovetorrents/bin/autoremove-torrents -c /home/<username>/.config/autoremovetorrents/config_black.yml -l /home/<username>/.config/autoremovetorrents/logs_black

# pip 安装
*/3 * * * * /usr/local/bin/autoremove-torrents -c /root/.config/autoremovetorrents/config.yml -l /root/.config/autoremovetorrents/log

安装deluge

1
bash <(wget -qO- https://git.io/qbox-lite -o /dev/null) COMMAND
1
box install deluge --de 2.0.3

deluge参数

1
2
3
4
5
6
7
8
9
10
# 开启high performance,load preset后修改以下参数
cache_expiry: 60;
cache_size: 131000;
choking_algorithm: 1;
enable_incoming_utp: false;
enable_outgoing_utp: false;
read_cache_line_size = 64;
seed_choking_algorithm: 1;
strict_end_game_mode: false;
use_parole_mode: false;

qbittorrent参数

https://tieba.baidu.com/p/5945576499

https://github.com/ratanakvlun/deluge-ltconfig/blob/5e28c59b4462cc9daf42f277624248289fa5991c/ltconfig/common/presets.py#L297

https://web.archive.org/web/20240311064407/https://tieba.baidu.com/p/5945576499

引用:

FlexGet | QuickBox Lite 知识库 (ptbox.dev)

flexget-nexusphp安装及使用教程

Juszoe/flexget-nexusphp: A flexget plugin for filter nexusphp torrents (github.com)

wiserain/flexget - Docker Image | Docker Hub

Docker安装flexget - EMBRACE (xiaoguiwk.site)

副本 盒子配置 (shimo.im)

autoremove-torrents/README-cn.rst at master · jerrymakesjelly/autoremove-torrents (github.com)

安装脚本 | QuickBox Lite 知识库 (ptbox.dev)

PT实用工具&脚本分享 | YeZi (yukino.nl)

使用autodl+irssi给ab刷流 - carlo’ blogs (carloo.cc)

配置 — autoremove-torrents 1.5.3 文档

适合小白的PT盒子入门指南 - 知乎 (zhihu.com)


Flexget的安装与使用
https://shyi.org/posts/30568/
作者
Shyi
发布于
2022年4月14日
更新于
2024年9月7日
许可协议