Neatbo.

Torrent metainfo identity and layout

Derive the original v1 info-hash, declared file offsets and inclusive piece ranges from a local .torrent, then save the complete layout and a local magnet string.

Browser-local processingInputBEP3 v1 .torrentOutputComplete metainfo JSON / layout CSV / magnet TXTUp to 4 MiB per file · File limit: 1
  1. 1Add input
  2. 2Review and run
  3. 3Get your result

Tool input and files are processed in this browser without being uploaded.

Your input

Inputs are kept temporarily in this tab when switching tools. Refreshing or closing clears them; large results may need to be regenerated.

⌘ / Ctrl + Enter to run

or drag and drop it here

Files stay on this device. Your originals stay unchanged.

.torrent

Up to 4 MiB per file · File limit: 1

    Preparing the tool…

    Before you start

    Compare a torrent identity with your client and see how its declared files share pieces. The original info bytes determine the identity; no torrent client or tracker connection is needed.

    How to use this tool

    1. Select one original BEP3 v1 .torrent.
    2. Compare the info-hash, total length and declared file layout; a piece may span two files.
    3. Download complete JSON, CSV and magnet text and compare the identity in your torrent client.

    Supported inputs and limits

    One .torrent file up to 4 MiB. Up to 5,000 declared files, 100,000 piece hashes, 100,000 bencode values and nesting depth 64. Each UTF-8 path component, including the root name, is at most 4,096 bytes; repeated complete paths total at most 8 MiB. Lengths and cumulative offsets must be safe integers. Piece length is positive and at most 16 MiB. Canonical integer tokens are at most 32 ASCII bytes; a multifile path has at most 64 components after the root.

    Accepts strictly encoded BEP3 v1 dictionaries: canonical integer and byte-length tokens, raw-byte sorted unique keys, valid UTF-8 names, and exactly one of length or files. The declared hash count must match the concatenated lengths. v2/hybrid metainfo, file attributes and padding extensions reject.

    Unsafe or ambiguous paths reject: empty components, dot traversal, slash/backslash, colon, control bytes, trailing dot/space, repeated full paths and a file also used as a parent directory. The layout is metadata only and is never written to the declared paths.

    JSON, CSV and magnet downloads combined are limited to 24 MiB. If combined budgets are exceeded, the whole result rejects. The table previews 200 files and the first 240 characters per cell; text and copy show a summary plus 20 files. All successful downloads retain complete paths and every piece hash. Formula-like CSV paths get a protective apostrophe; JSON preserves originals.

    The info-hash is SHA-1 of the exact original info byte span, not of the pieces field or whole .torrent. Piece ranges are zero-based and inclusive; empty files have null ranges. Contents, signature, trust, tracker availability and peers are not checked. Magnet text contains only xt and dn and makes no network request.

    Worked example

    Example input

    Select demo.torrent
    Example options
    {"params":{}}

    Example output

    {
      "name": "Demo",
      "infoHash": "68493278a4cf442fb656c0e6ee7626e54294e6e6",
      "totalLength": "8",
      "pieceLength": "4",
      "pieceCount": 2,
      "fileCount": 3,
      "preview": [
        {
          "path": "Demo/a.txt",
          "length": "3",
          "offset": "0",
          "firstPiece": 0,
          "lastPiece": 0
        },
        {
          "path": "Demo/b.bin",
          "length": "5",
          "offset": "3",
          "firstPiece": 0,
          "lastPiece": 1
        },
        {
          "path": "Demo/empty.txt",
          "length": "0",
          "offset": "8",
          "firstPiece": null,
          "lastPiece": null
        }
      ]
    }

    When something does not work

    Keep the original. Export BEP3 v1 metainfo without v2/hybrid or file-attribute extensions; repair malformed encoding or ambiguous paths at the producer. Reduce the input when any documented count, path or combined-output limit is exceeded, then retry.

    Frequently asked questions

    Does a matching info-hash prove my downloaded files are complete?

    No. The hash identifies the metainfo info dictionary. This tool does not accept or verify file contents against piece hashes.

    Why do two files share a piece number?

    BEP3 v1 treats multifile payload as one concatenated byte stream. A file boundary need not coincide with a piece boundary.

    Will a tracker URL in the file be opened?

    No. No tracker, DHT or peer connection is made. The downloaded magnet string contains no tracker parameters.

    Documentation & further reading

    Related tools