Skip to content

ryanbr/xtream_rust

ย 
ย 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Xtreme IPTV Player - Rust Edition

A fast, lightweight, cross-platform IPTV player with Xtream Codes API support built in Rust.

Platform Language License npm

Features

  • ๐Ÿ” Xtream Codes API - Full support for login, live TV, movies, and series
  • ๐Ÿ“บ Live TV - Browse categories and play live streams
  • ๐ŸŽฌ Movies & Series - Browse VOD content with seasons/episodes
  • โญ Favorites - Star your favorite channels for quick access
  • ๐Ÿ“š Address Book - Save multiple server credentials
  • ๐Ÿ” Search - Filter channels and content
  • ๐ŸŽจ Dark/Light Mode - Toggle UI theme
  • ๐ŸŽฎ Hardware Acceleration - GPU-accelerated video decoding
  • ๐ŸŒ User Agent Spoofing - 35+ preset user agents
  • ๐Ÿ“ถ Connection Quality Presets - Optimized buffering for your connection
  • ๐Ÿ–ฅ๏ธ Multi-Player Support - VLC, mpv, ffplay, and more
  • ๐Ÿ’พ Save State - Remember login and settings
  • ๐Ÿ“‹ M3U Support - Parse and play M3U/M3U8 playlists
  • ๐Ÿ–ฑ๏ธ Single Window Mode - Auto-close previous player

Screenshots

xtremeip-screen

Supported Platforms

Platform Architecture Status Binary
Windows x64 (Intel/AMD) โœ… Optimized xtreme_iptv_windows_x64.exe
Windows ARM64 (Snapdragon) โœ… Optimized xtreme_iptv_windows_arm64.exe
Linux x64 (Intel/AMD) โœ… Optimized xtreme_iptv_linux_x64
Linux ARM64 (RPi, Snapdragon) โœ… Optimized xtreme_iptv_linux_arm64
Linux RISC-V 64 โœ… Optimized xtreme_iptv_linux_riscv64
macOS x64 (Intel) โœ… Optimized xtreme_iptv_macos_x64
macOS ARM64 (Apple Silicon) โœ… Optimized xtreme_iptv_macos_arm64
macOS Universal โœ… Fat Binary xtreme_iptv_macos_universal

CPU Optimizations

Platform Optimizations
Windows/Linux x64 AVX, AVX2, BMI1, BMI2, FMA, LZCNT, POPCNT (x86-64-v3)
Windows/Linux ARM64 NEON, AES, SHA2, CRC32, LSE, FP16, DotProd (Snapdragon/Apple Silicon optimized)
Linux RISC-V 64 RV64GC (General + Compressed + Multiply + Atomic + Float + Double)
macOS x64 AVX, AVX2 (x86-64-v3)
macOS ARM64 Apple M1/M2/M3/M4 optimized (NEON, AES, SHA2, CRC32, LSE, FP16, DotProd)

Supported Hardware

Platform Devices
Windows ARM64 Snapdragon X Elite/Plus, Snapdragon 8cx, Microsoft SQ3, Surface Pro X
Linux ARM64 Raspberry Pi 4/5, NVIDIA Jetson, Apple Silicon (Asahi), Ampere Altra, AWS Graviton
Linux RISC-V StarFive VisionFive 2, SiFive HiFive, Milk-V Mars/Pioneer, LicheeRV
macOS ARM64 MacBook Air/Pro (M1/M2/M3/M4), Mac Mini, Mac Studio, iMac, Mac Pro
macOS x64 Intel MacBook, iMac, Mac Mini, Mac Pro (2012-2020)

Installation

Via npm (Easiest)

# Global install
npm install -g xtream-rust

# Run
xtreme-iptv

# Or run directly without installing
npx xtream-rust

Pre-built Binaries

Download from the Releases page.

Build from Source

Prerequisites

  • Rust 1.70+
  • For Windows cross-compile: mingw-w64
  • For Windows ARM64 cross-compile: llvm-mingw

Build Commands

# Linux x64
./build.sh linux

# Linux ARM64 (Raspberry Pi, Snapdragon, etc.)
./build.sh linux-arm

# Linux RISC-V 64
./build.sh linux-riscv

# Windows x64 (cross-compile from Linux)
./build.sh windows

# Windows ARM64 (cross-compile from Linux)
./build.sh windows-arm

# macOS x64 (Intel) - requires macOS
./build.sh macos

# macOS ARM64 (Apple Silicon) - requires macOS
./build.sh macos-arm

# macOS Universal binary (x64 + ARM64) - requires macOS
./build.sh macos-universal

