BT下载软件-Transmission
2012-07-22 21:38:21 阿炯

本站赞助商链接,请多关照。 Transmission 是开源的 BitTorrent 客户端,支持 macOS、Windows 和 Linux 平台。特点是具有简洁且美观的界面、速度快、轻量、保护隐私,还具有其他众多丰富功能。主要采用C++编写并在GPLv2协议下授权使用。

Transmission is an open source, volunteer-based project. Unlike some BitTorrent clients, Transmission doesn't play games with its users to make money:

Transmission doesn't bundle toolbars, pop-up ads, flash ads, twitter tools, or anything else.
It doesn't hold some feaures back for a payware version.
Its source code is available for anyone to review.
We don't track our users, and our website and forums have no third-party ads or analytics.

Easy
Transmission is designed for easy, powerful use. We've set the defaults to Just Work and it only takes a few clicks to configure advanced features like watch directories, bad peer blocklists, and the web interface. When Ubuntu chose Transmission as its default BitTorrent client, one of the most-cited reasons was its easy learning curve.

Powerful
Transmission has the features you want from a BitTorrent client: encryption, a web interface, peer exchange, magnet links, DHT, µTP, UPnP and NAT-PMP port forwarding, webseed support, watch directories, tracker editing, global and per-torrent speed limits, and more.

如果在Linux系统的/etc目录下没有其配置文件目录(或没有使用服务式启动方式),那么其就当前用户的公用隐藏配置目录下(~/.config/transmission/)。

批量添加任务
使用transmission-remote命令行工具来实现。

提高缓存来减少对硬盘的IO请求(Maximum memory cache size)

在配置文件(settings.json)中指定缓存大小:
"cache-size-mb": NN,

其中NN为数字,单位为MB,依据主机物理内存大小设定,默认为4MB。

自动添加任务
在其种子目录中放入种文件后,让其自动发现并加载开始任务。

在 Transmission 设置文件 settings.json 最后面增加/修改以下三项:
"watch-dir": "/home/freeoa/dls/torrents",
"watch-dir-enabled": true,
"trash-original-torrent-files": true,
保存,启动 Transmission

可借用具备Bt下载功能Aria2c来将磁力链接转换为种子来实现,可用小工具magnet2torrent来转换。

transmission-remote

transmission-remote是一款远程管理BT下载软件transmission(transmission-daemon)的命令行实用工具。做为transmission这款有本地简陋界面及WebUI之外补充操作工具。因此掌握和理解其各种选项的用法就显的有必要了。

格式

transmission-remote [host:port | host | port] [-a filenames-or-URLs] [-as] [-AS] [-asd number] [-asu number] [-asc] [-ASC] [-b] [-c path | -C] [-d number | -D] [-e size] [-er | -ep | -et] [-f] [-g files] [-G files] [-gsr ratio] [-GSR] [-h] [-i] [-l] [-m | -M] [-n user:pass] [-N netrc] [-o | -O] [-p port] [-Bh] [-Bn] [-Bl] [-ph files] [-pl files] [-pn files] [-pr peers] [-r] [-R] [-s | -S] [-sr ratio] [-SR] [-srd] [-si] [-st] [-t all | id | hash] [-hl] [-HL] [-u number | -U] [-v] [-V] [-w download-dir] [-x | -X] [-y | -Y] [-pi]

参数

