Orivio TV
Orivio TV — a native Apple TV media player. This is a huge update over the first release: the app is rebranded to Orivio, and it adds Live TV, a plugin/scraper system, offline downloads, Cloud Library, native Dolby Vision, deep account sync, and a long list of playback and UI improvements.
❤️ Help put Orivio TV on TestFlight
Orivio TV is free and open-source. I'm raising funds to get it onto TestFlight so it can be installed without sideloading. If you'd like to help:
📥 Which file do I download?
OrivioTV-V2 (Sideloadly).ipa— use with Sideloadly (or similar sideloaders).OrivioTV-0.7.15-tvos.ipa— use with Xcode (Devices & Simulators) or Apple Configurator.
Both are the same unsigned arm64 build for Apple TV HD / 4K (tvOS 17+); your sideload tool re-signs it with your Apple ID on install. The bundle id is now com.orivio.tv.appletv, so this installs as a new app — sign into your account and everything syncs back down.
Everything new since v0.7.15
🎨 Rebrand
- Renamed to Orivio TV — new name, app icon, top-shelf art, in-app logo, and backdrops.
🆕 Major new features
- Live TV — IPTV tab with M3U playlists, per-row "Show All", location/language config, curated country fallback, in-app embed, and a toggle to hide the tab when unused.
- Discover — in-app browser for the live Stremio community add-on catalog with one-tap install, plus community pages.
- Plugins / scrapers — a JS scraper runtime (Nuvio plugin system) so community scraper repos work on tvOS.
- Offline downloads — download titles for offline play, shown as poster cards in Library with an Apple TV storage bar.
- Cloud Library — browse and play your debrid cloud files directly.
- Collections — streaming-service presets, a single tidy Home row, editable tile shapes, HQ artwork, and reordering.
- P2P streaming — TorrServer client for magnet/torrent playback without debrid (currently hidden behind a settings toggle).
- Parental guide — IMDb content advisories on the detail page.
- AnimeSkip — automatic anime intro/outro skipping.
- Deep linking —
nuvio://(open a title) andstremio://(install an add-on).
▶️ Playback
- Native Dolby Vision output for DV profile 5/8 (true dynamic DV instead of HDR10 tone-map).
- Dolby Vision Profile 7 → 8.1 on-device conversion (dual-layer DV7 files get native DV), with a device-aware default (off on 3 GB gen-1/2) and a conversion-speed control so it can run on older boxes.
- External player engine — hand any stream to Infuse, VLC, VidHub, nPlayer, etc., with a player picker and optional subtitle forwarding.
- Full styled ASS/SSA subtitles via VLC routing (toggle).
- Buffer controls — buffer profile (Auto / Conservative / Large) and size-target read-ahead cache (500 MB / 1 GB / 2 GB / Max).
- Display matching — opt-in HDR/refresh-rate switching with a 23.976 AFR bias for Android parity, plus fixes so exiting no longer wedges the TV on a grey/green screen or turns it off.
- Instant manual play, pause when the app switcher appears, and full-HD trailers.
🔎 Sources & streaming
- Smart source ranking — quality scoring (resolution, codec, HDR, audio, cached-first) per add-on.
- Badger badge packs — visual badges on source rows and in the in-player Sources panel.
- Auto Link Selector — per-profile auto-play of the best link, with hold-to-play-manually.
- DMM Cast / external links supported; add-ons that return no links now show why.
- Tolerant handling of any add-on manifest/stream shape, browser User-Agent to get past bot protection, and specific failure reasons instead of "didn't respond".
- Debrid — RealDebrid, Premiumize, and TorBox, with QR device login, TorBox instant-cache checks, and cross-provider fallback.
- Confirm before removing an add-on; "cached only" now truly filters to cached links.
⏭️ Continue Watching & resume
- Up Next card that appears at the end-credits chapter (with an N-seconds-before-end fallback), auto-advancing on a countdown you control.
- Smarter resume — re-scrapes a fresh link and auto-plays the one that best matches what you last watched (Dolby Vision / HDR / Atmos / resolution) at your saved position, so expired debrid/Comet links no longer drop you to the start; the full list stays as failover.
- Spoiler-blur options, focus recovery, and much smoother scrolling (no per-card offscreen passes or re-renders on focus).
🔄 Account sync
- Multi-profile sync fixed — non-primary profiles now do a full two-way sync (previously only profile 1 fully synced).
- Watched history removals now sync across devices.
- Library no longer resurrects items removed on another device.
- Plugins, debrid keys, and Trakt logins now sync with the phone app, not just tvOS↔tvOS.
- Home layout (catalog order, collection placement, custom titles, hidden rows) now syncs correctly with the phone.
- Continue Watching removals are durable (persisted retry queue) and the Home row polls every 30s to stay live across devices.
- Player / TMDB / theme / badge / collection settings and installed add-ons all sync; first sign-in is additive so it never wipes local-only data. "Refresh Add-ons" pulls from the account without deleting your list.
🏠 Home & interface
- Home layout modes (Modern / Grid / Classic) with a distinct look each, full-bleed hero under the collapsed rail, and a hero backdrop/trailer that follows focus.
- Extensive sidebar polish — smoother expand/dim motion, swipe-right exit, in-sync labels, overscan-friendly icon spacing.
- Focus-marquee scrolling for long titles, and "See All" only catches vertical focus when you're directly above/below it.
- Top Shelf Continue Watching on the tvOS home screen (requires a paid Apple Developer account to enable).
- Detail page: clickable synopsis opens a scrollable full-description overlay.
⚙️ Settings
- A full visual redesign (grouped lists + icon tiles) and 15 batches of new controls: subtitle styling/timing/forwarding, skip-intro, stream filters, poster size/labels, app-wide font, granular TMDB enrichment toggles, auto-play source, reuse-last-link, video scaling, player OSD/overlay toggles, Experience Mode (Essential / Advanced), and Settings Style (Classic / Zen / Horizon).
- A dedicated Performance tab — master toggle, per-effect animation controls, Reduce Motion, FPS overlay, and a reset button.
🐞 Stability & performance
- Fixed a stack-overflow crash on player exit, an Auto Link Selector crash, add-on catalogs with duplicate IDs crashing the focus engine, and orphaned player audio on early exit.
- Vendored/patched KSPlayer to fix an FFmpeg audio-decode crash.
- Cut playback memory on RAM-limited Apple TVs to stop mid-playback out-of-memory kills; right-sized image decode/cache on Apple TV HD.
- Faster loading (higher concurrency, no artificial delays) and fixed observer leaks / sync-merge data loss.
⚠️ Notes
- Unsigned build — sideload with your own Apple ID; free Apple IDs need a re-sign every 7 days.
- Sync connects to the existing Nuvio account backend, so it interoperates with the Nuvio phone app.
Built on Nuvio (GPLv3). 🤖 Release notes assembled with Claude Code