Releases: disclosurez/Lumora
Release list
Lumora v4.5.1
Lumora v4.5.1
Live TV
- A dark scene no longer reads as an offline channel. The black-frame watchdog treated any sustained near-black picture as a dead feed and switched version mid-playback even while the channel was playing fine. A feed is now declared dead only when it is dark and static - successive samples are compared and under 1% of pixels may have moved.
Android Auto
- The driving disclaimer can be dismissed with a rotary controller. On head units without a touchscreen (Audi MMI and similar) the controller's press never reached the dialog: several hosts route input to the activity window rather than the dialog window, and some translate the press into a synthesized tap instead of a key event. Rotation, nudge, center-press and tap are now all intercepted at both windows, so any input dismisses the warning.
Installation
Download the APK below and install on your Android TV, Fire TV Stick, or phone.
Lumora v4.5
Lumora v4.5
Films & Series
- The Play button now starts the best copy of a title, not an arbitrary one. A film carried by several providers is one card with a version list behind it, and that list was ordered by whichever provider happened to load first - so a panel's SD repost could win over its own 4K feed purely by position. Versions are now ordered best-quality-first: resolution leads, a REMUX/BluRay tag only splits copies that tie on it, and a cam or telesync rip sorts below everything including untagged copies. Your own Jellyfin or Plex copy still stays pinned at the top.
- Lumora swaps to another copy when a film stutters or plays blurry. A bad copy does not stall, error, or go black - it just drops frames the device cannot decode in time, or turns out to be an upscaled SD encode behind an "HD" label, so nothing was watching for it. Lumora now notices both and moves along the quality ladder in the direction that helps - up for a blurry copy, down for one that stutters - keeping your position. It is bounded to two swaps per title, and picking a version by hand in the player settles it for good.
- Version chips are selectable again when a title is opened from Continue Watching or search. The version list was looked up only by the copy that headed the group, so opening any other copy showed no chips at all. The chips also now highlight the copy you actually opened, and the D-pad moves between Play and the chip row.
- Play and Download act on the copy you opened. Opening a film from Continue Watching or a search hit could show "Resume" with your position on one copy and then start a different file from zero. Both buttons now use the copy on screen.
Playback
- LEFT rewinds a film instead of opening the side menu. On a TV remote, LEFT opened the channel list drawer whatever was playing - a live-TV thing offered over a film, which had no blind way to scrub at all. LEFT now steps back 15 seconds on films and episodes (RIGHT steps forward 30), and still opens the drawer on live TV where surfing channels is the point. Holding LEFT keeps scrubbing.
- Pause works while a stream is rebuffering. Pressing pause mid-rebuffer started playback instead of pausing it, and recorded a pause you never asked for, after which returning to the app refused to resume.
- A Cast session ending no longer starts a hidden stream. Switching off a TV while browsing elsewhere left a stream playing with no player on screen.
- An offline channel says so once instead of toasting on repeat.
- Interrupted downloads resume after the app is restarted, and a "Resume playback?" prompt can no longer outlive the player it belonged to - which used to break Back and start invisible audio-only playback behind Home.
TV Shows
- A show can be taken off Up Next. Up Next is worked out from what you have watched, so a show you have no intention of finishing sat there until you did. Long-press a tile to remove it; nothing is marked watched and nothing is reported to Jellyfin, Plex or Trakt. "Restore removed shows" in the row's sidebar menu brings them back, and only appears while something is hidden.
- Favourites are back in the Films and Series rail, along with a way to clear Continue Watching.
- The D-pad no longer goes dead after removing an item from Continue Watching.
Navigation
- D-pad escapes restored across shelves, the category rail and item rows. Focus could trap inside a row with no way back up to the tab bar or search; the top of a shelf, the rail and the Downloads list all reach the tab chain again. Episode rows move between the download and watched buttons, and a disabled download button is no longer a focusable dead end.
- Screen-reader labels added for the glyph-only controls (pin, hide shelf, favourite star, download).
Guide (EPG)
- A guide source that fails three times is now rested, not retired. Once a source hit three failures it was skipped forever - and since the counter only reset on a successful refresh, which a skipped source can never have, the only fix was deleting and re-adding it. A short outage could burn all three attempts in about two minutes. Failing sources now come back on their own, after a wait that grows from an hour up to a day. A refresh that ran before the catalogue finished loading no longer counts against every source at once.
Recordings
- Recording a show no longer crashes on Android 12 and newer, where scheduling an exact alarm needs a permission the app does not hold. It now falls back to an inexact alarm.
- A reboot no longer re-arms recordings that already finished, which used to fire stale alarms and stamp completed recordings with fresh timestamps.
Backup
- Restoring a backup keeps what it used to drop. Watch history exported only its 50 most recent entries, recording storage settings were never written back, and guide sources lost their user-agent and refresh interval. A partial or older backup could also fail silently and read as an empty one; a failed import now says what went wrong, and a missing section leaves your existing data alone.
- A corrupt settings file no longer leaves the app in a dead end where providers could be added with no error and were gone on the next launch.
Android Auto
- The driving warning can be dismissed with a rotary controller. On a car with no touchscreen the warning could be neither reached nor dismissed, leaving the whole app stuck behind it. The update prompt is also skipped on the car display, where it cannot be acted on.
Elsewhere
- Films and shows in an M3U playlist keep their full names. A title like "Breaking Bad, Season 5" was cut at the last comma and became "Season 5".
- "Tomorrow" is correct on the night the clocks change.
- The detail screen no longer paints the previous title's artwork or trailer onto the one you just opened when a slow lookup lands late.
- Cancel actually cancels in the Find Stream dialog, and on the season loading dialog, which used to pop the season chooser seconds after being dismissed.
- The Downloads list in Settings renders full height instead of one row tall, and download tiles show their posters after a restart.
- QR pairing no longer expires early after switching provider type.
- The Up Next countdown no longer freezes when the side menu is opened from the player controls.
- Typing in search is no longer forced to uppercase on a physical keyboard.
- Faster, less wasteful connections to unreachable Jellyfin and Plex servers, which used to report an auth error as a timeout.
Installation
Download the APK below and install on your Android TV, Fire TV Stick, or phone.
Lumora v4.4.4
Lumora v4.4.4
Trakt
- Fixed watched history not pulling in for accounts whose Trakt history has no per-episode breakdown. Some accounts' shows (typically synced in via a third-party Plex/Kodi scrobbler) carry a play count on Trakt but no itemised season/episode list -
/sync/watched/showsreturns nothing usable for them, which is what actually caused Sync now to report "0 in / 0 out" even with a working connection and real watched history on trakt.tv. Those shows now fall back to Trakt's own progress calculation (the same one that powers trakt.tv's "on episode X" display) to work out exactly which episodes were watched.
Installation
Download the APK below and install on your Android TV, Fire TV Stick, or phone.
Lumora v4.3.3
Lumora v4.3.3
Plugins
- Plugins can now update themselves. A new toggle in Settings > Plugins (off by default) checks every installed plugin against its store on each launch and updates it in place, without touching your enabled/disabled choices.
Playback
- A stream that recovered no longer left a stale error dialog behind. If a stream failed and Lumora automatically switched to another version or source that then played fine, the "couldn't play this stream" prompt from the failed attempt could stay stuck onscreen over the working video.
Installation
Download the APK below and install on your Android TV, Fire TV Stick, or phone.
Lumora v4.3.2
Lumora v4.3.2
Jellyfin
- Libraries that came up empty now load. On some servers a whole library reported nothing at all - no films, no shows - even though everything was there. The server was cutting a page of results short mid-way through sending it, and one damaged page was enough to throw away the entire library. Pages are now re-requested in smaller pieces when that happens, and anything already fetched is kept.
Plex
- Connecting to a Plex server is much faster, and works on networks where it used to fail. A server advertises every address it knows - your LAN, your router's external address, Docker's internal ones, IPv6 - and most of them silently go nowhere from any given network. Each dead one was tried in turn and waited on, so signing in could sit there for a minute and give up before reaching an address that worked. Addresses are now tried together, still preferring your local network over the internet and Plex's relay last. Addresses nothing can ever reach are skipped, and where a secure connection is blocked by the network the same server is retried over a plain one.
Installation
Download the APK below and install on your Android TV, Fire TV Stick, or phone.
Lumora v4.3.1
Lumora v4.3.1
Plex
- Signing in to Plex works again. The QR code and 4-digit PIN appeared and then failed with a 401 about two seconds later, never leaving time to enter the code at plex.tv/link. While nobody has entered the code yet, plex.tv reports the account token as null - and that was being read as the four-character text "null" rather than as "not signed in yet", so the app decided sign-in had finished immediately and then tried to list your servers using that as the token.
- Films and episodes that Plex hands over in a format the player cannot read now play. Some titles failed instantly with a container error: the server was asked whether it could serve the file as-is, which it could, but nothing checked whether this player could actually read that format. Those titles are now retried as a server-side transcode instead of failing.
Series
- An episode watched on one provider now counts as watched on all of them. The same show is often present on Plex, on Jellyfin and across several IPTV panels, and each copy tracked watch state under its own id - so finishing an episode left every other copy looking untouched, and their Play buttons kept offering an episode you had already seen. Watch state is now matched on the title and episode number instead, so it follows the episode rather than the copy. Finishing something also marks it on your Jellyfin and Plex servers, so their other clients agree, and watching in one of those clients marks the IPTV copies here.
- Continue Watching tiles say which show they are. A tile showed whatever the provider called the episode - frequently a bare "S03E03", or an episode title naming no show at all - over an episode thumbnail that most providers never send. Tiles now read as "SAS Rogue Heroes · S03E03" over the series poster.
Installation
Download the APK below and install on your Android TV, Fire TV Stick, or phone.
Lumora v4.3
Lumora v4.3
Series
- An episode watched on one provider now counts as watched on all of them. The same show is often present on Plex, on Jellyfin and across several IPTV panels, and each copy tracked watch state under its own id - so finishing an episode left every other copy looking untouched, and their Play buttons kept offering an episode you had already seen. Watch state is now matched on the title and episode number instead, so it follows the episode rather than the copy. Finishing something also marks it on your Jellyfin and Plex servers, so their other clients agree, and watching in one of those clients marks the IPTV copies here.
- Continue Watching tiles say which show they are. A tile showed whatever the provider called the episode - frequently a bare "S03E03", or an episode title naming no show at all - over an episode thumbnail that most providers never send. Tiles now read as "SAS Rogue Heroes · S03E03" over the series poster.
Live TV
- Channel names have more room in the guide. The name column was narrow enough to cut off most real channel names; it now fits a name the length of "Sky Sports Football" without trimming.
Search
- Moving left out of the results now returns to the keyboard. Focus went to the keyboard's container rather than to a key, so the highlight vanished and pressing OK did nothing - the keyboard looked unreachable once you had moved into the results. It now lands on the key beside the poster you left. The same fault broke moving up out of the top row of results.
- Picking a recent search no longer leaves nothing selected. Applying the query hid the recent-search row while it still held focus, and the results had not appeared yet, so the D-pad stopped responding entirely. Focus now lands on the first result as it arrives.
Performance
- EPG updates are dramatically faster on slower devices. Parsing a guide's timestamps rebuilt a date formatter for every programme - up to 100,000 times per source - and saving it committed a separate database transaction per channel, which on the slow storage in a budget TV stick meant thousands of disk syncs. Guide scrolling also allocates far less per row.
Installation
Download the APK below and install on your Android TV, Fire TV Stick, or phone.
Lumora v4.2
Lumora v4.2
Player
- A broken subtitle track inside a video file no longer stops the video playing. Some episodes ended immediately with a playback error: the file's embedded SSA/ASS subtitle track had a line the subtitle parser rejected, and because subtitles were being parsed while the file was read, that one line killed the whole stream - video and audio included, and even with subtitles turned off. Subtitles are now parsed only when they are actually shown, so a bad subtitle track costs nothing but its own subtitles.
- A film or episode now retries and switches source before showing an error. Only live TV and Jellyfin had any recovery: one transient read error on an IPTV film ended playback with "Playback error" and left switching source as your job. VOD now gets two quiet retries of the same stream (resuming where it stopped), then an automatic switch to another copy of the same title - the film's other sources, or another provider's copy of the show matched by season and episode - before any error is shown. Retries only happen for transport failures; a missing file, or media that defeats the player's own parsers, fails the same way every time and skips straight to the next source instead of waiting out a retry.
- Subtitles no longer switch themselves on when they are turned off. A subtitle track tagged for the hearing impaired (SDH) was being read as a "forced" track - the narrow kind that is allowed through with subtitles off to translate a foreign-language scene - so any stream carrying English SDH played with full subtitles across the whole title.
- Playback failures are now logged, so an error that only happens on your device leaves something to diagnose from.
Discover
- Search shows results as you type, beside the keyboard. Previously the overlay typed blind and only filled the grid behind it once submitted - and on a TV the panel shared the screen with the Discover page underneath, which pushed the lower keyboard rows and the Search button off the bottom edge, leaving the search impossible to run at all.
- Picking a title straight from the search results leaves the Discover page showing those results, so Back returns to them.
Series
- Episodes that have not aired yet are marked as such and can no longer be played. A season still going out lists its remaining episodes; pressing one used to start a stream search for something that does not exist. They now show a countdown within a week ("In 3 days") or their air date, and are skipped by the Play button and auto-advance.
Installation
Download the APK below and install on your Android TV, Fire TV Stick, or phone.
Lumora v4.1
Lumora v4.1
Xtream/IPTV
- Fixed a crash-on-launch OutOfMemoryError after adding an Xtream Codes provider. Panels that return the live/VOD/series list as a bare JSON array at the root hit a costly org.json failure path - it fully parsed the array, then re-serialized the whole thing (the entire channel list) into a discarded error message while trying to describe the mismatch. Fixed by detecting the array up front instead of parsing-then-catching.
Scrapers
- AnimeSaturn scraping fixed for the site's new layout (home, search, genres, episode lists, and playback all rebuilt around its current markup and embed protocol).
- MKissa's crypto handshake now refreshes and retries instead of breaking outright when the site rotates its endpoint/build config, and packed playback URLs resolve correctly again.
- StreamWish and Upzone embeds no longer spawn popup ads during their redirect hop.
Installation
Download the APK below and install on your Android TV, Fire TV Stick, or phone.
Lumora v4.0
Lumora v4.0
Localization
- 24 new languages added: Arabic, Czech, Danish, German, Greek, Spanish, Finnish, Hindi, Croatian, Hungarian, Indonesian, Italian, Japanese, Korean, Dutch, Norwegian, Polish, Portuguese, Romanian, Russian, Swedish, Turkish, Ukrainian, and Chinese, on top of English and French.
- Category and shelf labels that never translated now do. Newest, Continue Watching, Favourites, Other, Anime and the rest of the sidebar/shelf titles were hardcoded English strings, not string resources - two of them also broke the "hide this shelf" preference once localized, since it was matching on the literal English text.
Simple Mode
- Live TV and Home stay reachable in Simple Mode. It used to hide every tab, including Live TV itself, leaving only Settings/Refresh on screen. Back now falls through to Home instead of exiting the app early.
Player
- Audio offset is now a real, adjustable A/V sync control, reachable from the play/pause menu. Previously stored but never actually applied to playback.
- The Versions button only shows when there's actually another version to switch to - live, film, and series version availability is checked upfront instead of the button always appearing and toasting "nothing else" on press.
Installation
Download the APK below and install on your Android TV, Fire TV Stick, or phone.