tvdinner plays M3U/M3U8 IPTV playlists — or logs straight into an
Xtream Codes panel, a Stalker Portal, or an HDHomeRun tuner, or
browses a Plex Media Server's library, or plays a local movie
file or YouTube URL directly — through mpv, with a
TiviMate-style on-screen EPG overlay and a full program guide
built from your XMLTV data — channels, timeline, poster art,
favorites, DVR-style recording, and more, all from the terminal.
tvdinner isn't just "play this URL" — it builds a proper viewing experience around whatever playlist and EPG you already have.
A TiviMate-style grid: channels down the left, a scrollable timeline across the top, and a live "now" marker so you always know where you are.
Current/next programme info on every channel switch, with poster art, a live progress bar, and video/audio quality badges — resolution, codec, fps, HDR.
Falls back through tvg-id suffixes and normalized display names to match real playlists against real guides, plus clock-shift correction (global or per-channel) for feeds with wrong times.
Mark any channel with a heart from the guide or while playing, and jump straight to a favorites-only view whenever you want it.
Type to filter the guide by channel name or category — including playlists that tag one channel under several groups at once.
Save playlists with an optional EPG URL and default channel, then
launch any of them from an interactive picker instead of retyping a
URL — or manage the list from a script with
tvdinner bookmarks list / add / edit / remove.
No M3U export needed — give tvdinner your Xtream Codes username, password, and panel address directly and it fetches the live channel list and EPG for you.
Also speaks Stalker Portal (Ministra) — the protocol MAG set-top boxes use. Give tvdinner your portal address and MAC and it logs in and fetches the live channel list directly.
Point tvdinner at an HDHomeRun network tuner's address on your LAN and it fetches the live channel lineup directly — no login, no separate M3U export. Pulls in guide data too, for tuners with a HDHomeRun DVR subscription.
Browse a Plex server's movie and TV libraries right from tvdinner, poster art and all — drill into shows, seasons, and episodes, search the whole server at once, and play with a poster/synopsis/progress overlay showing container, bitrate, and every audio/subtitle track, direct from the file. Chapter markers, a "Skip Intro"/"Skip Credits" prompt, and an auto-play "Up Next" countdown between episodes round it out.
Point tvdinner straight at a movie file on disk and it plays directly, no playlist involved — its identity is guessed from the filename, and a TMDB token turns on the same poster/synopsis/ rating overlay every other source gets.
Play a plain YouTube URL through mpv's own yt-dlp integration, info overlay included — title, uploader, and thumbnail come free from YouTube itself, plus an optional TMDB-powered poster/ synopsis/rating for videos that turn out to be a real movie.
Back up EPG shifts, favorites, and bookmarks into a single archive for safekeeping or moving to a new machine, and restore them just as easily.
Pause a live channel and it keeps buffering in the background — resume (or rewind/fast-forward within a configurable window, 10 minutes by default) right from where you paused, not the live edge. A one-key sleep timer (15/30/60/90 minutes) pauses things for you if you drift off first.
Hardware video decoding turns on automatically wherever mpv
considers it safe, falling back to software cleanly when it isn't,
and mpv's own high-quality gpu-hq scaling profile is
always on. Add a custom GLSL shader (Anime4K, FSRCNNX, etc.) or
motion interpolation on top with a flag — both fully opt-in.
Shrink the window into a small always-on-top corner while you use other apps, then bring it back to full size with the same key.
Cast whatever's playing — a live channel, a VOD item, or a Plex movie/episode — straight to a Chromecast device on your LAN with one key. Local playback pauses while you cast, and resumes right where it left off when you disconnect.
Record any stream to disk on demand, or schedule a specific programme straight from the guide — tvdinner switches channels and starts/stops automatically, DVR-style, with a badge marking what's queued and a dedicated view for everything upcoming. Browse past recordings by date and play them back without leaving the app.
Opt-in gold star ratings on movie programmes in the guide grid and details popup, sourced from TMDB and matched by title/year -- fetched in the background and cached for weeks, so guide rendering never waits on the network.
ENTER/MENU bindings work with cheap
IR/BLE air-mouse remotes, so tvdinner is just as comfortable on a
couch-facing HTPC as at a desk — right down to confirming prompts
like "Skip Intro" with the remote's own OK button. A built-in
keyboard-shortcuts overlay keeps every binding one keypress away.
Native .deb/.rpm packages on Linux, and
a self-contained installer for Windows that bundles its own mpv,
plus MIT-licensed source you can read, fork, or contribute
to.
Real captures, not mockups.
Every release ships native Linux packages and a self-contained installer for Windows, built straight from the same source.
One installer that bundles its own mpv — no separate Python or mpv
step. From 1.43.0 the installer and the tvdinner.exe it
installs are both signed with a
Certum certificate, though
SmartScreen can still warn until a new certificate builds
reputation.
Pulls in mpv, python3-mpv,
python3-pil, and python3-requests
automatically, and registers tvdinner as an opener for
.m3u / .m3u8 files.
sudo apt install ./tvdinner_<version>_all.debDownload .deb
Needs mpv installed separately, plus
python-mpv via pip — see the README for the exact
command your distro needs. Also registers tvdinner as an
.m3u / .m3u8 opener.
sudo dnf install ./tvdinner-<version>.noarch.rpmDownload .rpm
Prefer to run it from source, or want the full command-line reference (every flag and keybinding)? See the README — or the wiki for a deeper walkthrough of each source (M3U, Xtream Codes, Stalker Portal, HDHomeRun, Plex, local files, YouTube) and feature.