Commit graph

2 commits

Author SHA1 Message Date
Deivid Soto
2aeabe6b50 feat(wstracker-probe): -seed FILE mode for browser ↔ unarr e2e validation
Extends the probe binary so it can do more than verify tracker reach:
when given a real file, it builds a single-file torrent in memory,
seeds it via the WebTorrent peer wire, and prints the magnet URI
(with the WSS tracker injected). Useful for proving the end-to-end
streaming path before any actual unarr daemon work lands.

Internally uses anacrolix/torrent's metainfo.Info.BuildFromFilePath
+ bencode.Marshal to mint InfoBytes, then AddTorrent → seed loop.
Piece length picked from a libtorrent-like ladder (16 KiB → 4 MiB)
so the resulting torrent is interoperable with mainstream clients.

Validation: synthesised a 5 s 320×240 H.264+AAC mp4 with ffmpeg
(`testsrc + sine`), seeded it via this binary against the production
wss://tracker.torrentclaw.com endpoint, opened the in-browser player
at /stream/<info_hash>. Browser reported `downloaded: 105 KB / 105 KB`
and rendered a working <video> with controls. Seeder reported
`uploaded=107452 bytes`. Pieces flowed P2P over WebRTC data channel,
zero relay through TorrentClaw infrastructure.

Closes the manual half of Fase 4.4 of the streaming plan; the
companion player change (file.blob() in place of the v2-removed
file.renderTo) is committed separately on the web side.
2026-05-06 14:46:38 +02:00
Deivid Soto
aa291320f5 test(wstracker-probe): standalone Go binary to verify WSS tracker reachability
Tiny `go run ./cmd/wstracker-probe` that spins up an anacrolix/torrent
Client with WebRTC enabled, advertises a random info_hash to the given
WSS tracker, and reports via Callbacks.StatusUpdated whether the
announce round-trip succeeded.

Used as the production smoke for unarr ↔ wss://tracker.torrentclaw.com:

  $ /tmp/wstracker-probe -tracker wss://tracker.torrentclaw.com -timeout 30s
  [probe] tracker=wss://tracker.torrentclaw.com info_hash=e978df8d... timeout=30s
  [probe] tracker connected: wss://tracker.torrentclaw.com
  [probe] tracker announce OK: wss://tracker.torrentclaw.com ih=e978df8d...
  [probe] OK — tracker announce succeeded

Disables TCP/uTP/DHT/IPv6/UPnP — only the WS tracker path matters here.
Exit codes: 0 success, 1 announce error, 2 timeout.
2026-05-06 09:40:37 +02:00