因为以上提供的参数较多,选择性介绍如下这些我经常用到的。全部参数可以参考其手册页面
选项用途
-a --add添加种子文件
-as --alt-speed启用备选限速
-AS --no-alt-speed停用备选限速
-asd --alt-speed-downlimit 下载限速限制备选下载速度上限为下载限速 KB每秒
-asu --alt-speed-uplimit 上传限速限制备选上传速度上限为上传限速 KB每秒
-c --incomplete-dir 目录路径保存未完成的下载文件至指定的目录路径,直到种子下载完成
-C --no-incomplete-dir不保存未完成的下载文件至另外的目录
-d --downlimit 下载限速限制下载速度上限为下载限速 KB每秒。如果选定了种子文件,该上限应用到选定的种子文件,否则该上限应用于全局
-D --no-downlimit取消下载限速。如果选定了种子文件,该上限应用到选定的种子文件,否则该上限应用于全局
-f --files获取选定种子内的文件列表
-g --get all / file-index / files标记指定文件为需要下载all 指定该种子内所有文件为需要下载,file-index 指定单个文件为需要下载,files 指定多个文件为需要下载,例如"-g1,3-5"标记了第1、3、4、5个文件为需要下载
-G --no-get all / file-index / files标记指定文件为无需下载。参数如上
-gsr --global-seedratio 分享比率设置全局的分享比率(上传量/下载量),完成下载后,如果达到这个分享比率,会停止作种
-GSR --no-global-seedratio停止使用全局的分享比率
-i --info显示选定种子的详细信息
-l --list显示所有的种子列表
-n --auth 用户名:密码提供管理transmission的用户名密码(中间用“:”隔开)信息
-ph --priority-high all / file-index / files优先下载指定的文件(h代表high priority高优先级),指定文件的方式同上面-g参数里的用法
-pn --priority-normal all / file-index / files设置指定的文件为正常优先级下载,指定文件的方式同上面-g参数里的用法
-pl --priority-low all / file-index / files设置指定的文件为低优先级下载,指定文件的方式同上面-g参数里的用法
-pr --peers 个数设定最大的peer节点数,如果选定了种子文件,该上限应用到选定的种子文件,否则该上限应用于全局
-r --remove删除指定的种子。但不会删除已下载的文件
--remove-and-delete删除指定的种子以及已经下载的相关文件
--move把指定种子的文件移动到别的目录
-sr --seedratio 分享比率设置指定的种子作种到特定的分享比率达到为止
-SR --no-seedratio取消设置指定的种子的分享比率
-ta --tracker-add tracker给指定的种子增加一个tracker服务器
-s --start开始指定的种子下载
-S --stop停止指定的种子下载或作种
--start-paused设定新添加的种子为暂停状态(需手动启动下载)
--no-start-paused设定新添加的种子自动开始下载
-t --torrent指定种子,以对其进行接下来选项的操作。想要选多个种子的话,可以把种子的id逗号隔开列出,比如“-t2,4,6-8”指定对第 2、4、6、7、 8个种子一起做操作
-u --uplimit 上传限速限制上传速度上限为上传限速 KB每秒。如果选定了种子文件,该上限应用到选定的种子文件,否则该上限应用于全局
-U --no-uplimit取消上传限速。如果选定了种子文件,该上限应用到选定的种子文件,否则该上限应用于全局
-w --download-dir 目录名设置新添加的种子下载到指定目录名
-pi --peer-info显示目前连接中的peer节点状态


示例

1.显示当前所有的种子
transmission-remote --auth username:password -l

所有例子中transmission的用户名是 username, 密码是 password,如果没有使用密码则直接不使用'--auth'选项即可。
# transmission-remote --auth username:password -l

2.添加新的种子文件
transmission-remote --auth username:password -a "https://download.gimp.org/pub/gimp/v2.10/windows/gimp-2.10.22-setup.exe.torrent"

transmission-remote --auth username:password -a "https://download.gimp.org/pub/gimp/v2.10/windows/gimp-2.10.22-setup.exe.torrent"

localhost:9091/transmission/rpc/ responded: "success"

例子中使用的是种子文件的http链接,这里也可以使用本地的种子文件,或者种子的磁力链,如:
transmission-remote --auth username:password -a /usr/local/share/gimp-2.10.22-setup.exe.torrent
transmission-remote --auth username:password -a "magnet:?xt=urn:btih:d1bc284467d2630..."

再运行一次-l,可以看到新的种子已添加并下载中:
transmission-remote --auth username:password -l

3.改变种子的下载目录

如果不想把刚刚添加的种子保存到默认下载目录,给它转移到/usr/local/share/目录下,使用--move参数。注意上面的种子列表中,刚添加的种子ID是36,通过-t36来指定对这个种子进行移动的操作:
transmission-remote --auth username:password -t36 --move /usr/local/share/

注意:无论是下载中还是已经下载完成的文件,都可以通过这个参数实现移动。
transmission-remote --auth username:password -t36 --move /usr/local/share/
localhost:9091/transmission/rpc/ responded: "success"

4.停止作种
下载完成了,不想继续作种了,使用-r参数移除种子:
transmission-remote --auth username:password -t36 -r

注意:-r只会删除种子,停止作种,已下载好的文件不会被删除。

transmission-remote --auth username:password -t36 -r
localhost:9091/transmission/rpc/ responded: "success"

5.不希望添加新种子后就下载马上开始,使用--start-paused更改下设置:
transmission-remote --auth username:password --start-paused

