torrentplayer/torrentplayer

★ 708⑂ 20

Stream any torrent, video or audio, and skip to any moment in about a second. Free, open-source desktop app for Windows, macOS and Linux. No servers, no accounts, no telemetry.

About torrentplayer/torrentplayer

torrentplayer/torrentplayer is an open-source project on GitHub, mainly written in Rust. Stream any torrent, video or audio, and skip to any moment in about a second. Free, open-source desktop app for Windows, macOS and Linux. It currently holds 708 stars and 20 forks with 0 open issues, and was last pushed on an unknown date (repository created unknown).

Project Overview

Git Homed tracks it on the Today's Trending board.

GitHub Repository Details

Repository torrentplayer/torrentplayer · default branch - · size 0 KB · watchers 0 · source: GitHub REST API and repository README

README

https://github.com/torrentplayer/torrentplayer/blob/HEAD/TorrentPlayer logo: a play button ringed by swarm peers

TorrentPlayer

Stream at the speed of the swarm.
Movies, shows, music, podcasts, audiobooks: any torrent starts in seconds and skips to any moment in under a second, straight from the swarm. No servers, no accounts, no limits.

torrentplayer.io · Why TorrentPlayer · Compare · Features · Performance · Privacy · Get it · Discord

https://github.com/torrentplayer/torrentplayer/blob/HEAD/CI status https://github.com/torrentplayer/torrentplayer/blob/HEAD/License: MIT OR Apache-2.0 https://github.com/torrentplayer/torrentplayer/blob/HEAD/Platforms: Windows, macOS, Linux https://github.com/torrentplayer/torrentplayer/blob/HEAD/Telemetry: none https://github.com/torrentplayer/torrentplayer/blob/HEAD/Discord: come talk

https://github.com/torrentplayer/torrentplayer/blob/HEAD/Demo at normal speed: searching for Sintel, pressing Play on the best pick, and skipping around while the queue downloads in the background
Search, play, skip. GIF shown at normal speed. Original real-time demo with sound (MP4, 35 s).
Sintel and Tears of Steel © Blender Foundation, CC BY 3.0.

https://github.com/torrentplayer/torrentplayer/blob/HEAD/TorrentPlayer playing a film while the rest of the queue downloads in the background, each row showing its speed, peers, progress, and time left
Tears of Steel, Sintel, and Big Buck Bunny © Blender Foundation, CC BY 3.0.

---

TorrentPlayer is a free, open-source desktop app that plays any torrent straight from BitTorrent, video or audio, the way a streaming service would. Press play and it starts in seconds; drag the seek bar to minute 47 and it is playing minute 47 a moment later, long before the download gets there. No separate torrent client, no waiting for the file, no server in between.

Use it for whatever you stream from torrents: films and series, music albums, podcasts, audiobooks, lectures, and open media. You are responsible for having the right to download and share what you play.

Why TorrentPlayer

wait for the part you want. TorrentPlayer's own streaming engine fetches the exact moment you jump to, first, so skipping ahead resumes in under a second: 0.3 s on a fast link and 0.7 s (median) on a public swarm in our measurements. Skip the intro, jump to the lecture's second half, scrub back and forth; it keeps up. How fast it arrives depends on the torrent's seeders and peers and on your own connection, never on a provider's plan, a server's capacity, or a "free tier". relay, and no account to sign in to. Your computer talks to the swarm directly, so nothing in between can throttle it, fill up, or shut it off. (The built-in search asks a public torrent index; it is optional, and pasting a magnet link or opening a .torrent file needs nothing but the swarm.) quotas, or speed tiers. Watch at the quality the file has, for as long as you like. with a kill switch that never falls back to a direct connection, or your own VPN app. Apache-2.0, your choice.

How it compares

