Debrid services maintain large caches of torrents on high-speed servers. When a stream addon returns a torrent info-hash, NuvioTV checks whether that torrent is already cached on your debrid service and, if so, resolves it to a direct HTTP link that plays instantly at the server’s full bandwidth — no seeding, no client-side torrenting.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/NuvioMedia/NuvioTV/llms.txt
Use this file to discover all available pages before exploring further.
Supported providers
NuvioTV ships with three registered providers in theDebridProviders object:
| Provider | ID | Short name | Auth method | Visible in UI |
|---|---|---|---|---|
| Torbox | torbox | TB | Device code (OAuth) | ✅ |
| Premiumize | premiumize | PM | Device code (OAuth) | ✅ |
| Real-Debrid | realdebrid | RD | API key | ❌ (hidden by default) |
Provider capabilities
Each provider declares a set ofDebridProviderCapability flags that control which resolution paths NuvioTV uses:
| Capability | Torbox | Premiumize | Real-Debrid | Meaning |
|---|---|---|---|---|
ClientResolve | ✅ | ✅ | ✅ | Can resolve a debrid-annotated stream (info-hash + service tag) to an HTTP link |
LocalTorrentCacheCheck | ✅ | ✅ | ❌ | Can check whether a raw torrent info-hash is cached before resolving |
LocalTorrentResolve | ✅ | ✅ | ❌ | Can resolve a raw torrent magnet/info-hash to an HTTP link without a pre-annotated stream |
CloudLibrary | ✅ | ✅ | ❌ | Exposes a browsable cloud file library (see Library) |
Authentication
Device code (OAuth) — Torbox and Premiumize
The device-code flow is designed for TV interfaces where typing a password is awkward.Start authentication
Select Sign in. NuvioTV calls the provider’s device authorisation endpoint and receives a
DebridDeviceAuthorization containing a userCode and a verificationUrl.Visit the URL on another device
On your phone or computer, navigate to the
verificationUrl shown on screen (e.g. https://torbox.app/activate).Enter the user code
Type the
userCode displayed on your TV into the provider’s website and approve the request.API key — Real-Debrid
Real-Debrid usesDebridProviderAuthMethod.ApiKey. Because visibleInUi = false, Real-Debrid does not appear in the normal debrid settings UI and is excluded from configuredServices(). Real-Debrid stream resolution is handled automatically when an addon provides a stream pre-annotated with clientResolve.service = "realdebrid" and a matching API key is stored in DebridSettings.realDebridApiKey. The DirectDebridResolver routes such streams to RealDebridDirectDebridResolver directly by matching the service ID.
Resolution flow
When the stream list loads, NuvioTV checks each stream that carries aclientResolve annotation or a raw torrent info-hash:
-
Cache status check (
StreamDebridCacheState):CHECKING— NuvioTV is actively querying the provider.CACHED— the torrent is confirmed cached; resolution will succeed instantly.NOT_CACHED— the torrent is not cached; the stream is filtered from the visible list.UNKNOWN— cache state could not be determined; NuvioTV attempts resolution anyway.
-
DirectDebridResolver.resolve()selects the correct per-provider resolver (TorboxDirectDebridResolver,PremiumizeDirectDebridResolver, orRealDebridDirectDebridResolver) based onclientResolve.serviceand the configured active resolver. -
On success, the stream’s
urlfield is replaced with the resolved HTTP link and the stream plays normally through ExoPlayer or MPV. Resolved links are cached in memory for 15 minutes (DIRECT_DEBRID_RESOLVE_CACHE_TTL_MS) to avoid redundant API calls. -
If the stream is a raw torrent (
needsLocalDebridResolve()is true),LocalTorrentResolvecapability is required. NuvioTV builds a magnet URI from the info-hash and resolves it through the active provider.
Preferred resolver
When more than one debrid service is configured,DebridProviders.preferredResolverService() selects which one to use. The preferred provider ID is stored in DebridSettings.preferredResolverProviderId. If no preference is set, the first configured service is used.
File selection
Some torrents contain multiple files (e.g. a season pack). In these cases, NuvioTV presents a file picker (DebridFileSelection) so you can choose which file to resolve. The fileIdx field in StreamClientResolve carries the selected file index to the resolver.
Stream formatting
DebridStreamFormatter renders configurable name and description templates for debrid streams. Templates support variables such as stream.resolution, stream.visualTags (HDR, Dolby Vision, etc.), stream.audioTags, stream.languages, stream.size, stream.encode, service.shortName (TB, PM, RD), and service.cached. The formatted strings replace the raw addon-provided name and description in the stream list UI.
DebridStreamPresentation applies post-processing to the full stream group list: it filters out streams from inactive resolvers and fully uncached torrents, then passes remaining debrid streams through DebridStreamFormatter.
Cloud library
Torbox and Premiumize both support theCloudLibrary capability, which lets you browse all previously resolved files stored on your debrid account from within NuvioTV. See Library for details.