localhost:9091/transmission/rpc/ responded: "success"

更改设置后,新添加的种子(ID: 37)为Stopped状态
# transmission-remote --auth username:password -l

6.查看下该种子内的所有文件。使用-f
transmission-remote --auth username:password -t37 -f

可以看到这个种子内所有的单个文件,他们的文件名、大小、序号(#)、下载进度、优先级、是否下载等信息。

7.标注前三集的文件为无需下载,因为我看过了;-), 使用-G,因为前三集文件的序号是第0-2号,使用的命令如下:
transmission-remote --auth username:password -t37 -G0-2

localhost:9091/transmission/rpc/ responded: "success"

transmission-remote --auth username:password -t37 -f

再次运行-f的结果里可以看到"Get"列里,前三集都已经变成“No”,即不会被下载了。

8.现在优先下载第4集(#3)的文件,因为我着急要看...,用-ph实现:
transmission-remote --auth username:password -t37 -ph3
localhost:9091/transmission/rpc/ responded: "success"

transmission-remote --auth username:password -t37 -f

再次运行-f的结果里可以看到"Priority"列里,第4集的文件变为“High”。

全集下载用就-g实现,-gall(all即指定这个种子内所有文件了):
transmission-remote --auth username:password -t37 -gall
localhost:9091/transmission/rpc/ responded: "success"

transmission-remote --auth username:password -t37 -f
再次运行-f的结果里可以看到"Get"列里,所有文件都变为“Yes”了。

OK,都设置好了,可以用-s手动开始下载了:
transmission-remote --auth username:password -t37 -s
localhost:9091/transmission/rpc/ responded: "success"

上文详解了transmission-remote配合不同参数的使用方法。希望这个小工具能给喜欢用transmission下载工具的朋友提供一些额外的惊喜。


最新版本:4.0
Transmission 4.0.0 稳定版已于2023年2月中旬正式发布,其团队表示这是一个大版本更新 —— 不仅体现在版本号上,还为这个版本投入了许多开发资源。自 3.0 发布以来,此版本已经积极开发了一年多,包含大量变化,提交了超过 1000 次。

优化资源使用:内存占用更少、CPU 周期更低
此版本对代码进行了广泛的分析和改进,以修复低效的代码和内存使用。与 3.00 相比,CPU 周期和内存占用分别降低了 50% 和 70%
远程控制 GUI (transmission-qt & transmission-web) 现在使用 RPC API "table" 模式,从而减少有效负载 / 带宽使用
RPC 有效负载现在使用 libdeflate 进行压缩,它经过高度优化,比 zlib 库快得多。

社区活跃度更高:对错误反馈和代码提交的响应速度显著提升
与过去相比,Transmission 对错误反馈和代码提交的响应要快得多
吸引了一批新的贡献者
Transmission 4.0.0-beta.1 包含 300 多个新的社区 commit(点此查看)
文档已迁移到 transmission/transmission,贡献者可提交 PR 来改进它。

使用现代化代码:使用 C++ 重写
项目代码已从 C (C90) 迁移到 C++。在此过程中,团队删除了数千行自定义代码并改用标准 C++ 工具,从而将核心的代码量减少了 18%。此外还通过对核心代码仓库进行广泛的重构,让其更具可测试性和可维护性
GTK 客户端已移植到 gtkmm
Web 客户端已用现代 JavaScript 重写,不再使用 jQuery。完整 gzip 包大小为 68K
单元测试已扩展并移植到 Google Test。Clang sanitizer 构建在 CI 期间运行
核心库已经过模糊测试
Transmission 现在对新代码使用 Sonarcloud、Coverity、LGTM 和 clang-tidy 静态分析。与 Transmission 3.00 相比,修复了数百个代码警告。

其他新特性
支持使用 BitTorrent v2 种子和混合型种子
支持设置可用于宣布所有公共种子的 “默认” 跟踪器
新添加的种子可以立即启动并按需验证片段,而不需要在开始做种之前进行全面验证
添加了在创建新种子时省略潜在识别信息(例如用户代理和创建日期)的选项
重写 Web 客户端,可在移动设备使用
创建新种子时,现已支持指定块大小
支持 IPv6 阻止列表
从 4.0.0-beta.1 开始,Transmission 使用 semver 进行版本控制
……

详情查看发行说明


官方主页:http://www.transmissionbt.com/