# All Linux platforms
./build.sh all-linux

# All Windows platforms
./build.sh all-windows

# All macOS platforms (requires macOS)
./build.sh all-macos

# Everything (all platforms)
./build.sh everything

# Show help
./build.sh help

Install Dependencies (Linux)

# Ubuntu/Debian - x64 cross-compile tools
sudo apt install mingw-w64

# Ubuntu/Debian - ARM64 cross-compile tools
sudo apt install gcc-aarch64-linux-gnu

# Ubuntu/Debian - RISC-V cross-compile tools
sudo apt install gcc-riscv64-linux-gnu

# Fedora
sudo dnf install mingw64-gcc gcc-aarch64-linux-gnu gcc-riscv64-linux-gnu

# Arch
sudo pacman -S mingw-w64-gcc aarch64-linux-gnu-gcc riscv64-linux-gnu-gcc

macOS Cross-Compilation (from Linux)

To cross-compile for macOS from Linux, you need OSXCross:

# Clone OSXCross
git clone https://github.com/tpoechtrager/osxcross
cd osxcross

# Download Xcode SDK (requires Apple Developer account)
# Place SDK in osxcross/tarballs/

# Build OSXCross
./build.sh

# Add to PATH
export PATH="$PWD/target/bin:$PATH"

Alternatively, build natively on a Mac for best results.

Usage

Quick Start

  1. Launch the application
  2. Enter your Xtream Codes server details:
    • Server: http://yourserver.com:port
    • Username: your username
    • Password: your password
  3. Click Login
  4. Browse Live TV, Movies, or Series
  5. Double-click a channel to play

Player Configuration

Enter your preferred media player in the Player field:

Player Value Notes
VLC vlc Auto-detected on Windows
mpv mpv Recommended, best performance
ffplay ffplay or leave empty Default player
Custom Full path e.g., C:\Program Files\VLC\vlc.exe

Connection Quality Presets

Preset Buffer Best For
โšก Fast 2s Fiber, high-speed connections
๐Ÿ“ถ Normal 5s Standard broadband
๐Ÿข Slow 15s DSL, congested networks
๐Ÿฆฅ Very Slow 30s Mobile, satellite, poor connections
โš™๏ธ Custom 1-120s Manual configuration

Hardware Acceleration

Enable HW Acceleration checkbox to use GPU video decoding:

Platform Decoder
Windows DXVA2 / D3D11VA
Linux VA-API / VDPAU
macOS VideoToolbox

Disable if you experience playback issues with certain streams.

Keyboard Shortcuts

Key Action
Enter Play selected channel
Escape Go back
Ctrl+F Focus search
Ctrl+S Save settings

Configuration

Settings are stored in:

Platform Location
Windows %APPDATA%\xtreme_iptv\config.json
Linux ~/.config/xtreme_iptv/config.json
macOS ~/Library/Application Support/xtreme_iptv/config.json

Config Options

{
  "external_player": "vlc",
  "buffer_seconds": 5,
  "connection_quality": "Normal",
  "dark_mode": true,
  "hw_accel": true,
  "single_window_mode": true,
  "save_state": true,
  "pass_user_agent_to_player": true
}

Troubleshooting

VLC won't start

  • Use full path: C:\Program Files\VideoLAN\VLC\vlc.exe
  • Or add VLC to system PATH

Video buffering/stuttering

  1. Increase buffer: Change Connection to Slow or Very Slow
  2. Try different player (mpv often performs better)
  3. Disable HW Acceleration if GPU issues

Hardware acceleration errors

hardware acceleration picture allocation failed
  • Uncheck HW Acceleration to use CPU decoding
  • Update GPU drivers

Stream won't play

  • Check User Agent settings
  • Try different User Agent preset
  • Verify stream URL works in browser

Building with Internal Player (Optional)

The internal FFmpeg player is optional and requires FFmpeg development libraries:

# Install FFmpeg dev libs (Linux)
sudo apt install libavcodec-dev libavformat-dev libavutil-dev libswscale-dev pkg-config clang

# Build with internal player
./build.sh linux --internal-player

Note: Internal player is video-only (no audio) and mainly for testing.

License

MIT License - See LICENSE for details.

Credits

  • Built with egui - Immediate mode GUI
  • eframe - Native framework
  • Rust community for excellent crates

Contributing

Contributions welcome! Please open an issue or PR.


Disclaimer: This software is for personal use with legally obtained IPTV subscriptions only. The developers are not responsible for misuse.

About

Xtream Rust IPTV Player

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Rust 96.6%
  • Shell 3.4%