StyleIPTV is only a player. It does not include, sell or provide any channel, film, series or other content. It plays the playlists (M3U / Xtream Codes), TV guides and sources that you add, and you are responsible for using only sources you are entitled to watch. The terms of use are shown, and must be accepted, at the first start.
Run everywhere
See it in action








Web version, shown with a demo playlist of public-domain and Creative Commons titles and free news channels. StyleIPTV doesn't include any content.
Everything you need for IPTV
Playlists & Sources
- M3U / M3U8 from a URL
- Xtream Codes accounts (live, movies and series)
- Scheduled automatic updates (daily to monthly)
- Fast bulk import of large playlists, with duplicate removal
Live TV & TV Guide
- Channel grid with groups, logos and favorites
- TV guide (EPG) with a "now" line and manual channel ↔ guide mapping
- Current and next programme shown right in the player
- Recently watched channels
Movies & Series with TMDB
- Posters, backdrops, plot, cast and production countries
- Actor pages with their full filmography
- Series grouped by season, with per-episode progress
- New episodes open straight on the right season
- Search across live, movies and series
Recordings (PVR)
- Record live channels now or on a schedule
- Choose where to save: any folder on Windows, internal or USB storage on Android
- Automatic retry if the stream drops while recording
- Play back recordings inside the app
Downloads
- Download movies and episodes to watch offline
- HLS streams supported
- Download library to play or manage saved files
Sync Across Devices
- Link your devices with a short pairing code
- Keep Watching, watched titles and playback position
- Favorite channels synced too
- Works between Android, Android TV, Windows and Web
Video Player
- Fullscreen playback, HTTP & HTTPS streams
- Auto-hiding controls
- Android: double-tap to seek, swipe for brightness and volume
- Resume from where you stopped
Made for the Big Screen
- Dark, minimal design for phone, tablet, PC and TV
- Complete D-pad / remote-control navigation
- Focus is kept when you come back from the player
- Long-press to remove items from Keep Watching
Web Version New
- The same look and features as the app, in any browser
- Works with the TV remote too (arrows, OK, Back)
- Audio converted on the server for channels the browser can't play
- Recordings and downloads saved on your server
- Optional password protection
StyleIPTV Web with Docker
StyleIPTV is a media player that runs on a computer of your home network (PC, mini PC, NAS, Raspberry Pi 4/5) and is used from the browser of any device: PC, phone, tablet, Smart TV — with the TV remote too (arrows, OK, Back).
Requirements
- Docker with the Compose plugin (Linux, Windows or macOS) —
amd64orarm64 - Disk space for recordings and downloads (about 1–2 GB per hour of HD recording)
Install
You need two files in a folder of their own: docker-compose.yml and .env.
1 Create the folder
2 Create docker-compose.yml
Copy the whole block into a terminal (Linux / macOS), or save the part between the EOF
lines as docker-compose.yml with any text editor (Windows: Notepad, "All files").
3 Create .env (your settings)
Same as above: paste it in a terminal, or save the part between the EOF lines as .env.
Then change the values you need (port, password, time zone).
4 Start
Open http://COMPUTER-ADDRESS:PORT (e.g. http://192.168.1.10:8080). At the first
start, read and accept the terms of use; then in Settings add your playlist and press
Save and download playlist.
Setting in .env | What it does |
|---|---|
STYLEIPTV_PORT | Port to open in the browser (default 8080). |
STYLEIPTV_BIND | Listen only on one address of the computer (default: all). |
STYLEIPTV_PASSWORD | Access password, asked once per device. Recommended. Empty = none. |
STYLEIPTV_DASHBOARD_API_KEY | Enables the read-only monitoring API (/api/dashboard). Empty = off. |
TZ | Time zone for the TV guide and recordings. |
Your data (database, settings, recordings, downloads) is in the data folder next to
docker-compose.yml.
Monitoring API New
A read-only JSON API for an external dashboard. Set
STYLEIPTV_DASHBOARD_API_KEY to a long random value to enable it, and send that
key in the X-API-Key header (never in the URL). It only reads — it can't start,
stop or delete anything — and never exposes stream URLs, playlist credentials or file paths.
Keep it on your LAN / VPN like the rest of the server.
| Endpoint | Returns |
|---|---|
GET /api/dashboard/summary | Channel, favorite and EPG counts, EPG last update, and scheduled / active / completed / failed recording counts. |
GET /api/dashboard/recordings/upcoming?limit=5 | The next recordings (next real occurrence for repeating ones), soonest first. |
GET /api/dashboard/recordings/recent?limit=5 | The latest recordings, newest first. |
Times are ISO 8601 UTC. Responses: 401 without a valid key,
429 if polled too hard, 503 if the key isn't set.
Update
The same guide is on Docker Hub.
STYLEIPTV