| | TorrentPlayer | Stremio (torrent add-ons) | WebTorrent Desktop | qBittorrent + VLC | Debrid / cloud services | webtor.io (browser) | | -------------------------------------- | ----------------------------------- | ---------------------------------------- | -------------------- | ----------------------------------- | --------------------------------- | ----------------------------- | | Stream and skip anywhere | ✅ the spot you skip to comes first | ✅ | ✅ | ❌ plays in order only | Only after the service fetches it | ✅ via its servers | | Video straight from peers, no server | ✅ | Via a local streaming server | ✅ | ✅ | ❌ provider's servers | ❌ webtor.io's servers | | Speed limited only by the swarm | ✅ | ✅ | ✅ | ✅ | ❌ plan and provider limits | ❌ free speed cap, paid tiers | | Free, no account | ✅ | ✅ free tier, guest mode | ✅ | ✅ | ❌ paid plans | ✅ basic use | | Fully open source | ✅ | Partly (streaming server is proprietary) | ✅ | ✅ | ❌ | ✅ | | Built-in VPN (WireGuard) + kill switch | ✅ | ❌ bring your own | ❌ | ❌ proxy and interface binding only | Not applicable | Not applicable | | Queue that downloads ahead | ✅ shares bandwidth with playback | Paid plan | ❌ | As a download client | Cloud storage | Paid tiers | | No telemetry | ✅ | ❌ analytics (per privacy policy) | ❌ basic usage stats | ✅ none documented | Not checked | Not checked | | Actively maintained | ✅ | ✅ | Last release 2020 | ✅ | ✅ | ✅ |

Checked on 20 October 2026. Stremio and Kodi reach more devices (TVs, phones), and VLC- or mpv-based players play more codecs today; see the full comparison for sources, details, and where other tools are the better fit.

Features

Streaming built for skipping

downloading. It requests the playhead first, then the file's index and a read-ahead window sized from the video's bitrate. When you skip, it cancels requests that are no longer urgent, sends the pieces at the new position to the fastest peers, and duplicates the most urgent blocks to a second peer so one slow peer cannot stall playback. connection attempts and peers that worked before tried first. window), or the built-in search. its first minutes, so pressing play on it starts at once. One preload at a time, never uploaded, deleted if unused, and off with one switch.

A queue that downloads ahead, intelligently

ready before you get to it. Set a maximum in Settings if you prefer fewer at once. connection and playback's needs. While the buffer is short, the rest of the queue gets only what playback leaves; if playback runs low, the rest pauses briefly to let it catch up, and keeps going if the video's own swarm is the bottleneck. Once you are comfortably ahead, everything runs at full speed again. time left. Green sections show the downloaded chunks and gaps, matching the player's seek bar; readiness and waiting states are shown separately. torrents keep sharing, finished or not, until you pause or remove them, with one upload limit across both engines. arrive in sequence; only you reorder it, by dragging or once with Sort by… (name, recently added, size, progress, speed, peers, or time left). Pause any video, a whole torrent, or everything with one click: pausing a torrent or everything stops download and upload until you resume; pausing one video of a torrent stops its download. next video plays only when you pick it.

A player for video and audio

10 seconds, F for fullscreen, M to mute, C for captions, Q for the queue), playback speed, and Shift+N to play the next item in the queue. When a video ends, a card offers Play next or Replay; nothing plays on its own. just like video, with a "now playing" view; an album starts at its first track and its tracks queue in order. ahead, plus a debug overlay (D) with a live piece map. system's web engine cannot decode, are converted to AAC on the fly by a bundled, playback-only FFmpeg; the video itself is untouched.

Find and organize

answers, ranked by relevance and by how watchable they are: seeders, resolution, source quality, HDR, whether the built-in player can play them, and a size check that catches fake 4K. Adult categories are excluded by default. torrent's videos appear as one course in the queue, and a file explorer previews pictures, text, and subtitles inside a torrent before you play anything. Reopening an unfinished video continues from its last position, with a Start over button. original names and formats. Copy path appears beside Play when a file is fully saved. The Library's Remove torrent deletes its saved files and cached pieces after confirmation. See Downloads, saved files, and library removal.

Network and privacy controls

