字节流的博客

aria2 及 DLNA 服务 Docker 部署 -(2)

图片来自:https://wearelocalworks.org/wp-content/uploads/2016/12/seeds.jpg

上一篇继续说,前面搭好了 aria2 的服务,并且搭好了 Web 管理页面,可以通过页面添加链接,或者上传种子,来执行下载任务。下面说说从百度云下载文件和 BT 服务器地址的配置。

从百度云下载

百度云用起来还是可以的,尤其是离线下载比较好使,可以通过磁力链接和种子,直接下载到自己的网盘。但是从百度云下载到自己的电脑还是比较尴尬的,尤其在 Linux 服务器上。并且非 VIP 用户网络限速,下载缓慢。

幸运的是,已经有人解决了这个问题。BaiduExporter 是开源的浏览器插件,可以方便的把百度网盘的下载地址导出到 aria2/aria2-rpc,支持 YAAW,支持 Firefox 和 Chrome 浏览器,还可以突破非 VIP 用户的网络限速。

需要注意的是,我在 Chrome 插件商店找这个插件的时候,已经被下架了,需要自己从 Github 把软件包下载下来。Chrome 打开插件打开开发者模式,导入下载下来的插件即可。

baidu_exporter

有一点不太好的是,如果文件太大,或者网速不好,导致下载任务持续时间较长,可能就会导致下载失败(被切了?😔)。并且还无法重新开始任务,得从头再来一遍。

BTrackersPostman

百度云虽然好用,但是还是割的太厉害,我可不想我的波多野结衣,噢不,新垣结衣的经典电视剧,变成《金刚葫芦娃》。

gakki

配置完 aria2 后,测试了下使用 BT 下载,等了半天,还是 0%,进度条一点也不肯往前走,并且也没有可连接的主机。看了看页面的各项配置,在 Aria2 Settings -> BitTorrent 下面,有个 BitTorrent Trackers 配置。那有哪些公开的 trackers 可以配置呢 😯?搜了下,发现了 trackerlist 这个项目。每天晚上零时定时更新公开的 trackers 服务器列表。于是手动配置了 trackers_best 列表中的服务器列表到我的 aria2。还是挺好用的,没有过多久,我的 aria2 就开始下载种子里面的文件了。

但是,trackerlist 每天都更新,我不能每天都来配置下啊,岂不是累死人。于是搞了个 btrackers-postman 项目,也没啥技术含量,主要功能就是从 Github trackerlist 仓库下载最新的服务器地址列表,然后把列表通过 JSON RPC 发送给 aria2 服务器。这样就可以通过设置 crontab 每天定时执行下这个任务就行了,不用手动配置了 🙅。

现在可以通过 pip3 install btrackers-postman 命令安装使用了。

或者使用 Docker 镜像 smoker/btrackers-postmandocker pull smoker/btrackers-postman

安装成功之后,在 Terminal 执行 btp -h 查看使用帮助:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
$ btp -h
usage: btp [-h] [-i index] [-p proxy] jsonrpc_url jsonrpc_token

positional arguments:
jsonrpc_url Target aria2 server jsonrpc url
jsonrpc_token Target aria2 server jsonrpc token

optional arguments:
-h, --help show this help message and exit
-i index, --index index
0 - trackers_best (DEFAULT)
1 - trackers_all
2 - trackers_all_udp
3 - trackers_all_http
4 - trackers_all_https
5 - trackers_best_ip
6 - trackers_all_ip
More detail: https://github.com/ngosang/trackerslist
-p proxy, --proxy proxy
Request proxy, http proxy or socks proxy likes:
http://user:password@10.1.1.6:8080 or socks5://127.0.0.1:1086

做这个主要是路径和学习下两个东西:

  1. 如何将自己写的 Python 代码打包放到 PyPI 上;
  2. 如何使用 Python 写一个简单的命令行工具。

还都挺有意思的,玩得开心。

Thanks! 😊