如何用Bash脚本提取Transmission Remote的种子磁力链接/URL以同步种子状态
如何用Bash脚本提取Transmission Remote的种子磁力链接/URL以同步种子状态
我完全懂你的痛点——每次手动保存种子链接太繁琐,而且transmission-remote -l只给名字和基本信息,根本没法在另一台机器上还原当前的种子状态。刚好我之前也解决过这个问题,给你分享几个实用的方案:
方案一:通过Transmission Remote API直接提取链接
Transmission的远程命令行工具transmission-remote自带查看单种子详情的功能,里面就包含磁力链接或源URL。我们可以写个脚本遍历所有种子ID,批量提取这些信息:
完整脚本示例
#!/bin/bash # 提取所有Transmission种子的磁力链接/URL并保存到文件 # 若Transmission设置了用户名密码,添加认证参数(比如 --auth 用户名:密码) REMOTE_CMD="transmission-remote" # 替换成你的输出文件路径 OUTPUT_FILE="torrent_sync_links.txt" # 清空输出文件(如果已存在) > "$OUTPUT_FILE" echo "正在提取种子链接,将保存到 $OUTPUT_FILE..." # 获取所有种子ID:跳过表头和最后一行的汇总行 TORRENT_IDS=$($REMOTE_CMD -l | awk 'NR>1 && !/Sum:/ {print $1}') for ID in $TORRENT_IDS; do # 获取种子详情,过滤出包含磁力链接或源URL的行 LINK_INFO=$($REMOTE_CMD -t "$ID" -i | grep -E "Magnet Link:|URL:") if [ -n "$LINK_INFO" ]; then echo "种子ID $ID:" >> "$OUTPUT_FILE" echo "$LINK_INFO" >> "$OUTPUT_FILE" echo "---" >> "$OUTPUT_FILE" fi done echo "提取完成!"
脚本说明
- 获取种子ID:用
transmission-remote -l列出所有种子,再通过awk过滤掉无用的表头和汇总行,只保留种子ID - 遍历提取链接:对每个种子ID,用
-t [ID] -i查看详情,再用grep匹配包含Magnet Link:或URL:的行 - 保存结果:把每个种子的ID和链接信息写入文件,加上分隔线方便后续查看
优化技巧
- 如果你的Transmission需要认证,把
REMOTE_CMD改成transmission-remote --auth 你的用户名:你的密码 - 若想只保留纯链接(去掉前缀),可以把提取链接的行改成:
LINK_INFO=$($REMOTE_CMD -t "$ID" -i | grep -E "Magnet Link:|URL:" | sed 's/.*: //') - 要在另一台机器批量导入链接,只需执行:
xargs -L 1 transmission-remote -a < torrent_sync_links.txt
(前提是文件里每行都是纯链接)
方案二:从本地种子文件提取链接(需访问种子存储目录)
如果你的Transmission把种子文件保存在本地,也可以用transmission-show命令直接从.torrent文件中提取链接:
脚本示例
#!/bin/bash # 从本地种子文件提取链接 # 替换成你的Transmission种子存储目录(不同系统路径可能不同) TORRENT_DIR="/var/lib/transmission-daemon/downloads/torrents" OUTPUT_FILE="torrent_links_from_files.txt" > "$OUTPUT_FILE" echo "正在从种子文件提取链接..." for TORRENT_FILE in "$TORRENT_DIR"/*.torrent; do LINK_INFO=$(transmission-show "$TORRENT_FILE" | grep -E "Magnet Link:|URL:") if [ -n "$LINK_INFO" ]; then echo "$(basename "$TORRENT_FILE"):" >> "$OUTPUT_FILE" echo "$LINK_INFO" >> "$OUTPUT_FILE" echo "---" >> "$OUTPUT_FILE" fi done echo "提取完成!"
适用场景
这个方案适合你能直接访问Transmission的种子存储目录的情况,优点是不需要依赖远程连接,直接读取本地文件即可。
备注:内容来源于stack exchange,提问作者Federico De Rocco
相关产品推荐
相关产品推荐

