Releases: slimture/dopeIPTV
Release list
v0.7.0
dopeIPTV 0.7.0
The timeshift & catch-up release: scrub back into a channel's archive on a
live timeline, pause live TV, or jump to a specific past programme — plus
a reminders manager, search everywhere, customizable keyboard
shortcuts, and rock-solid video by default.
Highlights: live timeline to scrub the archive · DVR pause · play a specific past programme · archive-depth learning · reminders manager · category & left-column search · customizable keyboard shortcuts · software decode by default (hardware opt-in) · editable recordings.
Full release notes — click to expand
Timeshift, catch-up & DVR
- Live timeline on timeshift channels — scrub back into the provider's archive and watch what already aired.
- DVR-style pause — pause live TV and resume behind live; the player shows how far behind live you are and drops the LIVE tag the moment you pause.
- Pick a specific past programme from the guide and play just that show, with a seek bar clamped to the programme's own length.
- Archive-depth learning — the app learns how far back each channel really reaches, adapts the “go back” span to it, and recovers gracefully from over-deep requests instead of dropping the channel.
- Catch-up from History, a Go-live button, amber timeshift markers, and arrow-key scrubbing (fine-seek inside a segment, Shift+arrow for a coarse step).
- Per-channel reset — right-click a timeshift channel to clear its learned archive state.
Reminders & guide
- Reminders manager — find, review and multi-delete programme reminders in one place.
- Programme search across the whole guide — find a show by name anywhere in the EPG.
- Configurable “upcoming programmes” in the detail pane (default 5, adjustable), plus a guide Close button and deeper EPG fetches.
Search everywhere
- Category search — match category names and the channels inside them, with smart ranking.
- Left-column search in Favorites, Watch Later, Watched, Recordings and History.
- Jump-to-now-playing also selects the playing channel's category.
Keyboard & navigation
- Customizable keyboard-shortcuts editor with sensible per-OS defaults.
Video & playback
- Software decoding is now the default — like standalone mpv. Modern CPUs handle even 4K 10-bit HEVC/HDR comfortably, and it's immune to the GPU/driver render hazards that could black out hardware-decoded video with subtitles (e.g. the nvidia-open stack).
- Hardware decoding is an opt-in setting (Settings → Playback → Video), with mpv's software fallback as a safety net for genuine decoder failures.
- Video filters — optional deinterlace, sharpen and HDR tone-mapping, plus a Video menu in the in-player options.
- Faster channel switching via a light stream probe for live zapping.
Recordings
- Editable recording title & description, and recording stops cleanly when you switch the channel it's capturing.
Settings & polish
- Playback settings are grouped and scrollable, and scrolling the page never changes a control.
- Themed spin boxes (fixes the white-on-white “upcoming count” box) and a tidy Maintenance row.
- Fixed an exit segfault on newer Python; on macOS, arrow-key scrubbing works and Picture-in-Picture stays floating; audio no longer goes silent after switching a movie to a TV channel.
dopeIPTV 0.6.4
A stability-and-housekeeping release: 4K plays smoothly, the app no longer
bloats or slows down over time, and live TV recovers from drops on its own
— plus continue watching, EPG reminders, and a discreet update check.
Highlights: smooth 4K playback · caches that can't bloat over time · live auto-reconnect (with a toggle) · double-click to play TV · continue watching & reminders · discreet update badge.
Full release notes — click to expand
Smooth 4K & playback stability
- Fixed the periodic 4K stutter. The resume-position save was rewriting the whole multi-MB settings file every 12 s — it now lives in its own small file, so playback is never hitched by it.
- Fixed the video stutter when dragging the volume slider (and other quick settings): the big TMDB/Trakt caches shared that same file, so they've moved to a dedicated
cache.iniand small writes are instant. - Hardware decoding on by default (
hwdec=auto-copy-safe) for smooth 4K across GPUs, withDOPEIPTV_HWDEC/DOPEIPTV_DEMUX_MAX/DOPEIPTV_VIDEO_SYNCescape hatches for tinkerers. - Audio no longer goes silent after switching a movie to a TV channel (the audio track is reset per stream).
No bloat or slow-down over time
- TMDB caches are now capped so months of browsing can't grow them without bound.
- EPG guides are gzip-compressed on disk (hundreds of MB → tens) — both the raw guide and the parsed index.
- Orphaned EPG caches are cleaned up at startup — guides for playlists you've removed no longer pile up (this alone can reclaim gigabytes).
- New Settings → Playback → "Refresh guide now" and "Clear EPG cache".
Live TV
- Live streams reconnect on drop instead of freezing on the last frame.
- "Auto-reconnect live streams" toggle — turn it off on a single-connection/shared account so the app doesn't grab the connection back from another device.
- Zap conveniences: a "last channel" key and type-a-number to jump.
- Double-click to play a channel by default (single-click / arrow-key zapping is now an opt-in setting).
- Account status panel: expiry, days left, and connections for the selected provider.
Continue watching & Recently added
- Continue watching for partly-watched movies and episodes, with the series' artwork + name on episode rows — shown under both Movies and Series.
- Recently added — newest Movies and Series first.
EPG & reminders
- Programme reminders — get notified when a show starts, then tune straight in.
- Clearer loading: a centred spinner and a label that names exactly what's loading.
Player extras
- Next-episode button and auto-play the next episode at the end.
- Sleep timer — stop playback after a chosen number of minutes (presets or a custom value).
- Stats-for-nerds fixes (no more blank rows).
Trakt & Settings
- Simpler Trakt connect (connect via browser).
- Watched rows are named from Trakt's own title when TMDB has no match.
Polish & fixes
- Discreet update badge on the Settings button when a newer release is out (once-a-day background check; opt out in Settings → Interface).
- Sidebar rail collapses/expands smoothly within a single drag and snaps clean on release.
- Version numbers realigned, a latent startup crash fixed, and debug scaffolding removed.
Full changelog: v0.6.3...v0.6.4
v0.6.4
dopeIPTV 0.6.4
A stability-and-housekeeping release: 4K plays smoothly, the app no longer
bloats or slows down over time, and live TV recovers from drops on its own
— plus continue watching, EPG reminders, and a discreet update check.
Highlights: smooth 4K playback · caches that can't bloat over time · live auto-reconnect (with a toggle) · double-click to play TV · continue watching & reminders · discreet update badge.
Full release notes — click to expand
Smooth 4K & playback stability
- Fixed the periodic 4K stutter. The resume-position save was rewriting the whole multi-MB settings file every 12 s — it now lives in its own small file, so playback is never hitched by it.
- Fixed the video stutter when dragging the volume slider (and other quick settings): the big TMDB/Trakt caches shared that same file, so they've moved to a dedicated
cache.iniand small writes are instant. - Hardware decoding on by default (
hwdec=auto-copy-safe) for smooth 4K across GPUs, withDOPEIPTV_HWDEC/DOPEIPTV_DEMUX_MAX/DOPEIPTV_VIDEO_SYNCescape hatches for tinkerers. - Audio no longer goes silent after switching a movie to a TV channel (the audio track is reset per stream).
No bloat or slow-down over time
- TMDB caches are now capped so months of browsing can't grow them without bound.
- EPG guides are gzip-compressed on disk (hundreds of MB → tens) — both the raw guide and the parsed index.
- Orphaned EPG caches are cleaned up at startup — guides for playlists you've removed no longer pile up (this alone can reclaim gigabytes).
- New Settings → Playback → "Refresh guide now" and "Clear EPG cache".
Live TV
- Live streams reconnect on drop instead of freezing on the last frame.
- "Auto-reconnect live streams" toggle — turn it off on a single-connection/shared account so the app doesn't grab the connection back from another device.
- Zap conveniences: a "last channel" key and type-a-number to jump.
- Double-click to play a channel by default (single-click / arrow-key zapping is now an opt-in setting).
- Account status panel: expiry, days left, and connections for the selected provider.
Continue watching & Recently added
- Continue watching for partly-watched movies and episodes, with the series' artwork + name on episode rows — shown under both Movies and Series.
- Recently added — newest Movies and Series first.
EPG & reminders
- Programme reminders — get notified when a show starts, then tune straight in.
- Clearer loading: a centred spinner and a label that names exactly what's loading.
Player extras
- Next-episode button and auto-play the next episode at the end.
- Sleep timer — stop playback after a chosen number of minutes (presets or a custom value).
- Stats-for-nerds fixes (no more blank rows).
Trakt & Settings
- Simpler Trakt connect (connect via browser).
- Watched rows are named from Trakt's own title when TMDB has no match.
Polish & fixes
- Discreet update badge on the Settings button when a newer release is out (once-a-day background check; opt out in Settings → Interface).
- Sidebar rail collapses/expands smoothly within a single drag and snaps clean on release.
- Version numbers realigned, a latent startup crash fixed, and debug scaffolding removed.
Full changelog: v0.6.3...v0.6.4
v0.6.3
dopeIPTV 0.6.3
A stability-and-polish release: keyboard shortcuts across the player and
EPG guide, a calmer progress indicator, and a batch of playback
stability fixes — live streams reconnect on their own, a frozen picture
recovers, and moving the window no longer drops the stream. Behind the scenes
the app is now Flathub-ready (fully offline build) with fresh store
screenshots.
Highlights: keyboard shortcuts (player + EPG) · steadier progress indicator · auto-reconnect & stall recovery for live streams · no stream drop when moving the window · Flathub offline packaging.
Full release notes — click to expand
Keyboard shortcuts
- Global:
Ctrl+Gopens the EPG guide,Ctrl+Btoggles the sidebar rail,Ctrl+Shift+Mtoggles focus mode. - While the player is up:
Mmute,PPicture-in-Picture,Rrecord,Istream stats,←/→zap channels,↑/↓nudge the volume. Shortcuts stand down while you're typing in a search box. - In the EPG grid:
Njumps to now,Pto the playing channel,Enterplays the selected programme. - The full list lives in the Keyboard shortcuts section of the README.
Progress indicator
- The loading strip is now a steady indeterminate indicator instead of a percentage bar that could stick at "100%" or hang around after a load finished.
- A watchdog clears it automatically if a background job never reports back, so it can't get stuck on screen.
Playback stability
- Auto-reconnect — a live stream that drops on a network hiccup now retries quietly and keeps playing, instead of failing with "loading failed".
- Stall recovery — a watchdog notices a frozen picture (mpv idling mid-stream) and recovers it.
- No drop on window move — moving or reparenting the window (e.g. dragging between monitors) no longer tears down and rebuilds the video, which previously showed up as a stream failure.
- Longer network timeouts and mpv reconnect options for flakier providers.
Packaging
- Flathub-ready — the Flatpak manifest now builds fully offline from pinned, vendored Python wheels (only the running app needs the network, for streaming), plus a submission guide in
packaging/flatpak/FLATHUB.md. - Fresh store screenshots and an updated capture guide.
Full changelog: v0.6.2...v0.6.3
v0.6.2
dopeIPTV 0.6.2
A polish release: a collapsible sidebar, custom colours across the app, a
smarter M3U/EPG setup, and a batch of fixes — Picture-in-Picture no longer
quits the app, the colour picker no longer freezes, and the mini player keeps
its size after fullscreen.
Highlights: collapsible icon-rail sidebar · focus mode · custom colours for nav, categories, items & favourite folders · M3U auto-EPG · EPG grid marks timeshift channels & flags the playing one · click the logo to jump to what's playing.
Full release notes — click to expand
Sidebar & layout
- Collapsible sidebar — fold it down to a slim icon rail with the ☰ button or Ctrl+B, or just drag its divider: inward collapses to the rail, outward expands it again. You keep the TV/Movies/Series navigation as icons and reclaim the width for the content — handy on small screens.
- Solo category — a small disclosure arrow next to "Categories" collapses the list to only the active category (tidy for screenshots), without touching the navigation.
- Focus mode — the ⤢ button (or Ctrl+Shift+M) hides the whole content list for a rail-plus-player layout. A slim arrow strip on the player's edge brings the list straight back, so it can never get lost.
- The content list now has a minimum width, so dragging a divider can't accidentally hide it.
- Click the logo at the top of the sidebar to jump straight to whatever's playing — it switches section, opens "All", and selects the row.
Colours
- Left-column entries (TV … History) can each be given their own text and background colour — right-click an entry.
- Categories can be coloured too; a category's colour tints its own row in the left column.
- Individual channels, movies and series can be given a personal text/background colour from their right-click menu.
- Favourite folders can be coloured, and that colour applies to every favourite in the folder — a quick way to colour-code a whole group.
- Every colour choice has a Reset, and colours persist between sessions.
M3U & EPG
- Automatic EPG for M3U playlists — dopeIPTV now reads the
url-tvg/x-tvg-urlguide URL from a playlist's#EXTM3Uheader, so a plain M3U URL brings its programme guide with nothing extra to configure (an explicit per-playlist EPG URL still wins). - Gzipped XMLTV guides (
.xml.gz) are now decompressed transparently. - The EPG timeline grid flags the channel you're watching (with a "Playing" button to jump back to it), marks channels that have catch-up with a ⏪, outlines the programme you pick, and offers "Play this programme" for a finished slot on a timeshift channel.
Convenience
- Refresh playlist is now one right-click away on the TV / Movies / Series entries in the left column.
Fixes
- Picture-in-Picture — pressing the window's close button while in PiP now drops back to the normal mini player instead of quitting the whole app.
- Fullscreen / PiP — the panel widths are restored on the way out, so the mini player no longer comes back stretched wider than before.
- Colour picker — no longer freezes the app on some Linux setups (it now always uses the in-app dialog).
- Keep your place — opening Manage categories, or recolouring a category, no longer snaps the category list back to the top; your selection and scroll position stay put.
- The version shown in About (and in the artifact filenames) is correct again.
Full changelog: v0.6.0...v0.6.2
v0.6.1
dopeIPTV 0.6.1
A polish release: a collapsible sidebar, custom colours across the app, a
smarter M3U/EPG setup, and some important fixes (Picture-in-Picture no longer
quits the app, the colour picker no longer freezes).
Highlights: collapsible icon-rail sidebar · focus mode · custom colours for nav, categories, items & favourite folders · M3U auto-EPG · EPG grid flags the playing channel · PiP-close & colour-picker fixes.
Full release notes — click to expand
Sidebar & layout
- Collapsible sidebar — fold it down to a slim icon rail with the ☰ button or Ctrl+B, or just drag its divider: inward collapses to the rail, outward expands it again. You keep the TV/Movies/Series navigation as icons and reclaim the width for the content — handy on small screens.
- Solo category — a small disclosure arrow next to "Categories" collapses the list to only the active category (tidy for screenshots), without touching the navigation.
- Focus mode — the ⤢ button (or Ctrl+Shift+M) hides the whole content list for a rail-plus-player layout. A slim arrow strip on the player's edge brings the list straight back, so it can never get lost.
- The content list now has a minimum width, so dragging a divider can't accidentally hide it.
Colours
- Left-column entries (TV … History) can each be given their own text and background colour — right-click an entry.
- Categories can be coloured too; a category's colour tints its own row in the left column.
- Individual channels, movies and series can be given a personal text/background colour from their right-click menu.
- Favourite folders can be coloured, and that colour applies to every favourite in the folder — a quick way to colour-code a whole group.
- Every colour choice has a Reset, and colours persist between sessions.
M3U & EPG
- Automatic EPG for M3U playlists — dopeIPTV now reads the
url-tvg/x-tvg-urlguide URL from a playlist's#EXTM3Uheader, so a plain M3U URL brings its programme guide with nothing extra to configure (an explicit per-playlist EPG URL still wins). - Gzipped XMLTV guides (
.xml.gz) are now decompressed transparently. - The EPG timeline grid flags the channel you're currently watching, and a "Playing" button jumps the board back to it after you've scrolled down a long line-up.
Convenience
- Refresh playlist is now one right-click away on the TV / Movies / Series entries in the left column.
Fixes
- Picture-in-Picture — pressing the window's close button while in PiP now drops back to the normal mini player instead of quitting the whole app.
- Colour picker — no longer freezes the app on some Linux setups (it now always uses the in-app dialog).
- Keep your place — opening Manage categories, or recolouring a category, no longer snaps the category list back to the top; your selection and scroll position stay put.
Full changelog: v0.6.0...v0.6.1
v0.6.0
dopeIPTV 0.6.0
A big feature release focused on getting started, Trakt, the EPG, and polish.
Getting started
- Try it without a provider — a "🎬 Demo channels" button on the welcome
screen loads a few free public test streams so you can exercise the whole
app before entering any credentials. - M3U playlists — alongside Xtream Codes you can now add any free/legal
.m3uplaylist URL (e.g. iptv-org). Pick the type in the playlist dialog or
the onboarding wizard. - Onboarding wizard — full in-window welcome with language pick, a short
feature tour, and Esc to dismiss.
Trakt — one click, zero setup
- Sign in with Trakt now opens your browser, you click "Yes", and you're
connected — no codes, no manual API keys (dopeIPTV ships its own registered
app; power users can still bring their own in Settings).
Watched
- Movies and episodes are auto-marked watched once you've seen ~90%, in
the local layer — the badge appears without Trakt, and syncs up to Trakt
when connected.
Favorites
- Unified folders across Channels, Movies and Series: a plain
"Add to favorites", an "Add to folder" submenu, and create/rename/remove
folders from the sidebar's right-click menu.
EPG
- New horizontal timeline grid: colour-coded channel rows, programmes as
blocks, a live "now" line, and pinned time header + channel column. Click to
select, double-click to play, right-click to record a programme. - Timeshift channels open the board up to 48h into the past with catch-up
playback of finished programmes; a "Now" button jumps back to the present. - From Favorites the guide is scoped to your favorite channels.
Player & windows
- Adaptive first-run window sizing to your actual display; a larger,
letterbox-free mini player that scales with the screen. - Picture-in-Picture always-on-top on Wayland (via the title-bar menu),
plus an opt-in "Run via X11 backend" for a frameless, always-on-top PiP with
right-click-on-video. - Opening an external player (mpv/VLC) now asks first if the mini player is
busy, so it won't trip single-connection accounts.
Other
- About dialog: version, an automatic update check that shows the newest
release's notes and a download link, and TMDB attribution. - Recordings: a total recordings-folder size cap that refuses new
recordings once reached. - Tighter section headers, clearer EPG scrollbars, and lower memory use
(bounded metadata/artwork caches).
Full Changelog: v0.5.0...v0.6.0
v0.5.0
Docs: move supplementary docs under docs/ Keep README.md, LICENSE and AGENTS.md at the repo root (the conventional landing/licence/agent-tool locations) and move the rest of the developer documentation into docs/: docs/ARCHITECTURE.md docs/DEVELOPER_NOTES.md docs/FEATURES.md docs/THIRD-PARTY-LICENSES.md Update the README and AGENTS cross-links to the new paths. No build or packaging file referenced these docs, so nothing else changes. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Pa1PFo7EpSA5A3brHTPmEs
v0.4.4
Bump to 0.4.4 Ship the improvements that landed after the v0.4.3 tag: the EPG-index / image-cache memory cuts, the ARM64 Linux builds, and the main-window refactor. Move the memory notes from the 0.4.3 release entry (which shipped without them) to a new 0.4.4 entry. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Pa1PFo7EpSA5A3brHTPmEs
v0.4.3
DopeIPTV pre-release 0.0.1-alpha
Follow-up features on top of the threading fixes from PR #1.
Key Changes
Movie & series details in the detail panel (previously empty outside live mode):
Movies: fetches get_vod_info and shows plot, genre, cast, director, release date, duration, and rating
Series: same via get_series_info; episodes show their own plot directly
Responses are cached per title; the EPG area always shows a loading note, a "no EPG" message, or an error message instead of empty space
EPG fallback chain and skewed-timestamp tolerance:
get_short_epg → get_simple_data_table → the provider's XMLTV guide (xmltv.php)
New XmltvGuide downloads and indexes the XMLTV feed once per session in a background thread, matching channels by epg_channel_id with a normalized-name fallback; only entries newer than 3 hours back are kept to bound memory
XMLTV entries are delivered in the Xtream entry format but flagged _plain so titles aren't mistakenly base64-decoded
If all EPG entries lie in the past (server-side timezone bug), the latest entries are shown anyway with dates and a note; upcoming programs are sorted by start time
Favorites in user-defined groups:
New ⭐ Favoriter tab; groups appear in the category list, "Alla" shows the deduplicated union
Right-click a channel → "Lägg till i favoritgrupp" (existing group or a new one via dialog); in the favorites view, right-click to remove a channel or a whole group
Stored as JSON in QSettings; playback and EPG work exactly like live mode
Verification
Exercised headless (offscreen QPA) against a mock Xtream server covering: movie info rendering, all three EPG fallback steps, past-only timestamps, a channel with no EPG anywhere, and the favorites flow (add, dedupe, group view, stream URL, removal, persistence).