apps included, traffic goes through it); a built-in WireGuard tunnel that runs inside the app with no administrator rights or separate VPN app; or a SOCKS5 proxy. stops and open connections close. Nothing falls back to your direct connection, and traffic resumes by itself when the tunnel is back. With your own VPN app, use its kill switch. prompt): on a chosen or random port, with optional UPnP in Direct mode, or inside the WireGuard tunnel on a port your provider forwards. Never through a SOCKS5 proxy. upload speed of every torrent, and your public IPv4 and IPv6 addresses as the internet sees them, through the current mode (optional; see Privacy). torrent.

Performance

Measured with the bundled benchmark tool, torrentplayer-bench, which acts like a real player through the app's stream server. Every run starts from an empty cache, and every seek is measured from a fresh session, so nothing is already downloaded. It reports data-ready time: until the player has the bytes it needs.

| Swarm | Start-up, median (p95) | Skip, median (p95) | | --------------------------------------------------------------- | ---------------------- | ------------------- | | Local seeder, 8 MiB/s link | 0.35 s (0.36 s) | 0.27 s (0.30 s) | | Local seeder, 2 MiB/s link | 1.08 s (1.08 s) | 0.68 s (0.80 s) | | Public swarm (Ubuntu 24.04 ISO, ~600 peers), capped at 10 MiB/s | 1.2–2.8 s | 0.70 s (1.47 s) |

Public swarms vary between runs; that row comes from three runs per configuration. Since 0.2.0 magnet links stream through TorrentPlayer's engine too (librqbit only fetches their metadata); in 0.1.0 they used the embedded librqbit engine, which took 3.7 s to start and 2.7 s per skip on the same swarm. See docs/performance.md for the methodology, and run it yourself:

cargo run -p torrentplayer-bench --release -- local --upload-mibps 8 --runs 5
cargo run -p torrentplayer-bench --release -- torrent path/to/file.torrent --runs 3 --download-mibps 10

Privacy

TorrentPlayer has no telemetry, analytics, crash reporting, or accounts, and it does not phone home. Its only network traffic is:

trackers, the DHT, or its web seeds). search.emberglow.tech, which sees your search terms. Search is optional: you can always paste a magnet link or open a .torrent file instead. (ipv4. and ipv6.icanhazip.com) for the addresses it sees: at start-up, when the connection changes, and every 10 minutes. It carries no identifiers and can be turned off in Settings → Network & VPN.

All of it goes through your selected VPN, WireGuard tunnel, or proxy, and nothing is sent while the kill switch is engaged. See the threat model and network modes. Your queue, settings, and watch progress stay on this computer; the playback library is a user-only local SQLite database and is never sent anywhere.

Get TorrentPlayer

TorrentPlayer is an early preview. The latest version is 0.3.2; see the release notes for what changed. You can:

page: installers for Windows, macOS, and Linux with SHA-256 checksums, an SBOM, and build provenance attestations (how to verify them). They are not code-signed yet, so Windows SmartScreen and macOS Gatekeeper will warn on first launch. and Linux, and maintainers can start one for any branch (Actions → Build → Run workflow): open a Build workflow run and download the installers- artifact. Unsigned builds trigger SmartScreen on Windows and Gatekeeper on macOS. | Platform | Packages | | -------------------------------- | ------------------------ | | Windows 10/11 (x64) | .msi, .exe (NSIS) | | macOS 13+ (Apple Silicon, Intel) | .dmg, .app | | Linux (x64) | AppImage, .deb, .rpm |

The player uses your system's web engine (WebView2 on Windows, WebKit on macOS and Linux), so it plays the formats that engine supports: commonly MP4, WebM, and MKV with H.264, VP9, or AV1 video and AAC, Opus, or MP3 audio. Dolby (AC-3, E-AC-3, TrueHD) and DTS audio in MP4 and MKV files is converted to AAC as it plays.

Installing on Linux

On Linux, WebKit plays audio and video through GStreamer, which needs several plugin packages. You don't install them yourself (since 0.3.3):

