V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
yuchting
V2EX  ›  问与答

如何使用 curl 或者其他 http 语言下载种子库的种子(itorrents.org

  •  
  •   yuchting · 2018-07-27 17:46:28 +08:00 · 3263 次点击
    这是一个创建于 2340 天前的主题,其中的信息可能已经有所发展或是发生改变。

    如题。

    如果我把链接放入浏览器: https://itorrents.org/torrent/B415C913643E5FF49FE37D304BBB5E6E11AD5101.torrent 是可以跳转下载的

    我是用 curl ( wget )直接下载:

    curl https://itorrents.org/torrent/B415C913643E5FF49FE37D304BBB5E6E11AD5101.torrent
    

    直接就是 503,使用 chrome 查看头部,然后使用 wget 模拟,无效:

    C:\xxx>wget --no-check-certificate -U "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36" --header="Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8" --header="Cookie: __cfduid=d858b50be09e77a0ed1f2eafd25de20261532600128; _ga=GA1.2.1107172433.1532600134; _gid=GA1.2.1435366109.1532600134; cf_clearance=8af637566d06a729bbc6e48cd26390c619ddf592-1532669773-3600" -np -r https://itorrents.org/torrent/B415C913643E5FF49FE37D304BBB5E6E11AD5101.torrent
    
    SYSTEM_WGETRC = c:/progra~1/wget/etc/wgetrc
    syswgetrc = c:/progra~1/wget/etc/wgetrc
    --2018-07-27 16:53:07--  https://itorrents.org/torrent/B415C913643E5FF49FE37D304BBB5E6E11AD5101.torrent
    Resolving itorrents.org... 104.24.12.55, 104.24.13.55
    Connecting to itorrents.org|104.24.12.55|:443... connected.
    WARNING: cannot verify itorrents.org's certificate, issued by `/C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=COMODO Domain Validation Legacy Server CA 2':
      Unable to locally verify the issuer's authority.
    WARNING: certificate common name `ssl392091.cloudflaressl.com' doesn't match requested host name `itorrents.org'.
    HTTP request sent, awaiting response... 503 Service Temporarily Unavailable
    2018-07-27 16:53:08 ERROR 503: Service Temporarily Unavailable.
    

    有什么方法可以让我用 wget 或者 curl 直接下载到磁力链接的种子么?

    PS,我曾经在 v 站找到一个网站可以,但是发现没有用于是发了 issue: https://github.com/wuhaoworld/torrent2magnet/issues/1

    10 条回复    2018-08-02 16:41:19 +08:00
    tomfs
        1
    tomfs  
       2018-07-27 17:56:59 +08:00
    人家挂在 cf 下面的,cf 的 anti-ddos 是几个月一个更新周期.github 有跳过 cf 的项目,nodejs+python 的,但是吧,效率不行,虽然 itorrents 的种子算全的,但是热门种子大部分还是没有,再加上 itorrents 的站长貌似开了很多磁力搜索站,itorrents 经常改版.建议另寻吧.
    tomfs
        2
    tomfs  
       2018-07-27 18:00:25 +08:00
    https://github.com/Anorov/cloudflare-scrape
    这是关于跳过 cf 检测的,但是我也有测试,效率真的不行,你要当生产使用就别想了,如果只是偶尔下载一个种子,还是可以试下的.
    tomfs
        3
    tomfs  
       2018-07-27 18:07:28 +08:00
    我也再找转种子的,https://www.v2ex.com/t/474703
    你有更好的替代方案,麻烦安利下.
    yuchting
        4
    yuchting  
    OP
       2018-07-27 18:24:21 +08:00
    @tomfs
    非常感谢,貌似我遇到了也解难题啊~
    yuchting
        5
    yuchting  
    OP
       2018-07-31 10:05:36 +08:00   ❤️ 1
    @tomfs
    我已经解决了我的问题,仔细研究了一下磁力链接的原理,还有 BT 下载的原理,发现是 tracker 地址比较重要。

    然后就是使用 aria2c,然后增加很多额外的 tracker,就能正常下载到种子。
    可以直接在磁力链接后面加 tracker 地址:
    '''
    aria2c -d ./ --bt-metadata-only=true --bt-save-metadata=true --listen-port=6881 "magnet:?xt=urn:btih:9f9165d9a281a9b8e782cd5176bbcc8256fd1871&dn=ubuntu-16.04.1-desktop-amd64.iso&tr=udp%3A%2F%2Ftracker.leechers-paradise.org%3A6969&tr=udp%3A%2F%2Fzer0day.ch%3A1337&tr=udp%3A%2F%2Fopen.demonii.com%3A1337&tr=udp%3A%2F%2Ftracker.coppersurfer.tk%3A6969&tr=udp%3A%2F%2Fexodus.desync.com%3A6969&tr=udp%3A%2F%2Feddie4.nl%3A6969&tr=udp%3A%2F%2Ftracker.pirateparty.gr%3A6969&tr=udp%3A%2F%2Fopentrackr.org%3A1337&tr=udp%3A%2F%2Ftracker.zer0day.to%3A1337"
    '''

    但是这个 tracker url 需要编码,于是我是用了 aria2c 的 RPC 模式 daemon,在配置文件中加入大量的 tracker 地址。然后让他去下载种子,发现很快就能下载好。

    tracker 的地址:
    https://github.com/ngosang/trackerslist
    tomfs
        6
    tomfs  
       2018-07-31 19:24:16 +08:00
    @yuchting 恭喜,不过 aria2c 是去 dht 取种子的,没拥有这个资源的 peer 或者资源块不完整是传输不过来种子的.具体可以参考 Vuze 的代码,
    我最后放弃 dht 了,测试了大部分公开的种子库,最后选用 BTHUB 的 overHTTP to DHT 方案解决磁力链接解析种子,运行了几天,实测转换效率在 95%以上,就算是死链的 magnet URI,也能获取到种子
    具体可以参考 https://github.com/Jackett/Jackett/issues/1063
    tomfs
        7
    tomfs  
       2018-07-31 19:25:19 +08:00
    @yuchting 很高兴与你一起交流这个冷门的问题 :)
    tomfs
        8
    tomfs  
       2018-07-31 19:28:34 +08:00
    @yuchting 我就不发图了,具体看 bthub 的关于页面吧,整个 overHTTP to DHT 的流程图非常清晰,也很强大.推荐
    流程图 base64:aHR0cHM6Ly9idGh1Yi5vcmcvYWJvdXQ=
    yuchting
        9
    yuchting  
    OP
       2018-08-02 10:49:01 +08:00
    @tomfs
    我也很高兴有人也遇到了这个问题。
    其实我就是卖了了一个树莓派,插了个 2 手硬盘做了家庭下载中心,bt,电驴啊什么下一些片看,发现很多站都是提供磁力链接,自己搭建的 rtorrent 只能下载有种子的资源,不是很方便,于是就想自己写一个程序能够自动转磁力链接到种子,方便下载,后来发现其实下载不了。。。找来找去找不到办法,固有一问。

    现在使用 aria2,再配合一个 GUI 界面,还可以下载百度云盘资料,已经够用了,不想折腾了,接下来就是要寻找家庭媒体播放的东西,samba 那种感觉有点不太够用。
    tomfs
        10
    tomfs  
       2018-08-02 16:41:19 +08:00
    @yuchting plex 了解下
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5864 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 01:57 · PVG 09:57 · LAX 17:57 · JFK 20:57
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.