使用Python操控Transmission

Transmission是一个开源的BT下载服务,在Centos下可以通过yum安装,有匹配的Web界面,同时有专门的Python模块transmissionrpc。

介绍

transmissionrpc是Python下专门用来控制Transmission服务的模块,主要通过json-rpc连接并控制Transmission服务,兼容Transmission 1.31跟后面版本,最新的transmissionrpc版本为0.11.

本文没提供Transmission的安装与配置,默认读者已经装好并配置好。

安装

直接使用pip3安装

1
pip install transmissionrpc

使用

Transmission连接

1
2
3
4
5
>>> import transmissionrpc
#有帐号密码的使用:
>>> tc = transmissionrpc.Client(address='127.0.0.1', port=9091, user='test', password='abcdefg123')
#无帐号密码的使用:
>>> tc = transmissionrpc.Client(address='127.0.0.1', port=9091)

Transmission操作

torrent操作

添加下载任务(torrent文件或torrent url)

1
2
>>> tc.add_torrent(torrent=r"/data/1.torrent")
>>> tc.add_torrent(torrent="magnet:?xt=urn:btih:...")

注意:对torrent文件transmission必须要有读写权限!把torrent文件属主改成transmission或权限设成777都可以。

删除下载任务,需要先获取torrent_id

1
>>> tc.remove_torrent({torrent_id})

获取torrent_id

1
2
>>> tc.get_torrents()
[<Torrent 1>, <Torrent 2>]

输出是一个列表,包含所有在下载队列中的torrent_id,一个torrent_id对应一个下载任务,”Torrent”后面的数字就是需要的torrent_id。

根据torrent_id获取torrent对象

1
2
>>> tc.get_torrent(1)
<Torrent 1>

get_torrent()获取到的就是对应id的torrent对象,torrent对象换个我们熟悉的说法就是下载任务,可以通过调用对象属性来获取下载任务的信息。

分别查看torrent对象的下载进度,开始时间,状态,队列位置,peer限制等
torrent对象1

获取torrent对象的文件信息
torrent对象2

torrent对象的控制:开始、暂停、状态、更新分别用start(),stop(),status(),update()
torrent对象3

注意:每次调用start()、stop()后都要再调用一次update(),否则不会生效。

单个torrent对象的配置修改更新:
torrent对象4

transmission 全局配置配置

获取session:

1
session = tc.get_session()

关闭下载速度限制
session1

下载队列长度从5加到10
session2

session有很多可配置属性,不一一列举,需要了解更多的去官方文档找下吧

结尾

本文最开始是照文档内容边试边写的,属性和方法有点多,只写出部分常用的,对于其它的本文没有的内容,请参照官方文档。

以下是自己写的脚本下载过程:
transmission

文档
详细模块文档


- - END - -


腾讯云
0%