Skip to main content

A modern IPTV player built with PySide6

Project description

PyIPTV Logo

PyIPTV

A Modern Python IPTV Player

Python 3.8+ License: MIT PySide6 Maintenance

Feature-rich IPTV player built with PySide6/Qt6 for streaming live television content from M3U playlists


โœจ Features

Core Functionality

  • ๐Ÿ“บ M3U Playlist Support - Load and manage IPTV playlists in M3U format
  • ๐ŸŽจ Modern Qt6 Interface - Built with PySide6 for a responsive, native desktop experience
  • ๐Ÿ“‚ Category Organization - Automatically organize channels by categories
  • ๐Ÿ” Search & Filtering - Quickly find channels with real-time search
  • ๐ŸŽต Audio Track Selection - Multi-language audio track support

User Experience

  • ๐ŸŒ“ Theme Support - System-aware theming with KDE integration
  • โšก Performance Optimized - Handles large playlists with virtualized lists and smart buffering
  • โš™๏ธ Settings Management - Persistent settings with user-friendly configuration
  • ๐Ÿ–ฅ๏ธ High DPI Support - Optimized for high-resolution displays

๐Ÿš€ Installation

From PyPI (Recommended)

pip install pyiptv

Using uvx (Isolated execution)

uvx pyiptv

From Source

git clone https://github.com/dmarkey/PyIPTV.git
cd PyIPTV
pip install -e .

๐Ÿ“– Usage

Basic Usage

Launch PyIPTV without arguments to open the playlist manager:

pyiptv

Direct Playlist Loading

Launch directly with a playlist file:

pyiptv /path/to/your/playlist.m3u

Command Line Arguments

Command Description
pyiptv Launch with playlist manager
pyiptv <playlist_path> Launch directly with specified playlist

๐Ÿ“‹ Requirements

Component Version Description
Python 3.8+ Core runtime
PySide6 6.5.0+ Qt6 bindings
Qt6 multimedia libraries Latest Media playback
Operating System Linux, Windows, macOS Cross-platform support

System Dependencies

๐Ÿง Linux (Ubuntu/Debian)
sudo apt install python3-pip qt6-multimedia-dev
๐ŸŽฉ Linux (Fedora/CentOS)
sudo dnf install python3-pip qt6-qtmultimedia-devel
๐ŸŽ macOS
brew install python qt6
๐ŸชŸ Windows

No additional system dependencies required - PySide6 includes all necessary Qt libraries.

โš™๏ธ Configuration

PyIPTV automatically creates configuration files in platform-appropriate locations:

Platform Configuration Path
Linux ~/.config/PyIPTV/pyiptv_settings.json
Windows %APPDATA%/PyIPTV/pyiptv_settings.json
macOS ~/.config/PyIPTV/pyiptv_settings.json

Available Settings

  • Theme Mode - System auto-detection, light, or dark themes
  • Buffering - Adjustable buffering time for smooth playback
  • Performance - Options for handling large playlists
  • UI Preferences - Window geometry, splitter sizes, and more

๐Ÿ“ Playlist Format

PyIPTV supports standard M3U playlist format with extended information:

#EXTM3U
#EXTINF:-1 tvg-id="channel1" tvg-name="Channel Name" tvg-logo="logo.png" group-title="Category",Channel Display Name
http://example.com/stream1.m3u8
#EXTINF:-1 tvg-id="channel2" tvg-name="Another Channel" group-title="Movies",Movie Channel
http://example.com/stream2.m3u8

๐Ÿ—๏ธ Architecture

PyIPTV follows a modular architecture design:

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ Main Applicationโ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ UI Components   โ”‚
โ”‚ Playlist Managerโ”‚
โ”‚ Media Player    โ”‚
โ”‚ Settings Managerโ”‚
โ”‚ Theme Manager   โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

Components

  • Main Application - Entry point and application lifecycle management
  • UI Components - Modular Qt widgets for different functionality
  • Playlist Manager - M3U parsing and playlist management
  • Media Player - Qt6 multimedia integration
  • Settings Manager - Configuration persistence
  • Theme Manager - System-aware theming

๐Ÿ› ๏ธ Development

Setting up Development Environment

git clone https://github.com/dmarkey/PyIPTV.git
cd PyIPTV
pip install -e ".[dev]"

Running Tests

pytest

Code Formatting

black pyiptv/
isort pyiptv/

Linting

flake8 pyiptv/

๐Ÿ”ง Troubleshooting

Common Issues

Issue Solution
Video playback problems Ensure Qt6 multimedia libraries are installed
Theme not applying correctly Check desktop environment compatibility
Performance issues with large playlists Adjust performance settings in configuration

Debug Mode

Run with debug information:

PYTHONPATH=. python -m pyiptv.main --debug

๐Ÿค Contributing

Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.

Development Guidelines

  • Follow PEP 8 style guidelines
  • Add tests for new features
  • Update documentation as needed
  • Ensure compatibility with supported Python versions

๐Ÿ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

๐Ÿ™ Acknowledgments

  • Most of the codebase for PyIPTV was generated by Claude Sonnet 4
  • Built with PySide6 - Qt for Python
  • Inspired by the need for a modern, cross-platform IPTV player
  • Thanks to the open-source community for tools and libraries

๐Ÿ“ž Support


โš ๏ธ Legal Notice

This software is for personal use with legally obtained IPTV content. Users are responsible for ensuring they have appropriate rights to access any content streams.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyiptv-1.0.0.tar.gz (2.9 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pyiptv-1.0.0-py3-none-any.whl (2.9 MB view details)

Uploaded Python 3

File details

Details for the file pyiptv-1.0.0.tar.gz.

File metadata

  • Download URL: pyiptv-1.0.0.tar.gz
  • Upload date:
  • Size: 2.9 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.3

File hashes

Hashes for pyiptv-1.0.0.tar.gz
Algorithm Hash digest
SHA256 aad59b4a5f86870ded432f1d0a90fd5bf600a22eceb539f6360c73a0bdd507d3
MD5 a1750b87ef4b220a69a03be348856f33
BLAKE2b-256 637f3c86c3700a65bf77b52d7541e20401f99b5a15ca7d4928cd3d85370e333e

See more details on using hashes here.

File details

Details for the file pyiptv-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: pyiptv-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 2.9 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.3

File hashes

Hashes for pyiptv-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 63572bb40e0251995e0d430ce160a62fa6f5b468d10ea93a3c512e1bed424363
MD5 a470120dd270f32cb122344d49a724f8
BLAKE2b-256 f81aabe6451ffd301d03fca608bea2ec26f3b14d0f946df13912b8e2c405ceb9

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page