最新消息:永久地址:1fu.li,最新地址:1fuli.one,1fuli.cc ,1fuli.xyz,DMCA:[email protected]

SpoolDatTorrent:不用下载几 TB 全集,按 DAT 清单精准下载你真正需要的文件,超大Torrent文件下载必备神器

佳软 1fuli 66浏览 0评论

 

如果你折腾过 No-Intro、Redump、1G1R(One Game One ROM,一款游戏留一份最佳版本) 或大型 ROM 合集或Anna’s Archive 的 Torrents,大概率遇到过一个非常现实的问题:

一个 Torrent 可能有 几千个文件、总容量数 TB,但真正需要的,也许只有其中几百 GB。

传统做法通常是:下载整个 Torrent → 用 DAT 校验 → Retool/Igir/RomVault 过滤 → 删除不需要的文件

这套流程最大的问题不仅复杂,而且浪费。

比如一个 3.5TB 的合集,你按照自己的地区、语言和 1G1R 规则筛选以后,最终可能只需要 800GB。

但为了得到这 800GB,传统流程却要求你:

  • 准备至少 3.5TB 的临时下载空间;
  • 下载完整的 3.5TB 数据;
  • 消耗对应的网络流量;
  • 等待全部下载完成;
  • 最后再删除其中大部分内容。

BitTorrent 客户端基本上都支持”只选中部分文件下载”,但当文件数量上到四位数、且你的下载盘只有 2TB 时,qBittorrent 客户端里文件列表长到没法手勾。

最近开源的 SpoolDatTorrent 就是为此类具体场景开发的使用工具。

SpoolDatTorrent 的核心思路很直接:不是“下载完成后再根据 DAT 删除”,而是“先读取 DAT,然后只下载 DAT 中需要的文件”。

SpoolDatTorrent:https://github.com/stigzler/spool-dat-torrent

 

SpoolDatTorrent 核心机制:读取种子文件对应的 .dat 文件,动态调整种子里”哪些文件应该被下载”,并且引入一个叫 Spool Cap(下载帽)的分批机制,如果筛选后的目标集合仍然超过你的下载盘容量,则会按批次下载、下载完就搬到目标目录腾出空间,再继续下一批,直到全部完成。

也即 SpoolDatTorrent 的核心工作流程分为三步:

对照 DAT 过滤:根据用户提供的种子文件(文件路径 / 磁力链接 / infohash)和 DAT 文件,计算出种子里哪些文件属于“需要”的集合。

按 Spool Cap 分批:如果目标集合超出你设定的容量上限,SpoolDatTorrent 只会激活当前批次的文件用于下载,其余保持未选中状态。

完成后搬运并继续:当前批次下载完成、经过一段”settling time”(等客户端把文件写完整)后,SpoolDatTorrent 把文件移动到 staging-dir 或 library-dir,然后切换到下一批,循环直至目标集合全部下载完成。

 

SpoolDatTorrent 提供提供 Web UI 和 CLI 两种前端。

  • Web UI:Docker 部署,浏览器管服务器和 stream
  • CLI:SpoolDatTorrent,适合脚本和无头环境

CLI 侧的核心命令是 add(绑定种子 + DAT 开始调度)和 spool(启动调度守护进程),另外有 pause / resume / retry / cancel 这类生命周期管理命令。

Web UI 则把CLI的操作逻辑包装成表单和状态卡片,同时支持文件名过滤(*USA* 这类通配符)、优先/降权关键词等功能。

SpoolDatTorrent 目前只支持 qBittorrent(5.0+),主要原因是qBittorrent唯一被广泛使用且 Web API 足够完善、能支撑这种”运行时增删下载文件列表”操作的主流客户端。

 

DAT文件的获取

DAT 文件本质上是 ROM 界的“标准身份数据库”,包含了文件的文件名、大小、CRC32、MD5 和 SHA-1 校验码。

为什么 SpoolDatTorrent 依赖 DAT?

  • SpoolDatTorrent (SDT) 的设计初衷是为了实现 哈希级(Hash-level)的精准校验与匹配。
  • Torrent 里的文件名往往是随意的(比如 Super Mario World (USA).sfc 甚至被打包者重命名过)。
  • DAT 文件里记录的是官方标准的 CRC32 / SHA-1 哈希值。
  • SDT 的主要工作逻辑是:读取 Torrent 的 Metadata -> 计算或获取 Torrent 内各文件的哈希 -> 对比 DAT 中的哈希 -> 将匹配上的文件推送到下载客户端。

因此,SDT 的核心是依赖 DAT 文件(Hash 对比),而不是单纯看文件名字符串。

 

 

DAT 文件可以通过以下几个权威来源免费获取:

1. No-Intro(主打卡带机/掌机)

适用系统: NES, SNES, GBA, NDS, Megadrive, Game Gear 等卡带类平台。

获取地址: https://datomatic.no-intro.org/

特点: 官方提供 1G1R (Parent-Clone) 导出选项。你可以直接选定你的目标语言/区域(如仅限 USA/EUR/JPN),网站会直接生成一份筛选好的 1G1R DAT 文件给你。

 

2. Redump(主打光盘类机种)

适用系统: PS1, PS2, PSP, GameCube, Saturn, Dreamcast 等光盘平台。

获取地址: redump.org 首页的 Datfiles 菜单即可下载全套或单机种 DAT。

 

3. TOSEC (The Official Secam Enterprises Collection)

适用系统: 极其冷门的老式电脑平台(如 Commodore 64, Amiga, ZX Spectrum)。

获取地址: https://www.tosecdev.org/

 

4. 自己提取生成(如果只有“想留下的本地文件列表”)

如果你手上有一份自己以前整理好的游戏 ROM,可以使用 Clrmamepro 或 RomCenter 扫描本地文件夹,反向生成一份专属于你个人偏好的 .dat 文件。

 

如果持有Torrent 文件或磁力链接,找不到现成可用的DAT文件,但又想用 SpoolDatTorrent 的分批下载(Spool Cap)能力,可以自己拼一个符合 LogiqX/No-Intro XML 格式、把想要的文件名列进去,自建“假 DAT”配合 SpoolDatTorrent 使用。

1. 提取 Torrent 的 Metadata(可用 torrentool 等 Python 库)。

2. 用 Python 提取其中的文件名,过滤出你想要的文件。

3. 伪造/生成一个包含这些文件名的简易 DAT 文件丢给 SpoolDatTorrent CLI或Web UI。

 

 

发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址