Skip to content

kohnorw/PLEX-VOD

Repository files navigation

Plex VOD Bridge

Turn your Plex library into an IPTV service! Watch your Plex movies and TV shows in any IPTV player like TiviMate, IPTV Smarters, and more.

Python Docker License

🎯 What Does This Do?

This bridge transforms your Plex Media Server into an Xtream Codes API service, allowing you to:

  • βœ… Access your Plex movies and TV shows through any IPTV player
  • βœ… Get high-quality movie posters from TMDb (optional)
  • βœ… Browse your entire library with beautiful artwork
  • βœ… Stream directly from Plex to your IPTV app

πŸš€ Quick Start (Portainer)

The easiest way to run this is with Docker/Portainer:

docker pull ghcr.io/kohnorw/plex-vod:latest

Step 1: Deploy in Portainer

  1. Open Portainer β†’ Stacks β†’ + Add stack
  2. Name it: plex-vod
  3. Paste this:
version: '3.8'

services:
  plex-vod:
    image: ghcr.io/kohnorw/plex-vod:latest
    container_name: plex-vod
    restart: unless-stopped
    
    ports:
      - "8080:8080"
    
    volumes:
      - plex-vod-data:/app/data
    
    environment:
      - BRIDGE_HOST=0.0.0.0
      - BRIDGE_PORT=8080

volumes:
  plex-vod-data:
  1. Click Deploy the stack

Step 2: Configure

Visit: http://YOUR_SERVER_IP:8080/admin

Login with:

  • Username: admin
  • Password: admin123 (you'll change this on first login)

Add your Plex info:

  1. Plex Server URL - Usually http://192.168.1.X:32400
  2. Plex Token - How to find your Plex token
  3. TMDb API Key (optional) - Get free API key for high-quality posters

Step 3: Add to IPTV Player

In TiviMate, IPTV Smarters, or any Xtream player:

  • Server URL: http://YOUR_SERVER_IP:8080
  • Username: admin (or what you set)
  • Password: Your bridge password (set in settings)
  • Type: Xtream Codes API

Done! πŸŽ‰ Your Plex library is now in your IPTV player!


πŸ’» Other Installation Methods

Docker Command Line
docker run -d \
  --name plex-vod \
  -p 8080:8080 \
  -v plex-vod-data:/app/data \
  --restart unless-stopped \
  ghcr.io/kohnorw/plex-vod:latest
Docker Compose

Create docker-compose.yml:

version: '3.8'

services:
  plex-vod:
    image: ghcr.io/kohnorw/plex-vod:latest
    container_name: plex-vod
    restart: unless-stopped
    ports:
      - "8080:8080"
    volumes:
      - plex-vod-data:/app/data

volumes:
  plex-vod-data:

Run: docker-compose up -d

Linux Install (without Docker)
# Clone the repository
git clone https://github.com/kohnorw/plex-vod.git
cd plex-vod

# Run installer
chmod +x install.sh
./install.sh --install-service

# Access at http://YOUR_IP:8080/admin

🎬 Features

Core Features

  • πŸŽ₯ Full Plex Integration - All your movies and TV shows
  • πŸ“Ί Xtream Codes API - Works with all IPTV players
  • πŸ–ΌοΈ TMDb Posters - High-quality artwork (optional)
  • πŸ”„ Auto-Matching - Automatically fetches posters every 30 minutes
  • πŸ’Ύ Persistent Cache - Saves poster matches (survives restarts)

Admin Features

  • 🌐 Web Interface - Easy configuration
  • πŸ” Manual Matching - Search and fix poster matches
  • πŸ“„ Pagination - Browse all your content
  • πŸ” Secure - Password protected

Performance

  • ⚑ Multi-User - Handles many users at once
  • πŸš€ Fast - Optimized caching
  • πŸ’ͺ Reliable - Auto-restart on errors

πŸ“± Tested IPTV Players

Works perfectly with:

  • βœ… TiviMate (Recommended)
  • βœ… IPTV Smarters Pro
  • βœ… Chilio
  • βœ… Dispatcharr
  • βœ… Perfect Player
  • βœ… GSE Smart IPTV

πŸ”§ Configuration

Required Settings

  • Plex Server URL - Your Plex server address
  • Plex Token - Authentication token from Plex

Optional Settings

  • TMDb API Key - For high-quality posters (free)
  • Bridge Username - For IPTV player login
  • Bridge Password - For IPTV player login

How to Get Plex Token

  1. Open Plex Web App
  2. Play any movie/show
  3. Click "..." β†’ Get Info
  4. Click "View XML"
  5. Look in the URL: X-Plex-Token=YOUR_TOKEN_HERE

Full guide here

How to Get TMDb API Key (Optional)

  1. Create account at TMDb.org
  2. Go to Settings β†’ API
  3. Request API key (free)
  4. Copy the "API Key (v3 auth)"

πŸ› Troubleshooting

Can't access web interface

Check container is running:

docker ps | grep plex-vod

Check logs:

docker logs plex-vod

Check port:

netstat -tlnp | grep 8080

Can't connect to Plex

  • βœ… Make sure Plex URL is correct
  • βœ… Make sure Plex Token is valid
  • βœ… Try accessing Plex URL from the container
  • βœ… If Plex is in Docker, use http://host.docker.internal:32400

No posters in IPTV player

  • βœ… Add TMDb API key (optional but recommended)
  • βœ… Wait for auto-match to run (30 minutes)
  • βœ… Or manually trigger: Click "Auto-Match Unmatched" in admin

Content not showing

  • βœ… Verify Plex connection in admin panel
  • βœ… Check credentials in IPTV player
  • βœ… Make sure content exists in Plex libraries

πŸ“Š How It Works

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”         β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”         β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚             β”‚         β”‚              β”‚         β”‚            β”‚
β”‚  Plex VOD   │◄────────│     Plex     │◄────────│   TMDb     β”‚
β”‚   Bridge    β”‚  Auth   β”‚    Server    β”‚  Meta   β”‚    API     β”‚
β”‚             β”‚         β”‚              β”‚         β”‚  (optional)β”‚
β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”˜         β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜         β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
       β”‚
       β”‚ Xtream API
       β”‚
       β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚   IPTV      β”‚
β”‚   Player    β”‚
β”‚  (TiviMate) β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
  1. Bridge connects to your Plex server
  2. Optionally fetches high-quality posters from TMDb
  3. Exposes everything via Xtream Codes API
  4. IPTV players connect and stream from Plex

πŸ” Security

  • πŸ”’ Encrypted Storage - API keys encrypted with AES-256
  • πŸ”‘ Hashed Passwords - SHA-256 password hashing
  • πŸ›‘οΈ Session Security - Secure Flask sessions
  • πŸ“ Force Password Change - Must change default password

Important: Change the default password on first login!


πŸ†˜ Support

Need help?


πŸ“ License

MIT License - see LICENSE file


πŸ™ Credits

  • Plex - Amazing media server
  • TMDb - Movie/TV metadata and artwork
  • PlexAPI - Python library for Plex
  • Some code written by bigverm23

⭐ Star This Repo

If this helped you, give it a star! ⭐ It helps others find it too.


Made with ❀️ for the Plex community

About

This script bridges your plex library to a IPTV VOD library and you can access through the xtreme api

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors