The MAX tier activates Cloud-only ɳTV features that are not available on self-hosted installs. These build on top of the same ɳTV plugin bundle you already know — they are additive, not a replacement. Your library, watchlists, and user accounts remain fully yours and can be exported at any time.
Geo-distributed edge
40+ PoPs — first-byte latency drops from ~150ms to ~20ms
Shared acquisition pool
Downloads run on our fleet at 10× typical self-hosted speed
Hot / cold storage tiers
SSD for active media, $0.004/GB-month cold tier for the rest
Dedicated transcoding
H.264/H.265/AV1 — no contention with other customers
On a self-hosted ɳTV install, all streaming traffic originates from your single VPS. With MAX, your media is automatically cached at 40+ edge Points of Presence (PoPs) operated in partnership with our CDN provider. First-byte latency for viewers drops from a typical 150ms (single-origin) to roughly 20ms (nearest edge PoP).
Edge distribution is handled at the Nginx layer. Cache headers are rewritten automatically when the MAX capability token is active. Your media files are not duplicated to all PoPs simultaneously — they are cached at the nearest PoP on first request (pull-through caching) and evicted after a configurable TTL or when storage capacity requires it.
# Check edge cache status for a file
nself cloud ntv myapp cache-status /media/movies/my-movie.mp4
# Output:
# File: my-movie.mp4
# Edge cache: HIT (cached at 7 PoPs)
# Last cached: 2026-05-06T14:22:11Z
# Cache TTL: 72h
# Closest PoP: fra1 (Frankfurt) — 12ms
# Purge: nself cloud ntv myapp cache-purge /media/movies/my-movie.mp4In self-hosted mode, downloads run on your VPS — competing with your Postgres, Hasura, and Auth services for CPU and network bandwidth. On MAX, acquisition tasks are offloaded to a dedicated fleet of workers we operate. Typical acquisition speed is 10× what a single CX41 VPS can achieve.
The shared pool handles torrent seeding, Usenet downloads, direct HTTP fetches, and YouTube-DL compatible sources. All downloads are quarantined and virus-scanned before being written to your library. Your VPS only receives the finished file.
# Add an acquisition job (routes to shared pool on MAX)
nself cloud ntv myapp acquire --source "magnet:?xt=urn:btih:..." --category movies
# View acquisition queue
nself cloud ntv myapp queue
# Output:
# ID Source Status Progress Speed ETA
# 001 torrent Downloading 43% 847 MB/s 4m 12s ← shared pool
# 002 usenet Queued — — —
# 003 http Completed 100% — doneMAX automatically manages two storage tiers for your media library:
# Check storage tier breakdown
nself cloud ntv myapp storage
# Output:
# Hot tier (SSD): 78 GB / 100 GB allowance
# Cold tier (S3): 312 GB / 500 GB allowance
# Total library: 390 GB
#
# Files on hot tier: 2,847
# Files on cold tier: 8,124
# Auto-tiering: enabled (30-day inactivity threshold)
# Move a file to cold manually
nself cloud ntv myapp tier-cold /media/movies/old-film.mp4
# Promote from cold to hot
nself cloud ntv myapp tier-hot /media/movies/old-film.mp4
# Change auto-tier threshold
nself cloud ntv myapp auto-tier --days 14Transcoding on a self-hosted VPS runs on shared CPU — a long H.265 encode blocks other jobs. MAX gives your instance a dedicated transcoding queue backed by GPU-accelerated hardware. Jobs are processed at hardware speed with no contention from other customers.
Supported output formats: H.264 (AVC), H.265 (HEVC), AV1, VP9. Subtitle burn-in, audio remux, and chapter markers are all supported. Your monthly allowance includes 1,000 transcoding minutes; overage is billed at $0.05/minute.
# Transcode a file (runs on dedicated cloud queue)
nself cloud ntv myapp transcode /media/movies/raw.mkv \
--output h265 \
--quality crf:22 \
--subtitles burn-in \
--audio aac
# View transcoding queue
nself cloud ntv myapp transcode-queue
# Output:
# ID File Format Status Progress ETA
# 001 raw.mkv H.265 Processing 67% 8m 31s
# 002 episode-s01e01 H.264 Queued — —
#
# Usage this month: 312 / 1000 minutesMAX includes managed refresh of TMDB, TVDB, and EPG XMLTV feeds. The enrichment service runs on our infrastructure (not your VPS) and pushes metadata updates to your Postgres library database on a schedule you configure. Your library metadata is always current without any cron jobs or API quota concerns on your side.
# Configure EPG feed URLs
nself cloud ntv myapp epg --add "https://iptv-org.github.io/epg/guides/us/tvguide.com.epg.xml"
# Set enrichment schedule
nself cloud ntv myapp metadata --refresh-interval 6h --sources tmdb,tvdb
# Force metadata refresh for a specific file
nself cloud ntv myapp metadata refresh /media/movies/my-movie.mp4
# Output:
# Enriched: my-movie.mp4
# Title: The Movie Title
# TMDB ID: 12345
# Year: 2024
# Poster: https://image.tmdb.org/t/p/w500/...
# Artwork: downloaded and stored in MinIOɳTV Cloud MAX activates automatically when your MAX subscription is active. The mechanism works through signed capability tokens:
cloud_capabilities table with kind = "ntv_max" and your subscription ID.Tokens are rotated monthly. If a token fails validation (e.g. subscription lapsed), the ɳTV plugin falls back to standard self-hosted mode immediately — no data loss, no service interruption.
# Check capability token status
nself cloud ntv myapp capabilities
# Output:
# ntv_max: ACTIVE (expires 2026-06-01)
# Subscription: MAX (ID: sub_xxxxxxxxxxxxxxxx)
# Edge PoPs: enabled (40+ PoPs)
# Acquisition: routed to shared pool
# Storage: hot/cold tiering enabled
# Transcoding: dedicated queueIf you downgrade from MAX to a lower plan, the capability token is revoked at the end of the billing period. ɳTV returns to standard self-hosted mode:
| Resource | Monthly allowance | Overage rate |
|---|---|---|
| Streaming bandwidth | 1 TB | $0.01/GB |
| Hot storage (SSD) | 100 GB | $0.02/GB-month |
| Cold storage (object) | 500 GB | $0.004/GB-month |
| Transcoding minutes | 1,000 min | $0.05/minute |
Usage is metered hourly. The dashboard shows a live tracker under Server → ɳTV → Usage. Set soft caps (email alert) and hard caps (halt at limit) in Settings → Usage Limits.
# Check current ɳTV usage
nself cloud ntv myapp usage
# Output:
# Bandwidth: 142 GB / 1024 GB (13.9%)
# Hot storage: 78 GB / 100 GB (78.0%) ← approaching limit
# Cold storage: 312 GB / 500 GB (62.4%)
# Transcoding: 312 min / 1000 min (31.2%)
# Cycle resets: 2026-06-01
# Set a soft cap alert at 80% bandwidth
nself cloud limits myapp --bandwidth-alert 80
# Set a hard cap on transcoding (halt at 900 minutes)
nself cloud limits myapp --transcoding-hard-cap 900nself cloud commands