StreamForge is a modern, cinematic IPTV player built with Qt 6 + QML + libmpv. It supports Xtream Codes, Live TV, VOD, EPG, catch‑up, recording, downloads, and 10‑foot‑friendly navigation.
- Live TV + VOD browsing
- EPG (XMLTV) with 7‑day grid and program details
- Catch‑up (timeshift) playback
- Recording (live) + auto‑stop timer
- VOD downloads with queue panel
- Favorites, search, channel number jump
- Media keys + remote‑style navigation
- Cinematic UI + AppImage packaging
Build dependencies:
- Qt 6.4+ (Core, Gui, Qml, Quick, QuickControls2, Network, 5Compat)
- libmpv-dev
- CMake 3.25+
- pkg-config
Ubuntu/Debian packages:
sudo apt-get install -y qt6-base-dev qt6-declarative-dev qt6-quickcontrols2-dev qt6-5compat-dev libmpv-devAppImage packaging:
- linuxdeploy
- appimagetool
cmake -S . -B build
cmake --build build
./build/streamforge./scripts/build-appimage.shThe AppImage will be placed in build/.
- Linux AppImage builds by default.
- Windows build requires a
MPV_URLsecret that points to a libmpv dev archive (withinclude/+lib/folders). If not set, the Windows job is skipped.- You can use official libmpv dev builds (e.g., from
mpv-player/mpvcommunity builds for Windows) or host your own compiled archive.
- You can use official libmpv dev builds (e.g., from
- Release workflow: push a tag like
v0.1.0to publish AppImage + Windows zip + NSIS installer.
Config is stored locally in config/local.json (gitignored). Example:
{
"iptv": {
"provider_url": "http://yourprovider.com",
"username": "YOUR_USER",
"password": "YOUR_PASS",
"proxy": "http://127.0.0.1:1082",
"refresh_minutes": 1440,
"live_container": "m3u8",
"download_dir": "",
"record_minutes": 120
}
}Notes:
- StreamForge supports XMLTV-based EPG with guide grid, programme details, and channel now-playing metadata.
- Xtream Short EPG may still be used as a fallback for the currently active channel where needed.
- live_container: Choose
m3u8,ts, orm3uin Settings. - download_dir: If empty, uses the system Downloads folder.
- Arrow keys: navigate
- Enter/OK: select
- 0–9: channel number jump
- Media keys: play/pause/next/prev/stop
- PgUp/PgDn: channel zap
- Left/Right on player: seek
- Recording uses mpv
stream-record(writes.ts). - Catch‑up uses Xtream timeshift URLs (requires provider support).
MIT — see LICENSE.