Your media, on your device.
Screen, page, sound, and live television in one local-first player, with no account required.
Project site · Download a release · Build from source
ZPlay keeps your progress, preferences, and library on your device. There are no required accounts, analytics SDKs, crash reporters, subscriptions, or paywalls. Optional services such as Trakt, Simkl, and debrid providers remain yours to connect.
| Mode | What it is for | What sets it apart |
|---|---|---|
| Screen | Movies, television, anime, and live TV | Built-in HTTP and torrent providers, Stremio-compatible addons, optional Real-Debrid / TorBox, IPTV portals, curated film collections, and a media_kit / libmpv player with hardware decoding, HDR handling, Anime4K upscaling, PiP, and subtitle controls. |
| Page | Manga | Horizontal or vertical reading, pinch zoom, and exact chapter-and-page resume. |
| Sound | Audiobooks and music | Multi-source audiobook playback with speed, sleep timer, chapters, and saved position; music search, artists, playlists, likes, quality switching, and a persistent mini-player. |
| Live | Television you bring with you | Xtream-style IPTV portals, channel search, favourites, and viewing history. |
Browse carries a Collections vertical, and Home keeps a Memory Lane zone, both built from hand-picked packs whose every IMDb id was verified against Cinemeta before shipping: twelve franchise packs (The Godfather, Rocky and Creed, Back to the Future, Alien, Die Hard, Lethal Weapon, The Terminator, Predator, Jurassic Park, Rambo, Indiana Jones, and The Marx Brothers) plus six 1990s rails covering Action, Comedy, Horror, Sci-Fi, Animation, and Thriller. Tapping a pack opens a grid; tapping a film opens the normal details screen. Because posters come from the same image CDN the rest of the library uses, the packs paint instantly and need no catalog lookup.
Add a free TMDb API key in Settings, stored only on your device, and those 1990s rails are replaced by lists ranked by real vote counts, refreshed at most once a day. No key ships with the app, and your key is never sent anywhere except TMDb.
Watch progress, reading position, and listening position are saved locally. Catalogs can render from cache while they refresh, and source results arrive as providers respond rather than waiting for the slowest one. Addons and scrapers are isolated so one unavailable source does not stop the rest.
Every tagged release is built by CI for five platforms. Download the files you need from GitHub Releases.
| Platform | Release artifacts |
|---|---|
| Windows | ZPlay-Windows-Setup.exe installer · ZPlay-Windows-x64-Portable.zip |
| Android | app-arm64-v8a-release.apk · app-armeabi-v7a-release.apk · Android TV support |
| Linux | ZPlay-Linux-x86_64.AppImage · ZPlay-Linux-x86_64.tar.gz |
| macOS | Apple Silicon and Intel .dmg / .zip builds |
| iOS | ZPlay-iOS.ipa (unsigned; sideloading required) |
For release notes and downloads, visit github.com/tzero86/ZPlay/releases. The public project site is tzero86.github.io/ZPlay.
Requires Flutter 3.x (Dart 3.11+).
git clone https://github.com/tzero86/ZPlay.git
cd ZPlay
flutter pub get
flutter run -d windows # or macos / linuxRelease builds:
flutter build windows --release
flutter build apk --release --split-per-abi --target-platform android-arm,android-arm64ZPlay combines Stremio-compatible addons (Cinemeta is installed by default) with built-in scrapers. Open a title and enabled providers are queried concurrently; streams appear as each provider responds. The provider list can be reordered, and individual providers can be enabled or disabled.
Scrapers are isolated plugins. To add one, extend StreamScraper, implement scrape(), then register it in stream_service.dart; the manager supplies concurrency, timeouts, deduplication, and error isolation.
class MyNewScraper extends StreamScraper {
@override
String get name => 'ZPlayHTTP';
@override
Future<List<StreamSource>> scrape({
required String type,
required String title,
required int? year,
required int? season,
required int? episode,
required String? imdbId,
}) async {
// Your source lookup.
}
}- Flutter / Dart for one codebase across five platforms
- media_kit / libmpv for playback, including HLS/DASH handling and Anime4K GLSL upscaling
- TorrServer (
libtorrent) as the embedded torrent engine - Stremio addon protocol for catalogs, search, and metadata
- SharedPreferences for local watchlists, positions, and settings
- Liquid Glass GPU shader UI via
liquid_glass_easy, with a low-end-device setting
Project layout
lib/
├── main.dart # entry point
├── models/ # data classes
├── services/
│ ├── addon/ # Stremio addon manager
│ ├── metadata/ # metadata and recommendations
│ ├── stream/ # stream aggregation, health checks, torrent engine
│ ├── scraper/ # scraper base class, manager, providers
│ ├── anime/ # anime services and extractors
│ ├── subtitles/ # subtitle services and providers
│ ├── manga/ # reader sources and progress tracking
│ ├── audiobook/ # aggregation and progress service
│ ├── music/ # music client, library, and player controller
│ ├── continue_watching/ # resume and source matching
│ └── diagnostics/ # local breadcrumbs and performance monitor
├── pages/ # screens
├── widgets/ # reusable components
└── utils/ # parsing, scoring, and transitions
ZPlay uses stale-while-refresh catalog loading, bounded image decoding, and a shared disk/memory cache. Release builds use a pruned asset bundle; Android release APKs are minified and resource-shrunk. On Windows, Skia is the default renderer and can be changed in the app.
Crash breadcrumbs are written locally in release builds; the performance HUD is debug-only. Neither is a telemetry service.
ZPlay is a media player and aggregator. It hosts no content and stores none. Content is fetched from third-party sources only at your request. You are responsible for ensuring that you have the right to access anything you stream in your jurisdiction.
ZPlay is licensed under the GNU General Public License v3.0.
ZPlay is a modified version of PlayTorrio V3, © 2026 Ayman (@ayman708-UX), and is distributed under the same license. The original project and its full corresponding source remain available at github.com/ayman708-UX/PlayTorrioV3.
Poppins and Playfair Display are bundled under the SIL Open Font License 1.1.
Film metadata and images can be sourced from The Movie Database (TMDb). This product uses the TMDB API but is not endorsed or certified by TMDB.
Maintained by tzero86