Overview

PlayOnTV Server is a lightweight, cross-platform personal media server. Point it at your folders or existing M3U playlists, and it instantly creates a streaming service that any compatible IPTV player can connect to — including PlayOnTV Player.

What you get out of the box:

Requirements

Platform Requirements
Windows Windows 10 or later (64-bit)
Linux 64-bit distribution with glibc 2.17+

No additional software or databases required. PlayOnTV Server uses an embedded SQLite database.

Getting Started

1. Download and run

Download the build for your platform and launch the executable. On first run, the server will:

2. Initial setup

Open your browser and visit:

http://localhost:8080

Create your admin account with a username and password. You’ll use it to manage the server and generate connection credentials for IPTV players.

3. Add content sources

In the admin interface, add your content sources:

After adding a source, click Sync to scan and import the content.

4. Connect your player

Go to Credentials in the admin interface to find your connection details. Use them in PlayOnTV Player — or any compatible IPTV client.

Configuration

Create a config.yaml in the same directory as the server executable to customize settings:

# Server settings server: host: "0.0.0.0" # Listen on all interfaces port: 8080 # HTTP port base_url: "" # External URL (for remote access) # Security settings security: max_connections_per_user: 0 # 0 = unlimited # Database settings database: path: "./data/iptv.db"
Tip: For LAN streaming, set max_connections_per_user: 0 — video players often open multiple connections for seeking and buffering.

Connecting IPTV Players

PlayOnTV Player

In PlayOnTV Player, add a new playlist using the Xtream Codes option:

Other IPTV Players

PlayOnTV Server is compatible with any IPTV player that supports:

Besides PlayOnTV Player, compatible players include TiviMate, IPTV Smarters, GSE Smart IPTV, VLC, and many others.

API Reference

Authentication

POST /api/auth/login

Authenticate and receive a JWT token for API access.

Content Sources

GET /api/sources

List all configured content sources.

POST /api/sources

Add a new content source (local directory or M3U URL).

POST /api/sources/:id/sync

Sync / scan a content source to import media.

Media Library

GET /api/library

List all media items in the library.

Playlist & Credentials

GET /api/playlist/credentials

Get the M3U URL and Xtream credentials for connecting players.

GET /api/playlist/m3u?token=TOKEN

Download the M3U playlist.

Xtream Codes API

Full Xtream Codes API compatibility for IPTV players:

GET /player_api.php?username=X&password=Y&action=ACTION

Main Xtream API endpoint. Supported actions include get_live_categories, get_live_streams, get_vod_categories, get_vod_streams, get_series_categories, get_series, and more.

GET /movie/USERNAME/PASSWORD/STREAM_ID.EXT

Stream VOD content (movies, series episodes).

GET /live/USERNAME/PASSWORD/STREAM_ID.ts

Stream live content.

Supported Media Formats

Format Extension Notes
MP4.mp4, .m4vRecommended for best compatibility
Matroska.mkvFull support including multiple audio / subtitle tracks
AVI.aviLegacy format, fully supported
QuickTime.movApple QuickTime format
WebM.webmOpen web media format
MPEG-TS.ts, .m2tsTransport stream format

Troubleshooting

Can’t connect from other devices

Video won’t play / Error 429

Media not showing after sync

Legal Notice

PlayOnTV Server is designed for personal use with your own legally obtained media. You’re responsible for ensuring you have the right to use, store, and stream any content you add. See our Terms of Use for the full details.