IPTV player · Android, Android TV, Windows, Linux & macOS · Free, no accounts

Your IPTV playlist.
On every screen you own.

JAVP is an IPTV player you bring a playlist to - Android, Android TV, Windows, Linux and macOS. Add your M3U or Xtream Codes, with a full EPG, catch-up and recordings, or connect Jellyfin, Emby or Plex. No channel list in the box. Nothing phones home.

Free · Android 7.0+, Windows, Linux & macOS · detecting your device…

  • No accounts
  • No ads
  • No tracking
  • Nothing bundled
Midnight Signal
0:44:501:58:00

Continue watching

On now

Match Day - Live Evening Report

For you

Try it: double-tap the sides to skip, press and hold for 2×.

Local files·Jellyfin·Emby·Plex· M3U / M3U8·Xtream Codes·JSON catalogs· HLS & direct links·Torrents·XMLTV EPG· Chromecast·WebDAV·

The player

Built around the thing you actually do: watch.

Every control is where your thumb already is. No menu diving, no mystery icons - just gestures that do the obvious thing, fast.

Hold for 2×

Press and hold either side to speed through a slow scene. Let go and you're back to normal speed, exactly where you were.

+10s

Double-tap to skip

±10 seconds a tap, and taps stack - tap three times for 30. Left rewinds, right skips, the middle just shows the controls.

LIVE

Scrub live like a DVR

On catch-up capable channels, rewind live TV, start the current programme over, then jump back to the live edge.

Lock & cinema mode

Lock the screen so a stray thumb can't ruin a scene. Cinema mode goes full-bleed and immersive; portrait keeps a browse panel below.

Picture-in-picture

Leave the app mid-episode and playback pops into a floating window. There's a mini player inside the app too.

Subtitles look
the way you want

Captions you control

Outline, shadow, boxed or fully custom - size, outline weight, margin, colour and background opacity. Or keep the original ASS styling intact.

libmpv engine

media_kit with the full libmpv codec set - hardware decoding by default, software fallback one toggle away.

Tracks & quality

Embedded and external subtitles and audio, preferred-language defaults, plus HLS/DASH rendition picking.

Skip the intro

Intro, recap and credits segments get a skip button - or skip themselves, if you'd rather.

Resume & next up

Progress is saved every few seconds, resumes where you stopped, and rolls into the next episode.

Cast

Send an HTTP stream to a Chromecast with its poster, title and your current position.

Speed presets

0.5× through 2× from the bottom bar, independent of the hold-to-boost gesture.

Bring your own

One app in front of everything you already have.

JAVP ships with no content - that's the point. You add a source you already have, and it shows up as posters, channels and shelves.

Media servers

Jellyfin, Emby and Plex libraries with movies, series and episodes. Plex signs in with your account via a plex.tv PIN, or a plain URL and token.

IPTV playlists

M3U / M3U8 with EPG from a playlist you add, or Xtream Codes with live, VOD and series. JAVP does not sell or ship channels.

Local files

Pick videos from the device, or open them straight from your file manager - JAVP registers for video intents.

Links & streams

