从 BYR(北邮人PT)网站下载视频 torrent 文件并添加到 Transmission 下载队列。当用户想要下载视频资源、添加视频种子到下载器、或者询问"下载这个"、"添加到下载列表"时使用此 skill。
这个 skill 负责从 BYR(北邮人PT)下载视频 torrent 文件并添加到 Transmission 下载队列。
通过环境变量配置:
必需环境变量:
export BYR_COOKIE="session_id=xxx; auth_token=yyy"
可选环境变量(Transmission 配置):
export TRANSMISSION_HOST="localhost" # 默认: localhost
export TRANSMISSION_PORT="9091" # 默认: 9091
export TRANSMISSION_USER="" # 如果需要认证
export TRANSMISSION_PASSWORD="" # 如果需要认证
配置说明:
BYR_COOKIE: BYR(北邮人PT)的完整 cookie 字符串,格式:session_id=值1; auth_token=值2(获取方法见 video-search skill)TRANSMISSION_HOST: Transmission 服务器地址TRANSMISSION_PORT: Transmission RPC 端口TRANSMISSION_USER: Transmission 用户名(可选)TRANSMISSION_PASSWORD: Transmission 密码(可选)当用户想要下载 PT 资源时:
确认下载信息
下载 torrent 文件
添加到 Transmission
返回结果
用户请求:"下载这个 torrent,ID 是 123456"
执行步骤:
./scripts/byr-download.sh 123456
输出格式:
📥 正在从 BYR 下载 torrent 文件 (ID: 123456)...
✅ Torrent 文件下载成功
🔌 连接 Transmission...
✅ 已连接到 Transmission
⬇️ 正在添加下载任务...
✅ 下载任务已添加!
名称: 电影名称.1080p.中英双字
Hash: abc123def456...
ID: 1
📝 下载信息:
搜索关键词: 盗梦空间
资源名称: [电影] 盗梦空间
用户请求:"下载第3个"(在搜索结果之后)
执行步骤:
输出格式:
⬇️ 正在下载:[电影] 盗梦空间 Inception (2010)
📥 正在从 BYR 下载 torrent 文件 (ID: 123456)...
✅ Torrent 文件下载成功
🔌 连接 Transmission...
✅ 已连接到 Transmission
⬇️ 正在添加下载任务...
✅ 下载任务已添加!
名称: 盗梦空间.Inception.2010.1080p.BluRay.x264
Hash: abc123def456...
ID: 5
如果 torrent 已存在于 Transmission:
输出格式:
📥 正在从 BYR 下载 torrent 文件 (ID: 123456)...
✅ Torrent 文件下载成功
🔌 连接 Transmission...
✅ 已连接到 Transmission
⬇️ 正在添加下载任务...
⚠️ 该 torrent 已存在于 Transmission 中
名称: 电影名称.1080p.中英双字
Hash: abc123def456...
ID: 2
错误1:无法下载 torrent 文件
❌ 下载失败:无法获取 torrent 文件
提示:可能是 cookie 过期或 torrent ID 不存在
解决:
错误2:无效的 torrent 文件
❌ 下载失败:返回的不是有效的 torrent 文件
解决:
错误3:无法连接到 Transmission
❌ 无法连接到 Transmission (http://192.168.10.2:9091)
解决:
错误4:认证失败
❌ 添加失败: unauthorized
解决:
curl -s -k \
-H "Host: byr.pt" \
-H "Cookie: auth_token=${BYR_COOKIE}" \
"https://byr.pt/download.php?id=${TORRENT_ID}"
# 获取 Session ID
SESSION_ID=$(curl -s -I "http://192.168.10.2:9091/transmission/rpc" | \
grep -i "X-Transmission-Session-Id:" | sed 's/.*: //')
# 添加 torrent
curl -s -X POST \
-H "X-Transmission-Session-Id: ${SESSION_ID}" \
-H "Content-Type: application/json" \
-d '{"method":"torrent-add","arguments":{"metainfo":"<base64_metainfo>"}}' \
"http://192.168.10.2:9091/transmission/rpc"
用法:
./byr-download.sh <torrent_id> [keyword] [name]
参数:
torrent_id: BYR torrent ID(必填)keyword: 搜索关键词(可选,用于记录)name: 资源名称(可选,用于记录)返回:JSON 格式的下载结果
用法:
./transmission-rpc.sh <action> [args]
支持的 action:
add: 添加 torrent(通过 base64 metainfo)list: 列出所有 torrentremove: 删除 torrentsession-id: 获取 session ID示例:
# 添加 torrent
./transmission-rpc.sh add "base64_metainfo" "/path/to/download/dir"
# 列出所有 torrent
./transmission-rpc.sh list
# 删除 torrent
./transmission-rpc.sh remove "hash-string" true
# 获取 session ID
./transmission-rpc.sh session-id
Transmission 使用 JSON-RPC 协议。
端点:POST /transmission/rpc
关键方法:
添加新的下载任务。
参数:
metainfo: base64 编码的 torrent 内容filename: torrent 文件路径或 URL(二选一)download-dir: 下载目录(可选)响应:
{
"result": "success",
"arguments": {
"torrent-added": {
"id": 1,
"name": "Torrent名称",
"hashString": "abc123..."
}
}
}
如果已存在:
{
"result": "success",
"arguments": {
"torrent-duplicate": {
"id": 1,
"name": "Torrent名称",
"hashString": "abc123..."
}
}
}
获取 torrent 信息。
参数:
ids: torrent ID 列表(可选,不填则获取所有)fields: 需要获取的字段列表常用字段:
id: torrent IDname: 名称hashString: hash 值status: 状态(0=停止, 1=等待, 2=下载中, etc.)progress: 进度(0-100)downloadDir: 下载目录sizeWhenDone: 总大小删除 torrent。
参数:
ids: torrent ID 列表delete-local-data: 是否同时删除下载的文件(true/false)torrent-duplicate 而不是 torrent-added-w 0 参数)示例对话流程:
用户:有没有盗梦空间?
助手:❌ 本地没有找到"盗梦空间"
🔍 在 PT 网站找到了以下资源:
📦 [电影] 盗梦空间 Inception (2010)
大小: 4.37 GB
完成数: 1523
📦 [电影] 盗梦空间 1080P 中英双字
大小: 8.12 GB
完成数: 892
用户:下载第1个
助手:⬇️ 正在下载:[电影] 盗梦空间 Inception (2010)
✅ 下载任务已添加!
名称: 盗梦空间.Inception.2010.1080p.BluRay.x264
Hash: abc123def456...
ID: 5