Releases: WarlaxZ/torlink
Release list
v1.5.0
Brings the fork up to date with upstream baairon/torlink v1.4.0 — headless server modes and a new source — plus a Favourites library and the project's first linting + CI setup.
Highlights
🖥️ Headless modes (run without the TUI — servers & seedboxes)
torlink now runs entirely without the interactive UI, so it fits on a box you SSH into:
torlnk watch <dir>— watch-folder: drop a.torrent, or a.magnet/.txtholding a magnet or info hash, into the folder and it downloads, then seeds. Handled files move to.processed/.failed. Add--to <dir>to choose where files land.torlnk serve— small HTTP add API on:9161(POST /add,GET /downloads,GET /health).torlnk files— read-only, range-aware HTTP server on:9160that streams completed downloads to a browser or media player (supports seeking/resuming).torlnk attach— run the TUI inside a persistenttmuxsession; detach withctrl-b d, log out, and reattach later with downloads/seeds still running.--daemon— background any headless mode in its own session, logging to a file, so it survives logout.- Seed reaper —
--seed-time <dur>(e.g.1h,30m,2d) stops seeding a torrent that long after it finishes; add--delete-filesto also remove the data.
The headless HTTP servers bind to
127.0.0.1by default; binding a public--hostrequires a--token(orTORLINK_API_TOKEN/TORLINK_FILES_TOKEN).
⭐ Favourites (Library) for video series
A persistent Favourites/Library for Movies, TV, and Anime — the picker now stays open as you add entries instead of closing after each one.
🔎 Search
- New source: BitTorrented (Movies + TV).
- Sources can now belong to multiple categories, so a general index like BitTorrented shows under every tab it serves.
- Streaming search updates are coalesced (≈150ms) so bursts of fast-returning sources no longer drop keystrokes or flood the UI.
🐛 Fixes
- 1337x scraper loading speed optimized.
node-datachannelnow rebuilds from source when the prebuilt binary fails to load on Node 22+.- Headless HTTP servers locked down, HTTP tracker endpoints added, and the real version is now reported.
🔧 Tooling
- ESLint (flat config) wired up —
npm run lint/lint:fix. The codebase already containedeslint-disabledirectives but never shipped a config; this makes them live. - CI: a new workflow runs typecheck + lint + tests on every PR and push to
main(previously there was no PR CI — releases only built on tag).
Downloads
Grab the build for your platform below and run torlnk. Verify against SHA256SUMS if you like.
| Platform | Asset |
|---|---|
| Linux (x64) | torlnk-linux-x64.tar.gz |
| macOS (Apple Silicon) | torlnk-macos-arm64.tar.gz |
| macOS (Intel) | torlnk-macos-x64.tar.gz |
| Windows (x64) | torlnk-windows-x64.zip |
What's Changed
- Sync with upstream baairon/torlink v1.4.0 (headless
watch/serve/files,--daemon, tmuxattach, seed reaper, BitTorrented source, 1337x speedup, streaming coalescing) by @WarlaxZ in #26 - feat: keep stream picker open + Favourites (Library) for video series by @WarlaxZ in #24
- chore: add ESLint (flat config) + CI, and bump version to 1.5.0 by @WarlaxZ in #26
Full Changelog: v1.4.0...v1.5.0
v1.4.0
Streaming quality-of-life improvements and much better media-player detection on Windows.
Highlights
🎬 Smarter stream file picker
When an archive holds several videos, the picker is now easier to work with:
- Sorted by title by default (numeric-aware, so
E02comes beforeE10) instead of by file size. - Press
sto toggle between title and size ordering — your highlighted file stays selected across the switch. - Fills the window — the list now uses the available screen height (with scrolling and an
n/totalcounter) instead of a fixed 8-row box, and no longer clips the last file.
🪟 Better Windows media-player detection
Windows GUI players are rarely on PATH, so torlink often couldn't find an installed player. It now looks in the standard install locations for:
- VLC
- Windows Media Player
- mpv.net
- MPC-HC / MPC-HC64 (including K-Lite Codec Pack)
- MPC-BE
- PotPlayer
Downloads
Grab the build for your platform below and run torlnk. Verify against SHA256SUMS if you like.
| Platform | Asset |
|---|---|
| Linux (x64) | torlnk-linux-x64.tar.gz |
| macOS (Apple Silicon) | torlnk-macos-arm64.tar.gz |
| macOS (Intel) | torlnk-macos-x64.tar.gz |
| Windows (x64) | torlnk-windows-x64.zip |
What's Changed
- Sync with upstream baairon/torlink v1.3.1 by @WarlaxZ in #20
- feat: add local Windows bundle cross-build script by @WarlaxZ in #21
- Stream picker: title sort + toggle, taller list; broader Windows player detection by @WarlaxZ in #22
- chore: bump version to 1.4.0 by @WarlaxZ in #23
Full Changelog: v1.2.1...v1.4.0
v1.2.1
Highlights
Fix: typing a search no longer jumps you to another screen. On the splash/search landing page the search box is always focused, but a stray single-key shortcut (a → Accounts) was also live — so typing a query like "alex" navigated away on the first keystroke. The splash is now search-only: it owns everything you type.
- Type freely — no keystroke triggers a shortcut on the search screen.
- Press Tab to drop into the sidebar menu, where navigation and shortcuts (Accounts, Watchlist, settings, etc.) live.
↑/↓still recall recent searches, Enter searches, andesc/^cquit.
What's Changed
Full Changelog: v1.1.0...v1.2.1
1.1.0 - The Big Push
torlink (WarlaxZ fork) — features upstream doesn't have
🚀 Headline additions
Real-Debrid integration — the biggest one. Plug in a Real-Debrid account and torlink pulls torrents onto RD's servers for full-speed, seeder-independent, IP-private downloads and streaming.
- Download (
r) and stream (v) via Real-Debrid - Persistent account status badge in the header; validated-account tracking
- Pause/resume RD downloads (keeps partial file, resumes via re-resolve + HTTP Range)
- Concurrency scheduler with a queued state, capped concurrency, backoff requeue, and patient retry pacing (retries Cloudflare-fronted 503s instead of failing)
- Clearer failure messages (dead/removed vs busy, surfaced error slug)
- Auto-copies the direct link once it resolves; re-prompts for a token when rejected
Torrent streaming (WebTorrent) — stream while you download, no Real-Debrid required.
- Ephemeral P2P stream engine; press
vto open the largest video in your player as it downloads - Automatic route decision: Real-Debrid when available, torrent stream as a confirmed fallback
- Multi-file stream picker; cancellable, phase-aware "preparing" state
- Offer to keep a completed stream as a real download + seed (otherwise cleaned up)
- One-time privacy warning before the first P2P stream
Accounts pane — a dedicated sidebar section to sign in/out of services (Real-Debrid, RuTracker) with per-service status, replacing the old scattered k/R hotkeys.
RuTracker source — session auth with cookie persistence, CP1251 handling, and a captcha-fallback login prompt. Registered across Games, Movies, TV, Anime, Music, and Books.
📚 More to search
- Books category (The Pirate Bay, Nyaa) — brand new
- Music category (The Pirate Bay, 1337x) — brand new
- Torrents.csv added to Movies
- RuTracker across every category
- Upstream has 4 categories; we have 6
🔒 Network & privacy
- Custom DNS (DNS-over-HTTPS) — in-app picker to bypass networks that sinkhole torrent domains
- VPN kill switch — fail-closed route guard; blocks P2P traffic unless your configured VPN interface owns the default route
⚙️ Download control
- Selective multi-file downloads — choose exactly which files to grab from a multi-file torrent (
Space/a/Enter) - Transfer limits & seeding targets (
Shift+L) — up/down bandwidth caps and automatic seed-ratio / seed-time targets - Delivery-method badge (RD vs P2P) on completed downloads
- Deletes partial files when cancelling a paused download
🔍 Search & UX quality-of-life
- Alive-only filter (
z) — hide dead / zero-seeder results - Saved searches / Watchlist (
w) — save searches and re-run them later - Recall recent searches with the up arrow
- Persist sort & category preferences across launches
- Enable/disable individual sources + auto-skip repeatedly-failing sources (health check)
- Source provenance for duplicate results (shows every source a result came from)
- Download status markers on result rows; persistent body panes so results survive navigation; cursor/focus preserved when queueing or switching tabs
- Better search-field editing (forward-Delete, Home/End) and clipboard copy that also works under WSL
📦 Distribution & diagnostics
- Self-contained release bundles via a GitHub Actions workflow + one-line
curl | shinstaller (no Node required) - Best-effort rotating diagnostic logger (RD lifecycle, retries, session start; token never logged), with the log path shown in
--help