perl - 将 Jackett api 直接 URL 转换为磁铁 URL
问题描述
我正在开发一个使用 Jackett 索引器和 torznab API 下载种子的 Perl 程序。对于直接在 XML 中提供磁力链接的索引器,这非常简单,但其他人提供了一个链接(经过一些研究,这似乎是一个“确切来源”磁力链接)
目标:将此直接链接转换为“磁铁:?” 用于 qbittorrent 的 URL 或 .torrent 文件
这是我到目前为止所尝试的:
WWW::Mechanize(在 xs 磁铁 URL 上调用“get”)
Error GETing magnet:?<rest of magnet link>: Protocol scheme 'magnet' is not supported
wget
HTTP request sent, awaiting response... 302 Found
Location: magnet:?<rest of magnet link>: Unsupported scheme ‘magnet’.
curl或curl -o
没有返回值/空白文件
我觉得有一个简单的解决方案,到目前为止我还没有成功,当然我可以过滤来自 mech 或 wget 的错误消息并以这种方式提取 URL,但这似乎不是正确的方法这个。
提前致谢!
更新: 这似乎是 Jackett(或者更确切地说是正在访问的索引器)的限制,因为无法通过 api 提供直接链接。
解决方案是从 URL 标头中获取重定向链接
curl '$URL' -si | grep -oP 'Location: \K.*'
在这种情况下将返回磁铁链接
解决方案
这不是协议的真正工作方式。而且,这并不简单。
磁铁方案解决的是内容(因此,这就是您将看到的散列)而不是单个位置。您必须将该哈希值提供给某物,以便它返回您可以抓取内容块的位置(多个)。像Mojo::Transmission这样的东西可能会有所帮助。在 MetaCPAN 中搜索 BitTorrent 有很多成功率。
有许多命令行程序可以做你想做的事。
推荐阅读
- ios - 没有名为“FlutterPluginRegistrar”的类型或协议
- sql - 显示列的每个唯一值的日期范围(HIVE-QL 查询)
- angular - 调用 router.navigate 方法后 Angular 组件不起作用?
- excel - 我可以创建一个计算字段,如总数的百分比吗?
- ruby-on-rails - 将带有 ar_firebird_adapter 的 Firebird DB 表转储到 Rails schema.rb 中,但并非所有表都正确转储
- php - Vips 库线程限制
- reactjs - 尝试在使用 MUI 的 React 中使用 useState 对数组中的交替项目进行条件渲染 css
- flutter - 我的 Flutter 应用程序无法在 android studio 到 ios 模拟器上运行,因为 Command CompileSwift 因非零退出代码而失败
- ios - Ionic for IOS 与 Wordpress
- python - Tkinter 获得适合另一个 Python 程序的解决方案语法