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.
- 1Add input
- 2Review and run
- 3Get your result
Tool input and files are processed in this browser without being uploaded.
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
- Select one original BEP3 v1 .torrent.
- Compare the info-hash, total length and declared file layout; a piece may span two files.
- 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
JSON formatting workspace
Format or minify strict JSON, sort object keys, and encode or decode strings while preserving raw number tokens.
Regex tester
Try a pattern and see what it matches in your text.
Compare text
See what changed, side by side.
HTML formatter
Format HTML indentation so its structure is easier to read.