GuangYu is a cross-platform IPTV player and channel toolbox for Windows, macOS, Linux, and Android, built on MPV and PySide6 and covering scanning, cleanup, subscriptions, and playback.
- 50.0.6.9
- Published at
- 16h ago
- 247
- Stars
- 562
- Download
- Synced at
- 6m ago
Latest release
50.0.6.9Nov 13, 2026, 01:19 AMDownloads slow? Switch the source anytime above
README
Project Overview
When you need to turn hundreds of raw live-stream entries into a usable channel list and keep them playing reliably, GuangYu provides one workflow from scanning and cleanup to viewing. The desktop build uses Python 3.8+ and PySide6 6.4+, with MPV as the playback engine and FFprobe for stream probing; the Android build pairs a Kotlin Compose shell with a Python 3.11 backend embedded through Chaquopy. The interface is bilingual and uses a liquid-glass visual style.
| Item | Value |
|---|---|
| Platform | Windows / macOS / Linux / Android 9+ |
| Language | Python + Kotlin |
| Playback engine | MPV + FFprobe |
| UI framework | PySide6 6.4+ |
| Version | 50.0.6.1 |
Scanning and viewing live in one window, so channel cleanup no longer needs a second tool.
Key Features
- MPV engine: FCC fast channel switching, hardware decoding, five HDR modes, WCG wide color, and minterpolate motion compensation
- Catch-up: five catchup types named
default,append,shift,flussonic, andxtream, with time-variable substitution and timezone offsets - EPG matching: parses both XMLTV and JSON guides, matching by
tvg-idthentvg-namethen channel name - Logo system: more than 400 built-in matching rules with online loading, async downloads, local caching, and High-DPI support
- Channel scanning: scans IP ranges such as
239.3.1.[1-100]:8000, with configurable timeout and thread count plus batch validation - Subtitle aggregation: queries OpenSubtitles, SubHD, and SubtitleCat together, with IMDB-based Chinese search
- Audio tools: a 10-band equalizer, seven 3D visualization styles, and A/V sync monitoring with a waveform
- Multi-screen preview: 4-screen and 9-screen layouts alongside bookmarks, resume playback, and clip export
Interface and Controls
- Three-column layout: EPG panel on the left, playback area in the center, channel list on the right, and transport controls at the bottom
- Panel toggles:
Efor the guide,Lfor the channel list,Mfor the control panel, andYto hide or restore all floating panels - Common shortcuts:
Ctrl+Oopens a playlist,Ctrl+Ssaves,F11goes full screen,Up/Downchanges channels, and the wheel adjusts volume - List interaction: double-click a channel on the right to play, and the search box filters name, URL, and group in real time (
Ctrl+F) - Theme switching: 3 color modes by 7 visual styles produce 21 combinations that apply instantly
Target Audience
- Users running self-hosted IPTV sources who need batch channel cleanup
- Advanced users managing many subscriptions and EPG URLs
- People who want the same viewing experience on TV and desktop
- Operators who export channel lists for delivery
Quick Start
Desktop
- Install dependencies with
pip install -r requirements.txt - Put MPV and FFmpeg into
mpv/andffmpeg/at the project root, usinglibmpv-2.dllandffprobe.exeon Windows - Start the app with
python main.py - Open an
.m3u,.m3u8, or.txtlist withCtrl+O, or drag the file into the window - Add playlist and EPG URLs under Tools → Subscription Settings; click to enable and double-click to edit
Android
- Enter the
android/directory and run./gradlew.bat assembleRelease - Add
-PtargetAbi=arm64-v8afor a single ABI, or choosearmeabi-v7a,x86_64, orx86 - Install over the old build with
adb install -g app/build/outputs/apk/release/app-release.apk; subscriptions and settings are preserved - All data is stored under
/sdcard/ISEP/and survives APK updates
Core Advantages
- Scan-to-play loop: scanning, batch validation, cleanup, and playback share one channel dataset, and results export directly to M3U / TXT / Excel
- Tunable playback: hardware decoding, HDR, upscaling, and interpolation are toggled in the UI instead of config files
- One backend, two clients: the Android build reuses the desktop Python backend, keeping subscriptions, EPG, and playback behavior aligned
- Local-first data: channels, favorites, resume points, and bookmarks are written to local files without a cloud account
System Requirements
| Item | Requirement |
|---|---|
| OS | Windows 10/11, macOS 10.15+, Linux x86_64/ARM64, Android 9.0 (API 28) or later |
| Python | 3.8+ on desktop, 3.11 embedded on Android |
| UI framework | PySide6 6.4+ |
| Memory | 2 GB or more |
| External dependencies | MPV and FFmpeg; install libmpv-dev on Linux or run brew install mpv ffmpeg on macOS |
Notes
- Bring your own binaries: the desktop
mpv/andffmpeg/folders are not tracked, and playback or stream probing fails withoutlibmpvandffprobe - Android data directory: configuration is written to
/sdcard/ISEP/config.ini, falling back to the app external directory and then internal storage when that path is unavailable - Built-in web server:
server_main.pylistens on127.0.0.1:8080by default, and--portchanges it - Android ABI split: without
-PtargetAbithe build contains onlyarm64-v8aandarmeabi-v7a, so x86 targets must be requested explicitly
Release history
Sort