【问题标题】:Download a torrent via python通过 python 下载种子
【发布时间】:2021-02-02 10:34:14
【问题描述】:

我在网上搜索了如何通过 python 下载 torrent 文件。 我唯一设法找到的是 libtorrent,它的问题是没有明确的文档。

我最初的目标是至少在下载时将流连接到 cv2 窗口,以进行流式传输。

我已经设法用 youtube 做到了,并将 mp4 文件传输到窗口,并流式传输(使用 Pyfy),有没有办法用 python 做到这一点?

或者我走得太远了,可以使用请求或其他方式下载种子内容吗?

【问题讨论】:

  • 如果你对种子流感兴趣,NodeJS 中有一些很棒的库,比如github.com/KiraLT/torrent-stream-serverwebtorrent.io。不幸的是,python 没有这样的东西(我搜索了一段时间,但没有找到任何像样的库)。
  • 就是这样,我想构建类似 Stremio 的东西,它是使用 NodeJS 构建的。好吧,我猜我得先研究 Node。
  • 如果您有足够的耐心,您仍然可以尝试使用python。我找到了一些库,但它们没有任何文档。我尝试阅读源代码,但我失去了耐心并转向了 NodeJS。将来,我打算回去尝试使用 python,除非我能解决所有 NodeJS 性能问题。在任何情况下,您都可以加入github.com/KiraLT/torrent-stream-server 项目,我们将不胜感激。

标签: python-3.x video-streaming torrent libtorrent


【解决方案1】:

BitTorrent 不像 HTTP。文件被乱序下载和上传。文件需要保存到磁盘,部分是为了以后能够上传,部分是因为文件(通常)在整个文件下载之前没有用。文件在磁盘上重建。

如果您想从 torrent 流式传输内容,您必须自己执行一些额外的步骤。

libtorrent 有set_piece_deadline() (docs) 表示你很快想要一个片段,它会影响片段选择器优先考虑该片段。您还可以设置一个标志 (alert_when_available) 以指示您希望在数据可用时收到通知(警报)以及缓冲区。

【讨论】:

    猜你喜欢
    • 2023-03-20
    • 2017-05-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-11
    • 2021-09-09
    相关资源
    最近更新 更多