Repository navigation
Releases: Cxsmo-ai/NuvioTV-Custom
Release list
1.0.1-custom
Improvements & Fixes
- Prevented stale episode progress after an MPV switch (@ieno)
- Fixed player follow nested mkv seekhead so exoplayer can seek (@halibiram)
- Fixed player treat truncated MKV tails as end of input (@halibiram)
- Fixed FFmpeg downmix distortion and buffer growth (@kernexshadow)
- Added support for IntroDB movie segments and external skip controls (@Laskco)
- Hardened player output and post-play focus (@rhoggs-bot-test-account)
- Restricted transparent letterboxing to resolved ExoPlayer output (@rhoggs-bot-test-account)
- Ensured player presentation waits for Seekr preview alignment (@rhoggs-bot-test-account)
NuvioTV Custom 1.0.0-custom
Highlights
- Native app-wide dimmer with fine 5% control and live in-player adjustment.
- Stable profile avatar resolution with server and catalog fallbacks.
- Seekr frame calibration runs muted and restores playback state safely.
- Native Dolby Vision/HDR playback policy and existing surround passthrough settings retained.
- Top navigation, hero carousel, calendar, spoiler protection, random episode, progressive scraping, skip pipeline, and other Custom features retained.
Downloads
- app-full-universal-benchmark.apk - most compatible APK.
- app-full-arm64-v8a-benchmark.apk - 64-bit ARM devices.
- app-full-armeabi-v7a-benchmark.apk - 32-bit ARM devices, including the configured Shield target.
Built from commit 6db8530. This release does not include the discarded Smart Vibrance shader or filmstrip seek-bar redesign.
NuvioTV Custom 0.8.10-beta-nt8
NuvioTV Custom 0.8.10-beta-nt8
This release introduces a dedicated Random Episode feature for series, including season-scoped selection, unwatched filtering, and a hidden "Mystery" mode.
Random Episode Features
- Hero Action Button: Added a shuffle icon button in the series hero banner to instantly open the Random Episode dialog.
- Season Tab Button: Added a matching Random button on the season tabs row for quick season-targeted random selection.
- Scope Options: Select between picking from all seasons (specials excluded if regular seasons exist) or only from the currently focused season.
- Unwatched Filter: Toggle to only pick from episodes not yet marked as watched (falls back automatically to all episodes if everything has been watched).
- Hidden Random (Mystery Mode):
- Directly launches into automated stream selection and playback without revealing the chosen episode's number, title, overview, or thumbnail.
- Replaces episode titles in the player, pause overlay, and loading screens with "Mystery Episode" to prevent spoilers.
- Persisted per-profile and configurable directly in the dialog as well as under Settings → Layout → Detail Page.
NuvioTV Custom 0.8.10-beta-nt7
NuvioTV Custom 0.8.10-beta-nt7
This release addresses profile avatar resilience, tracker credentials input on Android TV remotes, per-episode ratings and TMDB enrichment fallback, and fully updates the in-app About experience.
Tracker App Credentials Input Fix
- Fixed D-pad focus conflict on the Tracking Credentials dialog so remote clicks properly activate the software keyboard.
- Integrated explicit keyboard controller actions with Next/Done navigation across Trakt ID, Trakt Secret, and Simkl ID.
- Added a Clear button to reset saved credentials and updated the tracking settings overview to display which providers are configured.
- Hardened credential storage encryption with safe fallback to prevent crashes on non-standard KeyStore implementations.
Per-Episode Ratings & TMDB Enrichment
- Implemented automatic TMDB episode ratings fallback so TV shows display rating badges even when external IMDb servers are unconfigured.
- Parsed episode vote averages and vote counts directly from TMDB TV season payloads into
Videomodels andEpisodeRatingsSection. - Upgraded TMDB metadata enrichment with intelligent display label resolution to avoid unwanted CJK/Hangul fallbacks for non-CJK locales.
- Restored movie collection metadata enrichment with release-ordered parts and localized collection names.
Profile Avatar Resilience
- Prioritized stable catalog avatar IDs over stale or expired avatar URLs to eliminate broken profile pictures.
- Added non-destructive avatar catalog retry handling to retain existing avatars across transient network failures.
- Provided graceful initial-letter fallbacks whenever an avatar image cannot be fetched.
Updated About Experience
- Rebranded in-app About screen to NuvioTV Custom by Cxsmo-ai, with full attribution to ysosrs123/NuvioTV-Fork and Tapframe.
- Added direct navigation links to both the custom GitHub repository and the upstream fork.
- Highlighted custom features: Top Navigation Bar, Full App Dimmer, TV Calendar, Seekr Preview Sync, Multi-Provider Skip Intro, and Progressive Scraping.
Upstream Fixes
- Scoped watched-episodes cache validation to the active profile ID to prevent cross-profile history pruning.
0.8.10-beta-nt6
NuvioTV Custom 0.8.10-beta-nt6
This is the production-signed follow-up to the v0.8.10-beta-nt5 TV benchmark. It includes the
same verified Seekr frame-calibration release and is built by the protected GitHub Actions release
workflow using the fork's encrypted signing and backend configuration secrets.
Seekr frame calibration
- Automatically aligns Seekr preview timing to the actual rendered ExoPlayer release when local
evidence is strong enough. - Uses three safe timeline anchors and searches
-3s,0, and+3saround each cue to cover
documented keyframe drift. - Uses low-resolution luminance comparison plus robust median/outlier filtering.
- Rejects weak or ambiguous matches and falls back to the original timing without affecting
playback. - Keeps manual Preview Sync controls for fine adjustment and resets calibration for each release.
- Uses the existing player surface only: no stream proxy, second decoder, frame upload, or server
processing.
See the custom feature guide for the comparison with normal Seekr
integration and its limitations.
NuvioTV Custom 0.8.10-beta-nt5 (TV benchmark)
NuvioTV Custom 0.8.10-beta-nt5
This release packages the verified Seekr frame-calibration work on top of the existing custom fork.
It is built from the custom-dimmer branch and preserves the prior top navigation, calendar,
dimmer, skip-metadata, playback, HDR, audio, and recommendation features.
The published prerelease assets are TV benchmark APKs from the exact tested build. The automated
production-release workflow still requires the repository's signing and private Nuvio build
configuration secrets; those were unavailable for this run, so this prerelease is intentionally
labelled as a benchmark build rather than represented as a production-signed release.
Seekr improvements over a normal integration
- Adds automatic per-release Preview Sync using frames rendered by the active ExoPlayer surface.
- Samples three timeline anchors and searches the documented Seekr keyframe drift window (
-3s,
0,+3s) instead of trusting a single cue blindly. - Compares low-resolution luminance fingerprints, rejects weak/ambiguous matches, and combines
anchors with a median/MAD outlier filter before applying the offset. - Keeps the existing manual Preview Sync control for fine 250 ms adjustments, held-key coarse
adjustments, reset, and duration-gap suggestions. - Resets calibration for every new release and safely falls back to zero offset when evidence is
insufficient. - Captures only the existing local player surface at 320×180. No stream proxy, frame upload,
second decoder, or server-side video processing is used. - Reduces startup work to three candidates per anchor while retaining the ±3-second correction
window.
Playback and reliability
- Preserves the previously shipped custom D-pad, HDR/Dolby Vision, subtitle extractor, skip
metadata, calendar, top-navigation, app-dimmer, and post-play recommendation work. - Verified unit coverage for median/outlier rejection, ambiguous-match fallback, and source-scale
conversion. - Verified on the connected Android TV test device: Seekr API/signed sprite resources returned
successfully, the calibration gate completed, playback resumed, and no fatal, PixelCopy, or
process-crash errors were observed.
Important limitation
Seekr’s own thumbnails are discrete and may be keyframe approximations or come from a different
release. No client can guarantee pixel-perfect identity in that case. This release applies an
offset only when local evidence is strong and otherwise leaves the original timing unchanged.
NuvioTV Custom 0.8.10-beta-nt3 (TV benchmark)
NuvioTV Custom 0.8.10-beta-nt3 TV benchmark
This prerelease contains the current synchronized TV benchmark build from 8bcaa6de3.
The protected release keystore is not configured in this repository, so these APKs are clearly labeled benchmark builds and are signed with the app's benchmark/debug signing configuration. The signed-release workflow remains in place and will publish a properly signed release once the protected release secrets are configured.
Included variants:
- Universal APK for most Android TV devices
arm64-v8aAPKarmeabi-v7aAPK for the tested NVIDIA Shield target
Supabase login, QR sign-in, Nuvio Sync, Simkl/MDBList post-play sources, app dimmer, calendar, top navigation, and the custom playback changes are included in this build. The discarded Smart Vibrance and filmstrip seek-preview redesign are not active in the current tree.
NuvioTV Custom 0.8.10-beta-nt2
NuvioTV Custom 0.8.10-beta-nt2
This is the first public release for the NuvioTV Custom fork. Support is provided through the
repository issue tracker and release discussions. It is based on
ysosrs123/NuvioTV-Fork and includes the
custom post-play recommendation and AIOStreams integration documented in
docs/custom-fork-features.md.
Highlights
- Select Auto, Trakt, TMDB, Kurato AI, or BingeCat AI for post-play recommendations.
- Use full paginated Kurato/BingeCat recommendation results without a four-item cap.
- Resolve trailers from the selected catalog, Nuvio's configured metadata addons, then TMDB/IMDb.
- Show AIOStreams progressive stream results while the remaining providers continue scraping.
- Support instant, bounded, and unlimited user-facing scrape timeout modes with safety guards intact.
- Keep the original Nuvio full-screen post-play hero layout.
APK assets
The release workflow publishes ABI-specific assets with these names:
NuvioTV-Custom-0.8.10-beta-nt2-armeabi-v7a.apkNuvioTV-Custom-0.8.10-beta-nt2-arm64-v8a.apk
The armeabi-v7a build is for 32-bit ARM Android TV devices. The arm64 build is provided for
compatible 64-bit ARM Android TV hardware. Progressive scraping requires the matching
Cxsmo-ai/AIOStreams fork.
See the progressive scraping video example for the
intended behavior while additional sources arrive.
Upgrade notes
Install the APK whose ABI matches the device. Do not install both APKs on one device. The
progressive scraping features require the matching Cxsmo AIOStreams fork; standard AIOStreams
manifests remain supported without that integration.