Overview

PlayOnTV Server is a lightweight, cross-platform personal media server that turns your local media collection into a streaming service. It scans your media folders, organizes content, and exposes it via standard IPTV protocols that any compatible player can connect to.

Key Features:

Requirements

Platform Requirements
Windows Windows 10 or later (64-bit)
macOS macOS 10.15 (Catalina) or later
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 appropriate version for your platform and run the executable. On first launch, the server will:

2. Initial Setup

Open your browser and navigate to:

http://localhost:8080

Create your admin account with a username and password. This will be used to access the admin interface and generate 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 get your connection details. Use these to connect PlayOnTV app or any compatible IPTV player.

Configuration

Create a config.yaml file 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"
Note: For LAN streaming, set max_connections_per_user: 0 to allow unlimited connections. Video players often open multiple connections for seeking and buffering.

Connecting IPTV Players

PlayOnTV Player

In the 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, other 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 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: get_live_categories, get_live_streams, get_vod_categories, get_vod_streams, get_series_categories, get_series, etc.

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

PlayOnTV Server supports common video container formats:

Format Extension Notes
MP4 .mp4, .m4v Recommended for best compatibility
Matroska .mkv Full support including multiple audio/subtitle tracks
AVI .avi Legacy format, fully supported
QuickTime .mov Apple QuickTime format
WebM .webm Open web media format
MPEG-TS .ts, .m2ts Transport stream format

Troubleshooting

Cannot 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 are responsible for ensuring you have the right to use, store, and stream any content you add to the server.

See our Terms of Use for complete details.