Paste any direct HTTP(S), HLS or progressive URL and hit play. Deep links (javp://add?…) add whole sources in one tap.

Custom JSON catalog

Point JAVP at a catalog you host yourself and it renders as posters and shelves - a bulk dump, or a live query API it calls as you browse. Read the API docs.

Torrents

Drop in a magnet or .torrent you supply and it streams over a local HTTP bridge, or downloads for offline. For files you have the rights to - JAVP indexes nothing.

Everything lands on one Home screen

Continue watching, For you, My List, downloads, favourite channels and what's on now - mixed from every source you added, not siloed per service. Search covers the lot.

  • Continue watching
  • For you
  • My List
  • Collections
  • Playlists
  • Genres
  • History
  • Downloads

Live TV

A proper guide, and a rewind button.

Channels get an XMLTV guide, reminders that actually fire, and catch-up where your provider supports it - so "I missed the start" stops being a problem.

  • EPG guide - grid view with programme details and one-tap play
  • Reminders - a notification before it starts, tap to open the channel
  • Catch-up & timeshift - scrub back through the catch-up window, or start the programme over
  • Record to device - download a programme with padding before and after
  • Zapping - channel up/down and number keys, the way a set-top box works
  • Quality variants - duplicate HD/FHD/4K channels collapse into one, with your preference remembered

Android TV

Same APK. Big screen, real remote.

Install it on the TV and JAVP switches to a leanback layout: a left rail, D-pad focus that goes where you expect, and a set-top-box style live view. More on the Android TV page.

On Fire TV, sideload with Downloader code 8722108.

  • Left rail - Home, Live, Catalog, Library, Search, My List, Settings
  • Fullscreen live - channel list and info as overlays, CH± and number keys to zap
  • Remote-first VOD - shelves built for a D-pad, with Play autofocused on detail pages
  • Pair from your phone - the TV shows a QR (javp.app/pair); open it in JAVP to push or pull sources over Wi‑Fi

Pairing stays on your LAN with a short-lived token - nothing goes through a server.

Profiles & sync

Start on the phone. Finish on the TV.

Each profile keeps its own history, sources and preferences. Sync is a small JSON file you own - pick where it lives.

Synced folder

Syncthing, a Dropbox or Nextcloud desktop folder, a mounted share - anything that shows up as a path.

WebDAV

Nextcloud, ownCloud and most NAS boxes. Just a URL and credentials.

Google Drive

For a phone or TV with no mirrored folder. Uses the app-private area, so it never clutters My Drive.

It merges instead of clobbering

Watch history merges entry by entry, so progress from either device survives. Everything else is last-write-wins per section - removing a source actually sticks. Simultaneous writes are settled with a compare-and-swap, and a snapshot JAVP can't read is set aside rather than overwritten.

Set up a second device in one screen

Restore from sync on the welcome screen asks where your file lives, lists the profiles it finds, and drops you on Home with your sources and history already there. Nothing to re-add.

Privacy

No account. No analytics. No middleman.

There is no JAVP server holding your library. The app talks to your sources and to nothing else, unless you connect an optional integration yourself.

Zero telemetry

No analytics or crash-reporting SDK is bundled. There is nothing to opt out of.

Credentials stay put

Integration tokens and sync credentials live in the Android keystore-backed secure storage.

History is local

Watch history is stored on the device. SIMKL scrobbling is optional and never replaces it.

You choose the extras

SIMKL, TMDB and Trakt enrichment are off until you add your own key or sign in.

Only update checks

Sideload builds check updater.javp.app for a new version. Google Play and Microsoft Store installs update through the Store.

Your data stays portable

Sync writes one small JSON file per profile, wherever you point it. Copy it, move it or delete it - there is no server-side copy.

Full details in the privacy policy.

Get JAVP

No account needed. Android phones and tablets are on Google Play (sideload APKs too); Windows is on the Microsoft Store (installer and portable zip too); Linux and macOS get portable zips - and Android TV uses the Universal APK. Grab the build that matches your device.

Download for this device

Or open the download page / pick a build below.

All builds

Wrong Android ABI usually won't install - if you're unsure, take Universal. On Android phones and tablets, Google Play is the easy path; sideload APKs remain for TV and no-Play installs. On Windows, the Microsoft Store is the easy path; the installer and zip are still there if you prefer them. On Linux run ./javp; on macOS extract javp.app and right-click → Open the first time (unsigned). Verify sideload files against latest.json, which publishes a SHA-256 for every file.

  1. 1 Get JAVP: Google Play on Android, Microsoft Store on Windows, or the APK / desktop zip below.
  2. 2 On Android sideload, allow unknown apps when asked. On desktop sideload, extract the zip anywhere writable (macOS: right-click → Open once).
  3. 3 Open JAVP and add your first source. Sideload builds update themselves; Store installs update through the Store.

FAQ

The obvious questions.

Does JAVP come with any content?

No. It's an empty player until you add a source you already have. There is no built-in catalog, movie list, IPTV package or channel lineup, and none is downloaded for you.

Is it on the Play Store?

Yes. Install JAVP for Android phones and tablets from Google Play. Android TV and sideload builds still use the APK from updater.javp.app. Windows is on the Microsoft Store, and also has an installer and portable zip. Linux and macOS are portable zips. Sideload builds check for updates in Settings → Updates; Store installs update through the Store.

Is it on the Microsoft Store?

Yes. Install JAVP for Windows from the Microsoft Store. Android phones and tablets are on Google Play; Android TV uses the sideload APK.

Which platforms work?

Android 7.0 (API 24) and newer on phones, tablets and Android TV. Phones and tablets can install from Google Play or sideload an APK; Android TV uses the Universal APK. Windows is on the Microsoft Store, and also has an x64 installer (and portable zip); Linux gets a portable x64 zip; macOS gets unsigned Apple Silicon and Intel zips from the same download page.

Which ABI should I pick?

ARM64 for nearly every modern phone and TV box. ARMv7 for older 32-bit devices. Emulators and Chromebooks should take Universal - there is no separate x86_64 APK. Universal works everywhere but is roughly three times the size.

Can I watch offline?

Yes. Direct streams and torrents can be downloaded to the device, with an optional Wi-Fi-only rule, and live programmes can be recorded from the guide.

Does it work in my language?

The interface is translated into 19 languages including English, French, Spanish, German, Italian, Portuguese, Dutch, Polish, Turkish, Russian, Ukrainian, Japanese, Chinese, Korean, Arabic, Hindi, Swedish, Indonesian and Vietnamese. You can override the system language in Settings.

Is the torrent support legal?

The feature streams torrents you supply. Use it for content you have the rights to - that's on you, and JAVP indexes nothing.

How do I report a bug or ask for a feature?

Join the Discord or email [email protected]. Telling us the device, the Android version and the kind of source you were using makes it much easier to reproduce.

Point it at your library.
See how it feels.