Torrent から Magnet リンクへ
Web処理はすべてブラウザ内で完結します。データは送信されません
`.torrent` ファイルを magnet リンクに変換します —— ドロップするだけで、ファイルは送信されません。 magnet の利点は、torrent ファイルそのものに依存しないことです。リソースの同一性(infohash)をリンクに直接書き込むので、持っている人は誰でも DHT ネットワークでピアを探せます。元のファイルを消しても、失くしても、フォーラムから削除されても、リンクは生きています。 ここでやっていることは見た目より繊細です。infohash はファイル全体のハッシュではありません —— torrent 内の `info` 辞書、その生のバイト列の SHA-1 です。解析して構造にしたものを再エンコードしてからハッシュすると、長さも書式も正しいのにネットワーク上に存在しない値が出来上がり、しかもそれが間違っていることを示す痕跡は一切ありません。⚠️ 一部のオンライン変換ツールが返す infohash でクライアントがどうしても繋がらないのは、まずこれが原因です。 リンク以外に、torrent が持っている情報も並べます:名前、合計サイズ、ピース長、トラッカー一覧、作成ツールと日時、プライベートかどうか。クライアントに貼る前に大抵知りたいのはこれらのことです。 両世代に対応します。v1 の infohash は SHA-1(リンク上は `btih`)、v2 では SHA-256 に変わりました(`btmh`)。ハイブリッド torrent は両方を持つので、両方を出力します —— 古いクライアントは v1 を、新しいものは v2 を解釈します。
機能
- そのまま貼れる magnet リンクを生成(dn・xl・すべてのトラッカーを含む)
- infohash は info の生バイト列から計算 —— クライアントが期待する値と一致します
- v1(SHA-1 / btih)と v2(SHA-256 / btmh)の両方に対応
- 名前・合計サイズ・ファイル数・ピース長・ピース数を表示
- announce-list 内の予備トラッカーもすべて展開
- プライベート torrent を明示 —— DHT と PEX に参加しません
- ファイルは送信されず、オフラインでも動作します
使い方
- .torrent ファイルを破線の枠にドロップします
- リンクが上部にすぐ表示されるので、右のボタンでコピーします
- 下の表でこの torrent の詳細をすべて確認できます
- 任意の BitTorrent クライアントに貼り付ければ開始できます
よくある質問
- ここで計算した infohash が他所の値と違うのはなぜですか?
- まず相手側を疑ってください。infohash の定義は厳格で、`info` 辞書の生バイト列の SHA-1 です。厄介なのは bencode が等価な複数の書き方を許すことです —— 辞書のキー順、整数の表現。したがって、いったんオブジェクトに解析してから再エンコードしてハッシュするツールは、別のバイト列を計算してしまいます。結果は完全に正常に見えますが(40桁の16進数)、DHT 上にそのハッシュは存在せず、クライアントは「メタデータを取得中」のまま止まります。本ツールは常に生バイト列を使い、再エンコードしません。 もちろん別の可能性もあります。手元の `.torrent` とその infohash が、そもそも別の torrent のものである場合です。
- magnet リンクの各パラメータは何ですか?
- `xt` は同一性です —— `urn:btih:` に続く40桁の16進数が v2 以前の infohash です。`dn` は表示名で、クライアントと利用者に見せるラベルにすぎず、同一性の計算には関与しません。変更しても接続可否は変わりません。`xl` はリソースの正確なバイト数で、クライアントが領域を先に確保できます。`tr` はトラッカーのアドレスで、1つのリンクに多数を含められ、同じ `tr` パラメータを繰り返して表現します。`tr` をすべて外してもリンクは機能します —— クライアントは DHT でピアを見つけられるからです。
- 「プライベート torrent」とは何ですか?
- プライベート torrent(`private: 1`)は、内部に記載されたトラッカーだけでピアを交換するよう求めるもので、DHT と PEX(ピア交換)に参加しません。配布者がシード率を集計したり、通信量で権限を配分したりするために行い、多くのプライベートトラッカーがこの方式で運営されています。本ツールにとっては表示行が1つ増えるだけですが、プライベート torrent から手作業で `tr` を削ってしまうと、ほぼ確実に誰とも繋がらなくなります。
関連ツール
ファイルヘッダ判定
Web先頭の数バイトからファイルの実際の形式を判定します。59 種類の形式に対応し、オフセット付きの署名や逆引きにも対応します。
ハッシュ計算
エンコードMD5・SHA-1・SHA-256・SHA-512 のダイジェストを計算します(旧システム向けの MD4・MD2 も可)。日本語も UTF-8 バイトで計算します。
URL 解析
WebURL を解析し、スキーム・ホスト・ポート・パス・クエリパラメータ・アンカーに分解します。パラメータは元の値とデコード値を並記。すべてブラウザ内で処理します。
UA 解析
WebUser-Agent を解析し、ブラウザ・バージョン・OS・デバイス種別・エンジンを判定します。判定はパターン照合による概算です。すべてブラウザ内で処理します。
HTTP ステータスコード
WebHTTP ステータスコードの検索。番号から意味を、キーワードから番号を引けます。1xx〜5xx の分類・利用場面・確認のポイント付き。すべてブラウザ内で処理します。
MIME タイプ
Web拡張子から MIME タイプを、MIME タイプから既定の拡張子を検索。js なら text/javascript、image/svg+xml なら .svg が返ります。すべてブラウザ内で処理します。