赞
踩
Python 实现 BT 种子转化为磁力链接 [实战]
经常看电影的朋友肯定对 BT 种子并不陌生, 但是 BT 种子文件相对磁力链来说存储不方便, 而且在网站上存放 BT 文件容易引起版权纠纷, 而磁力链相对来说则风险小一些.
将 BT 种子转换为占用空间更小, 分享更方便的磁力链还是有挺大好处的.
今天咱们来看下如何将种子转换成磁力链接, 方案是: 利用 python 的 bencode 模块, 用起来比较简单
首先要安装这个模块, 安装命令:
pip install bencode
如果没有安装 pip(安装了可以略过), 看这里:
pip 的安装方法.
方法一: 脚本安装$ wget https://bootstrap.pypa.io/get-pip.py
$[sudo]pythonget-pip.py
方法二: 源码安装:$ curl-O https://pypi.python.org/packages/source/p/pip/pip-X.X.tar.gz
$ tar xvfz pip-X.X.tar.gz
$ cd pip-X.X
$ python setup.py install
但是安装过程可能会出现错误:
An error occurred while trying to run get-pip.py. Make sure you have setuptools or distribute installed.
出现这个错误, 说明首先要安装 setuptools
setuptools 安装:wget-q http://peak.telecommunity.com/dist/ez_setup.py
python ez_setup.py
安装完 setuptools 后, 再次源码安装就好了.
安装完成后, 我们来看下代码:
系统环境: Linux
Python 环境: Python2.7
请注意 python 版本
bt2url.py
实战代码:#! /usr/local/bin/python
# @desc python 通过 BT 种子生成磁力链接
# @date 2015/11/10
# @author pythontab.com
importbencode
importsys
importhashlib
importbase64
importurllib
# 获取参数
torrentName=sys.argv[1]
# 读取种子文件
torrent=open(torrentName,'rb').read()
# 计算 meta 数据
metadata=bencode.bdecode(torrent)
hashcontents=bencode.bencode(metadata['info'])
digest=hashlib.sha1(hashcontents).digest()
b32hash=base64.b32encode(digest)
# 打印
print'magnet:?xt=urn:btih:%s'%b32hash
如何使用?
命令:
python bt2url.py test.torrent
结果:
magnet:?xt=urn:btih:MWXFHXOGE2UMR7WBFZYEJPM3LF2VIHNH
来源: http://www.jianshu.com/p/d130b2ceaddc
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。