#bittorrent #torrent #magnet-link

app demagnetize

将磁力链接转换为.torrent文件

2个不稳定版本

0.2.0 2023年12月29日
0.1.0 2023年6月24日

#971 in 网络编程

24 每月下载次数

MIT 许可证

190KB
4.5K SLoC

Project Status: Active – The project has reached a stable, usable state and is being actively developed. CI Status codecov.io Minimum Supported Rust Version MIT License

GitHub | crates.io | 问题 | 变更日志

demagnetize 是一个Rust程序,通过从活跃的节点下载torrent信息,将一个或多个BitTorrent 磁力链接 转换为 .torrent 文件。

目前,demagnetize 仅支持BitTorrent协议的基本功能。以下是一些支持的特点:

  • BitTorrent协议v1
  • HTTP(包括压缩和IPv6扩展)和UDP追踪器
  • 使用十六进制或base32编码的info散列的magnet URI
  • 快速扩展(《BEP 6》)
  • UDP追踪器协议扩展(《BEP 41》)

以下功能目前不支持,但计划支持,不分先后顺序:

  • 加密
  • 分布式哈希表
  • BitTorrent协议v2
  • magnet链接中的x.pe参数
  • uTP

demagnetize 是同一作者编写的Python程序的翻译;您可以在https://github.com/jwodder/demagnetize找到Python版本。

安装

为了安装 demagnetize,您首先需要安装 Rust和Cargo。然后,您可以通过运行以下命令构建 demagnetize 的最新版本并将其安装到 ~/.cargo/bin

cargo install demagnetize

用法

demagnetize [<global options>] <subcommand> ...

demagnetize 命令有两个子命令,get(用于转换单个磁力链接)和batch(用于转换包含磁力链接的文件),具体细节如下。

全局选项

  • -l <level>, --log-level <level> — 将日志级别设置为指定的值。可能的值有 "OFF", "ERROR", "WARN", "INFO", "DEBUG" 和 "TRACE"(不区分大小写)。[默认值: INFO]

消磁获取

demagnetize [<global options>] get [<options>] <magnet-link>

将命令行上指定的单个磁力链接转换为 .torrent 文件。(注意,你可能需要引用链接以防止它被shell解释。)默认情况下,文件保存到 {name}.torrent,其中 {name} 被替换为torrent信息中的 name 字段值,但可以通过 --outfile 选项设置不同的路径。

选项

  • -o PATH, --outfile PATH — 将 .torrent 文件保存到指定的路径。路径可能包含一个 {name} 占位符,它将被(净化)的torrent名称替换,以及/或一个 {hash} 占位符,它将被torrent的信息哈希(十六进制表示)替换。指定 - 将导致torrent被写入标准输出。[默认: {name}.torrent]

消磁批量处理

demagnetize [<global options>] batch [<options>] <file>

<file> 中读取磁力链接(每行一个,忽略空行和以 # 开头的行),并将每个链接转换为 .torrent 文件。默认情况下,每个文件保存到 {name}.torrent,其中 {name} 被替换为torrent信息中的 name 字段值,但可以通过 --outfile 选项设置不同的路径。

选项

  • -o PATH, --outfile PATH — 将 .torrent 文件保存到指定的路径。路径可能包含一个 {name} 占位符,它将被每个torrent的(净化)名称替换,以及/或一个 {hash} 占位符,它将被每个torrent的信息哈希(十六进制表示)替换。[默认: {name}.torrent]

依赖项

~11–24MB
~391K SLoC