| Package | For | GStreamer's plugins | | -------- | -------------------------------------------- | ------------------------------------------------------------- | | AppImage | Any distribution, including Arch and Manjaro | Bundled inside the AppImage | | .deb | Debian, Ubuntu, Linux Mint, Pop!\_OS | Installed with TorrentPlayer by apt (declared dependencies) | | .rpm | Fedora, RHEL and its rebuilds, openSUSE | Installed with TorrentPlayer by dnf or zypper |

Install the .deb or .rpm with your package manager so it brings them along:

sudo apt install ./TorrentPlayer__amd64.deb         # Debian, Ubuntu, Mint, Pop!_OS
sudo dnf install ./TorrentPlayer--1.x86_64.rpm       # Fedora, RHEL, Rocky, Alma
sudo zypper install ./TorrentPlayer--1.x86_64.rpm    # openSUSE

Double-clicking the file in your software center works too. A bare dpkg -i or rpm -i does not install dependencies; if you used one, run sudo apt -f install (or install the file again with dnf or zypper). The video decoders (libav, and openh264 on Fedora and openSUSE, whose libav leaves H.264 out) are recommended packages, which package managers install by default; on Fedora openh264 comes from Cisco's repository, which Fedora enables by default. Upgrading to a new version installs any new dependencies the same way, and a new AppImage brings its own plugins. Every release installs each package on Ubuntu, Debian, Fedora, and openSUSE, and checks the AppImage on Arch, before it ships. If audio or video still plays silently or not at all, see Troubleshooting.

Building from source

You need:

automatically by rustup. Minimum supported Rust: 1.90. (Tauri prerequisites):
    sudo apt install libwebkit2gtk-4.1-dev build-essential curl wget file \
      libxdo-dev libssl-dev libayatana-appindicator3-dev librsvg2-dev \
      gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad \
      gstreamer1.0-gl gstreamer1.0-libav
    

The GStreamer plugins are needed at run time: without them audio and video play silently or not at all.

Then:

git clone https://github.com/torrentplayer/torrentplayer.git
cd torrentplayer/ui    # npm commands run in the frontend folder
npm ci
npm run tauri dev      # run the app with hot reload
npm run tauri build    # build optimized installers for your platform

See docs/building.md for the full development workflow, including how to run every CI check locally.

Documentation

becomes video on screen The docs also build as a book with mdBook: mdbook serve docs.

Roadmap

Working today: the streaming engine (for .torrent files and magnet links), player, search, the queue with background downloads, the WireGuard and SOCKS5 modes with a kill switch, and bandwidth limits. Next:

FAQ

Is it legal? BitTorrent is a distribution protocol, and TorrentPlayer is built for openly licensed and public-domain material. Search covers general public torrent indexers whose results are not license-checked, so you are responsible for having the right to download and share what you play.

Why is a video slow to start? Speed comes from the swarm. A torrent with few seeders or peers can only be as fast as they are; the queue shows each video's peers and speed so you can pick one that plays smoothly, or move it up in the queue.

Does TorrentPlayer upload? Yes. Both torrent engines share verified pieces while a torrent is active, under the global upload limit. A queued torrent keeps sharing until you pause or remove it in the queue.

What happens if my VPN drops? In the WireGuard and SOCKS5 modes, the kill switch stops all traffic and closes connections u

GitHub Stars & Activity

708Stars
20Forks
0Open issues
RustLanguage

GitHub Popularity

GitHub stars708
Forks20
Open issues0
Primary languageRust
License-
Stars gained today0
Created-
Last pushed-

Trending History

Weekly boardrank #41 · ▲ 0 stars

Related GitHub Projects

1

anomalyco / hokum

Rust★ 134⑂ 2
→
2

QuixiAI / QuixiDesk

Rust★ 109⑂ 31
→
3
→
4

crystalmasta / unbihex

Rust★ 103⑂ 5
→
5

anhao / ai-pose-gallery-zh

HTML★ 2,551⑂ 668
→
6

andyhuo520 / digital-human-koubo

TypeScript★ 1,400⑂ 323
→
7

Motionsites-AI / claude-skill

Python★ 1,021⑂ 106
→
8

kargulstudio / calender-app-design

TypeScript★ 795⑂ 96
→

More Trending Repositories