Open source·MIT · Windows, Linux, macOS, Android & Android TV

A media library that plays anything you point it at

Ventic streams torrents into a real mpv window - HEVC, AV1, DTS, half-downloaded MKVs, all of it. The BitTorrent engine runs inside the app, the library never leaves your device, and it ships with nowhere to search until you say so.

Free forever · No account · No telemetry

Ventic home screen
Why Ventic

Most torrent players are a video tag in a trench coat

The codec support shows. Ventic embeds the real thing and keeps the library around it honest and local.

A real mpv window, not a video tag

On Linux and Windows the Rust side parents an actual mpv window into the page and keeps it glued to a box in the layout. mpv carries its own ffmpeg, so HEVC, AV1, 10-bit, E-AC-3, DTS and half-downloaded MKVs play with no codec packs.

The engine is in the app

librqbit runs in-process - a full downloads page with file pickers, seeding, speed limits and a disk budget, rather than a hidden cache you cannot see or control.

Playback starts on the first bytes

You are watching while it downloads. A title already on disk replays with no metadata lookup, no source search and no peers at all.

One player, three backends

Where mpv cannot be embedded, ExoPlayer or the webview answers the same command protocol - so there is one player component and one set of controls, not three.

Your library stays yours

History, progress, favourites and the watchlist live in this device's storage. No Ventic account, no Ventic server, no sync - and one backup file carries the lot to another machine.

Usable from the sofa

Full d-pad navigation, a focus style anywhere there is a hover style, and an Android TV build. A remote reaches everything a mouse does.

The player

Everything about the picture, in one place

The native mpv surface paints above the webview, so the controls cannot simply be stacked over it. Every overlay measures its own rectangle each frame and the Rust side subtracts it from mpv's window - the page shows through the holes, clicks included, while the video window itself never resizes.

  • Seek-preview frames pulled with ffmpeg and cached, warmed only while the control bar is up
  • The file's own audio and subtitle tracks, the release's subtitle files and OpenSubtitles in one menu
  • Subtitle font, size, colour, outline and position - applied to mpv and to page-drawn cues alike
  • Auto-sync slides a mismatched subtitle onto the audio's silence map and reports its confidence
  • Progress recorded per episode, picked back up from the card or the detail page
HEVC
AV1
10-bit
E-AC-3
DTS
x264
AAC
MKV
Half-downloaded files
The Ventic player with the subtitle menu open over a film
Downloads

A torrent client that happens to have a library on top

Paste a magnet and it plays. The downloads page is the engine's own UI, so nothing is hidden behind a "cache" setting - and with no sources configured, that is a complete BitTorrent client on its own.

  • Magnets, .torrent files, or a release picked from a source you added
  • Pick what to fetch inside a torrent - a season pack downloads the one episode
  • Seeding on by default, with upload and download limits
  • A disk budget that evicts oldest-watched first and never touches what is playing
  • Wi-Fi only pauses background torrents on a metered connection and restarts exactly those
  • On Android a foreground service keeps downloading when you switch apps
The Ventic downloads page with per-file selection and speed limits
Appearance

26 themes, or one built from a colour you pick

Pick a colour off the spectrum slider and every role from primary-container to on-tertiary-fixed-variant is derived with Google's own generator - the engine behind Material Theme Builder. Every foreground and background pair's contrast is asserted by a check script rather than eyeballed.

  • Ventic Dark, Midnight (OLED), Nord, Tokyo Night, Mocha, Dracula, Gruvbox, Solarized and more
  • A theme is a preset: it can carry the background it was drawn for, with its own blur and tint
  • Poster art behind the app, a picture of your own, or nothing at all
  • App scale, poster size, a performance switch for televisions, and a global CSS box
Ventic appearance settings showing the theme grid
The app

Eight rooms, and TMDB metadata through all of them

Posters, backdrops, cast, ratings, per-episode watched state and resume points - with favourites, a watchlist and history kept on the device.

Home

Continue watching, trending today, popular, top rated, in cinemas

Movies · TV · Anime

Browse rows in a grid or a list, remembered per session

Search

One box across TMDB; a result carries straight through to a source search

Favourites

The local list, on the device, uncapped

Watchlist

What you mean to get to, kept next to the rest

History

What you watched and where you stopped, per episode

Detail

Backdrop, synopsis, cast, trailer, seasons and per-episode state

Settings

Appearance, sources, subtitles, network, storage, account, about

Playback

The right player for the screen it is on

Ranking asks the device rather than guessing: a release name is read for the codecs it claims and each is put to the device's own decoder list, so a TV keeps the Dolby copy it can play and a phone that cannot is steered off it - never at the cost of a quality tier.

When something still fails, the error names the likely cause instead of showing a black rectangle.

Linux
mpv

Needs mpv and ffmpeg from your package manager

Windows
mpv

Ships its own mpv and ffmpeg - nothing to install

Android · Android TV
ExoPlayer

The device's own decoders; landscape and immersive while playing

macOS
libmpv, in-process

Linked rather than launched, drawn under the webview

Built for a remote

Up, down, left, right, OK, back

Driving the app from a sofa is a constraint on every screen, not a mode. Real links and buttons throughout, a focus style anywhere there is a hover style, decorative overlays taken out of the tab order, and nothing that depends on typing or pointing.

How to install it on a TV
Android TV build
Full d-pad navigation
Performance switch
Focus-first styling
Themes for a dark room
App scale for a 10-foot UI
Sources

It ships with nowhere to look

Ventic hosts no content and indexes no content. It searches nothing on its own and will not suggest anywhere to look. A source is a URL you add.

The whole integration

A source is a server that speaks the Stremio addon protocol. Ventic runs no code from one - it reads the JSON, ranks the results and hands the one you pick to its own engine.

GET  {source}/stream/movie/{imdbId}.json
GET  {source}/stream/series/{imdbId}:{s}:{e}.json
→    { "streams": [ { "infoHash": "…", "title": "…" } ] }

Add several and their results merge, duplicates dropped. A stream that names a URL instead of an info hash - what a debrid addon answers with - is played directly, with no swarm joined and nothing written to disk.

A link can never change what it searches

Ventic registers the ventic:// scheme so an addon page can offer a one-click install. The app shows the URL in full and asks before adding it - always.

Privacy

Nothing phones home

No analytics, no telemetry, no crash reporting

Nothing phones home. There is no build flag to turn back on.

No account and no server

There is nothing to sign into, and watch state never leaves the device.

Credentials stay on the device

A debrid key lives inside the source URL you added, and backup files leave credential-bearing keys out.

You decide what it can search

With no sources configured, the app queries no one for releases at all.

Besides the sources you add and the peers your torrents connect to, Ventic reaches:

TMDB

Posters, backdrops, synopses, cast and ratings, and the title → IMDb id lookup

Stremio's public addons

The OpenSubtitles list, and the one case TMDB cannot produce an IMDb id for

YouTube

A title's trailer, on the no-cookie domain

GitHub

One unauthenticated request at startup asking whether a newer release exists

FAQ

The questions that keep coming up

Put it on the machine you actually watch things on

One download, no account, and a first run that searches absolutely nothing until you tell it where to look.