hassan@alsallam:~/projects/qumra$ bat README.md

Qumraقُمرة

Native Linux IPTV and VOD streaming client built with GTK4 and libmpv

Shipped · in daily use2026linux-appsource: private · ask me
Home screen with cinematic poster rows
Home screen with cinematic poster rows
Movies catalog in a poster grid
Movies catalog in a poster grid
Movie detail page with a blurred backdrop and metadata
Movie detail page with a blurred backdrop and metadata
Live TV channel list with the player
Live TV channel list with the player
Series catalog in a poster grid
Series catalog in a poster grid

What it is

I built Qumra because I wanted a native Linux IPTV and video-on-demand client that felt as polished as the best apps on other platforms, instead of an Electron wrapper. It is named after the camera obscura, the Arabic root of the word camera.

The app is a Cargo workspace split in two: qumra-core holds all the headless logic (Xtream and M3U providers, models, caching, downloads) with no GUI, and the qumra crate is the GTK4 and libadwaita front end. Video runs through libmpv embedded in a GTK4 GLArea using mpv’s OpenGL render API, which is what makes HLS playback smooth on the Intel iGPU under Wayland. Catalog data is cached in SQLite and provider passwords go to the Secret Service keyring, never to disk.

It is my daily driver now. Beyond the core it grew live-buffer handling, scheduled DVR recordings, viewing stats, collections, and a phone remote that runs a small LAN server with QR pairing.

Features

Stack

RustGTK4libadwaitalibmpvtokioSQLitereqwest

~24,000 lines of Rust · 187 tests · 65 commits