Simple Torrent:一个支持边下边播、无版权限制和自动上传的BT离线下载程序

网站所有资源都有,可联系VX:bjlyxy1688

图片[1]-Simple Torrent:一个支持边下边播、无版权限制和自动上传的BT离线下载程序-天时网
这里就介绍个基于Cloud Torrent开发的项目Simple Torrent,同样的使用Golang编写,功能在原有的基础上加了些适用的功能,下载/上传速度限制、无版权限制,RSS订阅和自定义添加BT-Trackers等,而且还有api接口,同时还支持下载后自动调用外部命令,可玩性还是很高的,比如我们可以和aria2一样,将下载完成的资源自动上传到OneDrive或Google Drive等网盘,博主大概用了下,感觉还可以,这里就分享下。

安装

Github地址:https://github.com/boypt/simple-torrent

使用SSH客户端登录服务器,运行命令:

<span class="pln">bash </span><span class="pun"><(</span><span class="pln">wget </span><span class="pun">-</span><span class="pln">qO</span><span class="pun">-</span><span class="pln"> https</span><span class="pun">:</span><span class="com">//raw.githubusercontent.com/boypt/simple-torrent/master/scripts/quickinstall.sh)</span>
<span class="pln">bash </span><span class="pun"><(</span><span class="pln">wget </span><span class="pun">-</span><span class="pln">qO</span><span class="pun">-</span><span class="pln"> https</span><span class="pun">:</span><span class="com">//raw.githubusercontent.com/boypt/simple-torrent/master/scripts/quickinstall.sh)</span>
bash <(wget -qO- https://raw.githubusercontent.com/boypt/simple-torrent/master/scripts/quickinstall.sh)

然后使用ip:3000访问即可。

顺便提供个博主经常用的BT-Trackers服务器地址,效果不错,如下:

<span class="pln">https</span><span class="pun">:</span><span class="com">//trackerslist.com/all.txt</span>
<span class="pln">https</span><span class="pun">:</span><span class="com">//trackerslist.com/all.txt</span>
https://trackerslist.com/all.txt

直接在Web界面修改即可。

相关命令:

<span class="pun">启动:</span><span class="pln">systemctl start cloud</span><span class="pun">-</span><span class="pln">torrent
</span><span class="pun">重启:</span><span class="pln">systemctl restart cloud</span><span class="pun">-</span><span class="pln">torrent
</span><span class="pun">停止:</span><span class="pln">systemctl stop cloud</span><span class="pun">-</span><span class="pln">torrent
</span><span class="pun">查看状态:</span><span class="pln">systemctl status cloud</span><span class="pun">-</span><span class="pln">torrent</span>
<span class="pun">启动:</span><span class="pln">systemctl start cloud</span><span class="pun">-</span><span class="pln">torrent
</span><span class="pun">重启:</span><span class="pln">systemctl restart cloud</span><span class="pun">-</span><span class="pln">torrent
</span><span class="pun">停止:</span><span class="pln">systemctl stop cloud</span><span class="pun">-</span><span class="pln">torrent
</span><span class="pun">查看状态:</span><span class="pln">systemctl status cloud</span><span class="pun">-</span><span class="pln">torrent</span>
启动:systemctl start cloud-torrent 重启:systemctl restart cloud-torrent 停止:systemctl stop cloud-torrent 查看状态:systemctl status cloud-torrent

Docker安装

1、安装Docker

<span class="com">#CentOS 6系统</span><span class="pln">
rpm </span><span class="pun">-</span><span class="pln">iUvh http</span><span class="pun">:</span><span class="com">//dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm</span><span class="pln">
yum update </span><span class="pun">-</span><span class="pln">y
yum </span><span class="pun">-</span><span class="pln">y install docker</span><span class="pun">-</span><span class="pln">io
service docker start
chkconfig docker on
</span><span class="com">#CentOS 7、Debian、Ubuntu系统</span><span class="pln">
curl </span><span class="pun">-</span><span class="pln">sSL https</span><span class="pun">:</span><span class="com">//get.docker.com/ | sh</span><span class="pln">
systemctl start docker
systemctl enable docker</span>
<span class="com">#CentOS 6系统</span><span class="pln">
rpm </span><span class="pun">-</span><span class="pln">iUvh http</span><span class="pun">:</span><span class="com">//dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm</span><span class="pln">
yum update </span><span class="pun">-</span><span class="pln">y
yum </span><span class="pun">-</span><span class="pln">y install docker</span><span class="pun">-</span><span class="pln">io
service docker start
chkconfig docker on

</span><span class="com">#CentOS 7、Debian、Ubuntu系统</span><span class="pln">
curl </span><span class="pun">-</span><span class="pln">sSL https</span><span class="pun">:</span><span class="com">//get.docker.com/ | sh</span><span class="pln">
systemctl start docker
systemctl enable docker</span>
#CentOS 6系统 rpm -iUvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm yum update -y yum -y install docker-io service docker start chkconfig docker on #CentOS 7、Debian、Ubuntu系统 curl -sSL https://get.docker.com/ | sh systemctl start docker systemctl enable docker

2、安装Simple Torrent

<span class="pln">docker run </span><span class="pun">--</span><span class="pln">restart</span><span class="pun">=</span><span class="pln">always </span><span class="pun">--</span><span class="pln">name simple</span><span class="pun">-</span><span class="pln">torrent </span><span class="pun">-</span><span class="pln">d \
</span><span class="pun">-</span><span class="pln">p </span><span class="lit">3000</span><span class="pun">:</span><span class="lit">3000</span><span class="pln"> \
</span><span class="pun">-</span><span class="pln">v </span><span class="pun">~</span><span class="str">/downloads:/</span><span class="pln">downloads \
</span><span class="pun">-</span><span class="pln">v </span><span class="pun">~</span><span class="str">/torrents:/</span><span class="pln">torrents \
boypt</span><span class="pun">/</span><span class="pln">cloud</span><span class="pun">-</span><span class="pln">torrent</span>
<span class="pln">docker run </span><span class="pun">--</span><span class="pln">restart</span><span class="pun">=</span><span class="pln">always </span><span class="pun">--</span><span class="pln">name simple</span><span class="pun">-</span><span class="pln">torrent </span><span class="pun">-</span><span class="pln">d \
</span><span class="pun">-</span><span class="pln">p </span><span class="lit">3000</span><span class="pun">:</span><span class="lit">3000</span><span class="pln"> \
</span><span class="pun">-</span><span class="pln">v </span><span class="pun">~</span><span class="str">/downloads:/</span><span class="pln">downloads \
</span><span class="pun">-</span><span class="pln">v </span><span class="pun">~</span><span class="str">/torrents:/</span><span class="pln">torrents \
boypt</span><span class="pun">/</span><span class="pln">cloud</span><span class="pun">-</span><span class="pln">torrent</span>
docker run --restart=always --name simple-torrent -d \ -p 3000:3000 \ -v ~/downloads:/downloads \ -v ~/torrents:/torrents \ boypt/cloud-torrent

然后使用ip:3000访问即可。

最后如果你访问不了Web端,可能要检查下防火墙端口,有安全组的也要放行下相关端口。

这里提供个CentOS系统防火墙开启命令,大致如下:

<span class="com">#CentOS 6</span><span class="pln">
iptables </span><span class="pun">-</span><span class="pln">I INPUT </span><span class="pun">-</span><span class="pln">p tcp </span><span class="pun">--</span><span class="pln">dport </span><span class="lit">3000</span> <span class="pun">-</span><span class="pln">j ACCEPT
service iptables save
service iptables restart
</span><span class="com">#CentOS 7</span><span class="pln">
firewall</span><span class="pun">-</span><span class="pln">cmd </span><span class="pun">--</span><span class="pln">zone</span><span class="pun">=</span><span class="kwd">public</span> <span class="pun">--</span><span class="pln">add</span><span class="pun">-</span><span class="pln">port</span><span class="pun">=</span><span class="lit">3000</span><span class="pun">/</span><span class="pln">tcp </span><span class="pun">--</span><span class="pln">permanent
firewall</span><span class="pun">-</span><span class="pln">cmd </span><span class="pun">--</span><span class="pln">reload</span>
<span class="com">#CentOS 6</span><span class="pln">
iptables </span><span class="pun">-</span><span class="pln">I INPUT </span><span class="pun">-</span><span class="pln">p tcp </span><span class="pun">--</span><span class="pln">dport </span><span class="lit">3000</span> <span class="pun">-</span><span class="pln">j ACCEPT
service iptables save
service iptables restart

</span><span class="com">#CentOS 7</span><span class="pln">
firewall</span><span class="pun">-</span><span class="pln">cmd </span><span class="pun">--</span><span class="pln">zone</span><span class="pun">=</span><span class="kwd">public</span> <span class="pun">--</span><span class="pln">add</span><span class="pun">-</span><span class="pln">port</span><span class="pun">=</span><span class="lit">3000</span><span class="pun">/</span><span class="pln">tcp </span><span class="pun">--</span><span class="pln">permanent
firewall</span><span class="pun">-</span><span class="pln">cmd </span><span class="pun">--</span><span class="pln">reload</span>
#CentOS 6 iptables -I INPUT -p tcp --dport 3000 -j ACCEPT service iptables save service iptables restart #CentOS 7 firewall-cmd --zone=public --add-port=3000/tcp --permanent firewall-cmd --reload

API使用

关于API的用法,官方文档说的很详细了,这里就大概列举几个,如下:

<span class="com">#通过远程地址添加种子</span><span class="pln">
curl </span><span class="pun">--</span><span class="pln">data </span><span class="str">"http://domain.com/file.torrent"</span> <span class="str">"http://localhost:3000/api/url"</span>
<span class="com">#通过本地文件添加种子</span><span class="pln">
curl </span><span class="pun">--</span><span class="pln">data</span><span class="pun">-</span><span class="pln">binary </span><span class="str">"my.torrent"</span> <span class="str">"http://localhost:3000/api/url"</span>
<span class="com">#通过磁力链接添加种子</span><span class="pln">
curl </span><span class="pun">--</span><span class="pln">data </span><span class="str">"magnet:?xt=urn:btih:..."</span> <span class="str">"http://localhost:3000/api/url"</span>
<span class="com">#开始种子任务</span><span class="pln">
curl </span><span class="pun">--</span><span class="pln">data </span><span class="str">"start:${HASH}"</span> <span class="str">"http://localhost:3000/api/torrent"</span>
<span class="com">#停止种子任务</span><span class="pln">
curl </span><span class="pun">--</span><span class="pln">data </span><span class="str">"stop:${HASH}"</span> <span class="str">"http://localhost:3000/api/torrent"</span>
<span class="com">#删除种子任务</span><span class="pln">
curl </span><span class="pun">--</span><span class="pln">data </span><span class="str">"delete:${HASH}"</span> <span class="str">"http://localhost:3000/api/torrent"</span>
<span class="com">#查看文件和种子信息</span>
<span class="pun">/</span><span class="pln">api</span><span class="pun">/</span><span class="pln">files</span><span class="pun">和/</span><span class="pln">api</span><span class="pun">/</span><span class="pln">torrents</span>
<span class="com">#通过远程地址添加种子</span><span class="pln">
curl </span><span class="pun">--</span><span class="pln">data </span><span class="str">"http://domain.com/file.torrent"</span> <span class="str">"http://localhost:3000/api/url"</span>
<span class="com">#通过本地文件添加种子</span><span class="pln">
curl </span><span class="pun">--</span><span class="pln">data</span><span class="pun">-</span><span class="pln">binary </span><span class="str">"my.torrent"</span> <span class="str">"http://localhost:3000/api/url"</span>
<span class="com">#通过磁力链接添加种子</span><span class="pln">
curl </span><span class="pun">--</span><span class="pln">data </span><span class="str">"magnet:?xt=urn:btih:..."</span> <span class="str">"http://localhost:3000/api/url"</span>

<span class="com">#开始种子任务</span><span class="pln">
curl </span><span class="pun">--</span><span class="pln">data </span><span class="str">"start:${HASH}"</span> <span class="str">"http://localhost:3000/api/torrent"</span>
<span class="com">#停止种子任务</span><span class="pln">
curl </span><span class="pun">--</span><span class="pln">data </span><span class="str">"stop:${HASH}"</span> <span class="str">"http://localhost:3000/api/torrent"</span>
<span class="com">#删除种子任务</span><span class="pln">
curl </span><span class="pun">--</span><span class="pln">data </span><span class="str">"delete:${HASH}"</span> <span class="str">"http://localhost:3000/api/torrent"</span>

<span class="com">#查看文件和种子信息</span>
<span class="pun">/</span><span class="pln">api</span><span class="pun">/</span><span class="pln">files</span><span class="pun">和/</span><span class="pln">api</span><span class="pun">/</span><span class="pln">torrents</span>
#通过远程地址添加种子 curl --data "http://domain.com/file.torrent" "http://localhost:3000/api/url" #通过本地文件添加种子 curl --data-binary "my.torrent" "http://localhost:3000/api/url" #通过磁力链接添加种子 curl --data "magnet:?xt=urn:btih:..." "http://localhost:3000/api/url" #开始种子任务 curl --data "start:${HASH}" "http://localhost:3000/api/torrent" #停止种子任务 curl --data "stop:${HASH}" "http://localhost:3000/api/torrent" #删除种子任务 curl --data "delete:${HASH}" "http://localhost:3000/api/torrent" #查看文件和种子信息 /api/files和/api/torrents

外部程序调用

先修改配置文件,通过上面脚本安装的配置文件在你的主目录,比如/root目录,配置文件cloud-torrent.json

修改以下参数:

<span class="com">#外部程序调用参数</span>
<span class="str">"donecmd"</span><span class="pun">:</span> <span class="str">""</span><span class="pun">,</span>
<span class="com">#比如我要下载完成后,直接运行/home目录下的rats.sh脚本</span>
<span class="str">"donecmd"</span><span class="pun">:</span> <span class="str">"/home/rats.sh"</span><span class="pun">,</span>
<span class="com">#外部程序调用参数</span>
<span class="str">"donecmd"</span><span class="pun">:</span> <span class="str">""</span><span class="pun">,</span>

<span class="com">#比如我要下载完成后,直接运行/home目录下的rats.sh脚本</span>
<span class="str">"donecmd"</span><span class="pun">:</span> <span class="str">"/home/rats.sh"</span><span class="pun">,</span>
#外部程序调用参数 "donecmd": "", #比如我要下载完成后,直接运行/home目录下的rats.sh脚本 "donecmd": "/home/rats.sh",

那么下载完成后就会运行该脚本。

一般种子下载完成后,会返回以下参数变量,这里列举下主要的:

<span class="pln">CLD_DIR</span><span class="pun">为下载路径,且为绝对路径</span><span class="pln">
CLD_PATH</span><span class="pun">为下载文件名称</span><span class="pln">
CLD_SIZE</span><span class="pun">为文件大小</span><span class="pln">
CLD_TYPE</span><span class="pun">为调用事件类型,分为</span><span class="pln">files</span><span class="pun"></span><span class="pln">torrent</span><span class="pun">,分别为种子里单个文件和整体文件</span><span class="pln">
CLD_HASH</span><span class="pun">为文件</span><span class="pln">HASH</span><span class="pun"></span>
<span class="pln">CLD_DIR</span><span class="pun">为下载路径,且为绝对路径</span><span class="pln">
CLD_PATH</span><span class="pun">为下载文件名称</span><span class="pln">
CLD_SIZE</span><span class="pun">为文件大小</span><span class="pln">
CLD_TYPE</span><span class="pun">为调用事件类型,分为</span><span class="pln">files</span><span class="pun">和</span><span class="pln">torrent</span><span class="pun">,分别为种子里单个文件和整体文件</span><span class="pln">
CLD_HASH</span><span class="pun">为文件</span><span class="pln">HASH</span><span class="pun">值</span>
CLD_DIR为下载路径,且为绝对路径 CLD_PATH为下载文件名称 CLD_SIZE为文件大小 CLD_TYPE为调用事件类型,分为filestorrent,分别为种子里单个文件和整体文件 CLD_HASH为文件HASH

这里随便放一个下载后自动移动的脚本,针对rclone挂载的文件夹。

<span class="com">#!/bin/bash</span>
<span class="com">#下载后移动的文件夹路径</span>
<span class="typ">RemoteDIR</span><span class="pun">=</span><span class="str">"/down/moerats"</span><span class="pun">;</span>
<span class="kwd">if</span> <span class="pun">[[</span><span class="pln"> $</span><span class="pun">{</span><span class="pln">CLD_TYPE</span><span class="pun">}</span> <span class="pun">==</span> <span class="str">"torrent"</span> <span class="pun">]];</span> <span class="kwd">then</span>
<span class="kwd">eval</span><span class="pln"> mv \'</span><span class="str">"${CLD_DIR}/${CLD_PATH}"</span><span class="pln">\' </span><span class="str">"${RemoteDIR}"</span><span class="pun">;</span>
<span class="com">#移动后停止该任务</span><span class="pln">
curl </span><span class="pun">--</span><span class="pln">data </span><span class="str">"stop:${CLD_HASH}"</span> <span class="str">"http://127.0.0.1:3000/api/torrent"</span><span class="pun">;</span>
<span class="com">#停止后清除该任务,也就是不会出现在Web界面了</span><span class="pln">
curl </span><span class="pun">--</span><span class="pln">data </span><span class="str">"delete:${CLD_HASH}"</span> <span class="str">"http://127.0.0.1:3000/api/torrent"</span><span class="pun">;</span>
<span class="kwd">fi</span>
<span class="com">#!/bin/bash</span>

<span class="com">#下载后移动的文件夹路径</span>
<span class="typ">RemoteDIR</span><span class="pun">=</span><span class="str">"/down/moerats"</span><span class="pun">;</span>  

<span class="kwd">if</span> <span class="pun">[[</span><span class="pln"> $</span><span class="pun">{</span><span class="pln">CLD_TYPE</span><span class="pun">}</span> <span class="pun">==</span> <span class="str">"torrent"</span> <span class="pun">]];</span> <span class="kwd">then</span>
<span class="kwd">eval</span><span class="pln"> mv \'</span><span class="str">"${CLD_DIR}/${CLD_PATH}"</span><span class="pln">\' </span><span class="str">"${RemoteDIR}"</span><span class="pun">;</span>
<span class="com">#移动后停止该任务</span><span class="pln">
curl </span><span class="pun">--</span><span class="pln">data </span><span class="str">"stop:${CLD_HASH}"</span> <span class="str">"http://127.0.0.1:3000/api/torrent"</span><span class="pun">;</span>
<span class="com">#停止后清除该任务,也就是不会出现在Web界面了</span><span class="pln">
curl </span><span class="pun">--</span><span class="pln">data </span><span class="str">"delete:${CLD_HASH}"</span> <span class="str">"http://127.0.0.1:3000/api/torrent"</span><span class="pun">;</span>
<span class="kwd">fi</span>
#!/bin/bash #下载后移动的文件夹路径 RemoteDIR="/down/moerats"; if [[ ${CLD_TYPE} == "torrent" ]]; then eval mv \'"${CLD_DIR}/${CLD_PATH}"\' "${RemoteDIR}"; #移动后停止该任务 curl --data "stop:${CLD_HASH}" "http://127.0.0.1:3000/api/torrent"; #停止后清除该任务,也就是不会出现在Web界面了 curl --data "delete:${CLD_HASH}" "http://127.0.0.1:3000/api/torrent"; fi

这里还可以结合TG机器人啥的一起使用,玩法很多,可以自行结合API一起使用。

要注意的是,配置调用脚本的时候,需要给予脚本可执行权,并重启程序生效,比如:

<span class="com">#给予可执行权,脚本路径/root/rats.sh</span><span class="pln">
chmod </span><span class="pun">+</span><span class="pln">x </span><span class="pun">/</span><span class="pln">root</span><span class="pun">/</span><span class="pln">rats</span><span class="pun">.</span><span class="pln">sh
</span><span class="com">#重启程序</span><span class="pln">
systemctl restart cloud</span><span class="pun">-</span><span class="pln">torrent</span>
<span class="com">#给予可执行权,脚本路径/root/rats.sh</span><span class="pln">
chmod </span><span class="pun">+</span><span class="pln">x </span><span class="pun">/</span><span class="pln">root</span><span class="pun">/</span><span class="pln">rats</span><span class="pun">.</span><span class="pln">sh
</span><span class="com">#重启程序</span><span class="pln">
systemctl restart cloud</span><span class="pun">-</span><span class="pln">torrent</span>
#给予可执行权,脚本路径/root/rats.sh chmod +x /root/rats.sh #重启程序 systemctl restart cloud-torrent
© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
The worst sort of indolence is being given a choice, yet taking no initiative to change.
我们人生中最大的懒惰,就是当我们明知自己拥有作出选择的能力,却不去主动改变而是放任它的生活态度
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片快捷回复

    暂无评论内容