The whole TMDB catalogue, inside the Plex app your family already uses.
Your on-demand server alongside Plex Media Server.
Press Play on a title in any official Plex app. Ether resolves the best release across your Usenet providers and your debrid accounts, health-checks it, and streams the exact byte ranges the player asks for.
Why Ether Exists · Under the Hood · Product Tour · Alongside Your Library · Install in 5 Minutes · FAQ
A typical automated Plex setup is built from several excellent projects—Sonarr, Radarr, Prowlarr, SABnzbd, Overseerr, Kometa, Tautulli and more—each of them very good at its job. Wiring them together still means download clients, path mappings, webhooks and, for debrid users, FUSE/WebDAV mounts that Plex Media Server has to scan. A new title still has to download, unpack and be scanned before anyone can press Play.
Ether takes a different approach to the on-demand case. Instead of presenting files for Plex Media Server to scan, Ether speaks the PMS protocol itself. It talks directly to official Plex clients (Apple TV, iOS, Android TV, Shield, Fire TV, Roku, Smart TVs, Web) and backs the library with the live TMDB catalogue and an on-demand byte-range streaming engine.
When you open Plex, the catalogue is already there. When you press Play, Ether resolves, health-checks, and streams the bytes on the fly. When you scrub to 01:14:22, Ether seeks to the matching keyframe offset inside a remote Usenet RAR5 set or debrid HTTPS stream and serves just those bytes.
| What your family experiences | What you stop maintaining |
|---|---|
| Press Play and watch. Titles are browsable, searchable, and playable inside the stock Plex app. | No request queue. No "Can you add this to Plex?" texts. No waiting for downloads, extractions, or library scans. |
| A Home screen that knows them. Every viewer gets their own taste model, row ordering, and runtime-aware picks. | No single Recently Added row shared by everyone in the house. |
| It just plays. Automatic provider backfill, mid-stream release failover, synced subtitles, and Skip Intro / Skip Credits. | No dead mounts, stuck queues, out-of-sync .srt files, or broken archives to chase on a Friday night. |
| Storage you choose. Run in 256 MiB pass-through mode or let a multi-terabyte shelf pre-warm what your household watches next. | No cleanup rules to tune, and no need to buy storage for everything you might watch. |
Keep Plex Media Server and the tools that curate the files you own. Ether adds a second server in the same Plex apps for titles outside that collection. Its availability depends on your configured sources; an on-demand catalogue is not a durable local library.
The table maps familiar workflows to Ether’s on-demand features. It does not claim feature parity with these mature projects. Clustering, virtual Live TV, hardware enhancement and poster customization are optional integrations; ordinary playback needs none of them.
| If you run today | What Ether does instead |
|---|---|
| Plex Media Server (for streaming) | Clean-room implementation of the PMS HTTP/HLS/DASH/GDM protocol, *.plex.direct TLS, and plex.tv sharing. (Keep PMS for your local files.) |
| Sonarr & Radarr | Resolution happens at Play time (or during detail-page warmup) using your quality profiles, custom formats, edition rules, and release pins. |
| Prowlarr & Jackett | Native Newznab and Torznab manager with daily quota tracking, Retry-After backoff, result caching, 1-click Prowlarr import, a built-in Cardigann YAML engine, and Stremio stream addons as torrent sources (paste an install link). |
| SABnzbd, NZBGet, NzbDAV, AltMount | Native NNTP connection pools, wire-pipelined BODY fetching, SWAR yEnc decoding, and direct byte-range seeking inside store-mode RAR4, RAR5, and 7z sets (including password-protected stored archives). |
| zurg, rclone, Riven, plex_debrid | Native HTTPS range streaming for Real-Debrid, TorBox, AllDebrid, Premiumize, Debrid-Link, and Offcloud—including single-episode extraction from torrent season packs without mounts. |
| Overseerr & Jellyseerr | Released titles need no requests. Viewers' Plex and Trakt Watchlists sync automatically; newly playable titles appear in a Now available row on that viewer's Home, and the owner can be alerted. |
| Kometa (Plex Meta Manager) | Live visual poster studio and rule-based collection builder in the browser. Renders 4K / DV / Atmos and rating badges in pure Go on demand, configured in the browser. |
| Bazarr | Automatic OpenSubtitles matching plus piecewise dialogue-timing alignment that syncs subtitles and skip markers across different cuts without downloading video. |
| Tautulli & Notifiarr | Built-in real-time session monitor, 30-day analytics, provider throughput graphs, weekly HTML digests, and rule-filtered alerts (Discord, Slack, Telegram, Push, Email, ntfy, Gotify). |
| Maintainerr | Self-evicting segment cache with repeat-watch retention credit and rolling TV episode preloading that automatically slides forward as your household watches. |
| ErsatzTV, Tunarr, Threadfin | Turn any collection into a 24/7 virtual TV channel alongside M3U/XMLTV and Xtream feeds—served straight into Plex's native Live TV guide. |
Official Plex Apps (Apple TV · iOS · Android TV · Web · Roku)
│ browse · search · Play · scrub
▼
┌──────────────────────────────────────────── ETHER ────────────────────────────────────────────┐
│ PMS Protocol Layer Native hubs, metadata, PlayQueues, HLS/DASH, GDM, plex.direct TLS │
│ Personalization Engine Per-viewer taste model · Beta-bandit row ranker · Learned re-ranker │
│ Smart Resolver Quality profiles · Custom formats · Measured-latency source racing │
│ PAR2 & Health Oracle 16 KiB MD5 de-obfuscation · Mid-file BODY probes · Slice checksums │
│ Zero-Copy Streamer Seekable RAR4/RAR5/7z (plain & AES) · HTTPS ranges · Disk/NAS tier │
│ Dialogue Aligner Piecewise subtitle-cue solver for cross-cut failover & skip markers │
│ Media & GPU Transcode Direct play · Copy remux · HW ABR HLS/DASH · NVIDIA RTX Video VSR │
└──────────────────────────────────┬───────────────────────────────────────┬────────────────────┘
│ │
Usenet Providers (Primary + Backfill) Debrid Accounts (RD · TorBox · AD · PM)
+ Newznab Indexers & Cardigann Sites + Torznab Indexers & Cardigann Sites
- Lazy store-mode archive indexing (including encrypted sets): To open a 60-part RAR4, RAR5, or 7z post on Usenet, Ether touches only the first, second, and last volume headers to infer the uniform layout and expose a seekable
io.ReaderAtimmediately—verifying volume boundaries lazily before serving bytes and supporting bounded native AES decryption on password-protected stored RAR4/RAR5/7z sets when the password is supplied in the NZB metadata. - PAR2 as a zero-cost de-obfuscation & integrity oracle: Ordinary playback never waits on PAR2 repair (bounded repair of just the missing byte ranges is opt-in). Instead, it fetches only the
<1 MiB.par2index packet in parallel with the first article, matches the MD5 of the first16 KiBof obfuscated posts against PAR2 file descriptions to recover true filenames and volume order, and verifies slice checksums on the spot. If one dominant video file is identified, decoy files aren't even probed. - Truthful mid-file health checks: Providers routinely answer
223toSTATfor DMCA-pulled articles that fail with451onBODY. Ether combines spreadSTATchecks with real mid-fileBODYyEnc-header reads and bails out on the first confirmed missing article across all providers. - Surgical Matroska damage concealment & live failover: Priority semaphores strictly protect
PriorityLivereads over read-ahead and background prefetch. If an article is genuinely missing mid-stream inside an unlaced Matroska frame payload, Ether conceals the gap while warming an alternate release in the background—and if a release stalls or breaks, fails over to another release at the exact same scene, with the volume matched and baked-in black bars cropped.
90s sitcoms, classic anime, and DVD-era 480p/576p/720p shows tend to look soft on a 4K TV, and client-side upscalers only exist on a handful of devices.
- Tensor-Core neural upscaling on the server: On Windows hosts with an NVIDIA RTX GPU and
NVEncC64(with NVIDIA NGX VSR runtime DLLs), Ether can run NVIDIA RTX Video Super Resolution directly inside the server's HLS/DASH transcode pipeline—cleaning compression artifacts and reconstructing crisp edges on SDR H.264 streams before they ever reach an Apple TV, Roku, iPad, or browser. - Self-protecting ABR & fallback: RTX VSR is opt-in (off by default) with owner-configurable source/target resolution caps (e.g.
≤720p → 1080p), quality tiers, and concurrency limits. Enhancement is reserved for the top ABR rendition; if measured client bandwidth dips or the GPU concurrency limit is reached, Ether seamlessly drops to ordinary hardware/software ABR renditions without interrupting playback or mislabeling an ordinary scaler as RTX VSR. - Zero-copy GPU surface transcoding: For standard transcodes across NVIDIA NVENC, Intel QuickSync, VAAPI, and Apple VideoToolbox, Ether keeps decode, scaling, and encode on GPU hardware surfaces end-to-end and bounds software fallback worker threads.
What happens when a stream fails over at 00:52:18 from a Theatrical WEB-DL to an Extended Blu-ray rip—or when TheIntroDB skip markers were timed against a different release? Duration math lands you in the wrong scene.
- Ether aligns the subtitle dialogue timelines of the two releases using a piecewise-linear solver—without downloading a single byte of video—accounting for studio logo offsets, PAL 25fps speedup, and inserted/removed scenes.
- That same dialogue engine inspects subtitle cues inside closing credits to detect mid- and post-credits stinger scenes, automatically ending the Skip Credits marker right before the stinger begins.
Viewers never leave the official Plex client, yet every person's Home screen is dynamically assembled for them, their device, and the current hour:
- Per-viewer taste models: Tracks affinities across genres, keywords, directors, actors, decades, and languages with exponential time decay—separating completions and comfort rewatches from early abandons and unplayed impressions.
- Hierarchical Thompson-sampling bandits: Row ordering uses a Beta-Bernoulli bandit that blends hand-tuned priors → server-wide evidence → the viewer's own play rate, held stable during an active browsing visit, with fresh exploration when a new client session starts or after an idle break.
- Self-gated learned re-ranker: A pooled logistic-regression model trains in the background during quiet hours on 48-hour impression-to-play attribution (debiasing row and item position at inference). It refuses to activate until it beats the hand-tuned baseline by a strict held-out AUC margin.
- Session-intent & Micro-Reason headers: Clicking through 90s thrillers without pressing Play subtly lifts related rows for the next hour. Detail pages greet the viewer with a calibrated decision header:
96% Match · Directed by Denis Villeneuve · Ends at 10:45 PM(resume-aware, local time, never faked for new users).
Everything is managed through /ether/—a fast, keyboard-friendly web UI built around live previews and slide-over drawers. Zero YAML files required.
Global TMDB trending charts refresh hourly and survive restarts. Continue Watching leads the default discovery layout, followed by Trending Now. Browseable collections and discovery rows have independent placement controls, with movie-genre and TV-network/studio defaults. Catalog → Library visibility adds optional, previewable country, language, genre and numeric exclusion rules without replacing the catalogue browser or launching provider searches.
Inspect what the personalization engine has learned for each viewer—their top picks, taste confidence, peak viewing hours, typical session length, and genre/person affinities—alongside granular per-person content ratings, time windows, and stream caps.
Per-Viewer Taste Profile — learned affinities, top picks, confidence & viewing habits |
Viewers & Household Guardrails — activity totals, age presets & stream limits |
Compose your server's Home screen with global rules and per-viewer overrides, previewing any viewer's exact live rows before saving. Build smart collections visually—or let viewers type natural descriptions like "80s sci-fi under 2 hours" straight into the Plex search bar to generate an instant browsable collection (with zero AI required, and optional local/API LLM refinement when enabled).
Home Designer — live per-viewer row composition, pinning & scheduling |
Smart Collections — rule builder, generated posters & split preview workspace |
Design versioned poster overlays (Cinema, Spotlight, Essential) with IMDb, Rotten Tomatoes, Letterboxd, and TMDB scores. Quality badges (4K, HDR, Dolby Vision, Atmos) are strictly truthful—rendered only when backed by observed media facts. In Live TV, combine M3U/XMLTV and Xtream feeds with 24/7 virtual channels generated from your own collections.
Metadata & Poster Studio — pure-Go versioned badges from verified release facts |
Live TV & Virtual Channels — 24/7 collection channels, M3U/XMLTV & multi-source failover |
Dial your storage footprint from Pass-through (0 GiB) to Everyday (32 GiB) up to Edge Library (20 TiB) with household-aware movie preloading and rolling TV episode windows on local disk or a Shared NAS pool. Start on standalone SQLite, and when you're ready, migrate to an active-active PostgreSQL cluster through a guided wizard—complete with automatic connection-budget partitioning, leader election, and zero-downtime rolling updates.
Adaptive Media Cache — rolling household shelves, warm windows & Shared NAS support |
Cluster Manager — 1-click guided migration from SQLite to active-active PostgreSQL HA |
| Platform | Download / Image | Details |
|---|---|---|
| macOS 13+ | Ether-<version>.dmg |
Universal menu-bar app (Apple Silicon & Intel) with bundled FFmpeg. (Ad-hoc signed: right-click → Open on first launch.) |
| Windows (x64) | EtherSetup-<version>.exe |
Windows service + system tray app with bundled FFmpeg and automatic firewall rule. |
| Linux | .deb / .rpm (amd64, arm64) |
Dedicated ether systemd service, hardware transcoding group setup (render/video), bundled FFmpeg. |
| Docker | ghcr.io/braedonsaunders/ether:latest |
Multi-arch (amd64, arm64). Ready-made templates for Unraid, TrueNAS SCALE, Proxmox, and Synology in packaging/community. |
services:
ether:
image: ghcr.io/braedonsaunders/ether:latest
container_name: ether
restart: unless-stopped
network_mode: host # enables LAN GDM auto-discovery in Plex apps
environment:
TZ: Etc/UTC
# ETHER_PORT: "32450" # already running Plex on 32400 with host networking? pick another port
volumes:
- ./config:/config
- ./cache:/cache # select /cache during the setup wizard
# devices: ["/dev/dri:/dev/dri"] # optional: Intel QuickSync / VAAPI hardware transcodingOpen http://localhost:32400/ether/ and finish the 4-step wizard:
- Sign in with Plex and claim the server. It appears in every Plex app on your account immediately.
- Add a source: a Usenet provider + Newznab indexer, or a debrid account (Real-Debrid, TorBox, AllDebrid, Premiumize, Debrid-Link, Offcloud) + torrent indexer, Cardigann site or Stremio addon, or both.
- Choose a cache preset (an SSD with 32–50 GiB is plenty to start).
- Paste a free TMDB API key and optional integrations (Trakt, OpenSubtitles, local Ollama/LM Studio).
Full documentation: Installation & Clustering Guide · Owner & User Guide · NAS & Homelab Templates
Do I need Plex Pass?
At home on your local network, no. To stream outside your home, yes. Ether follows Plex's rules just like a standard Plex Media Server: remote playback requires Plex Pass on the server owner's account or a Remote Watch Pass on the viewer's account.
Ether never emulates, unlocks, or bypasses Plex Pass or any paid Plex feature. Every viewer signs in through plex.tv and receives the exact entitlements Plex grants their account. If you love the official Plex apps, support Plex.
Which Plex apps work?
Every official Plex client: Apple TV, iPhone, iPad, Android, Android TV / Nvidia Shield, Fire TV, Roku, PlayStation, Xbox, Smart TVs (LG, Samsung, VIDAA), Plex Desktop, and Plex Web. To the client app, Ether is simply a Plex Media Server on your account.
Does it download whole movies? How much disk space do I need?
By default, no. Ordinary playback fetches only the byte ranges the player is watching plus a bounded read-ahead window (a 20 Mbit/s stream uses ~150 MB per minute) into a self-trimming disk cache. If you have a tiny disk, choose Pass-through. If you have terabytes to spare, you can opt into the Managed Shelf, which proactively preloads top household movies and a rolling window of next TV episodes during idle hours.
Won't this hammer my indexers and Usenet providers?
Ether is engineered specifically not to:
- Zero background crawling: Indexers are queried only when a viewer opens/plays a title, when the next episode is about to air/play, or on a slow schedule for watchlisted items.
- Detail-page reuse: Opening a detail page resolves, probes, and caches the keyframe index for 10 minutes—pressing Play reuses that work with zero extra queries.
- Quota & Retry-After discipline: Per-indexer daily API and download caps are tracked durably across restarts;
429andRetry-Afterresponses pause that indexer cleanly while falling back to others. - Minimal health sampling: Health checks sample ~12 spread articles and bail out on the first confirmed miss across all providers.
Always check your indexer's terms of service—some private indexers restrict streaming engines.
Will my debrid account get flagged for multiple IPs?
No. Every stream is fetched by your Ether server and served from Ether to the viewer. Your debrid provider only ever sees your Ether server's IP address, even when family members stream remotely from their phones or TVs. (If you run a multi-node cluster, keep your nodes behind the same WAN IP; Ether's Cluster page warns you if nodes egress from different public IPs.)
How does Ether treat my Real-Debrid account?
Real-Debrid no longer reports which torrents it holds, so Ether adds only the top few candidates for a title you open, keeps the ones that are ready instantly and removes the rest. Answers are remembered so the same torrent isn't checked again, API calls are limited to four at a time, and rate limits pause the account cleanly. Files Real-Debrid refuses to serve (infringing_file) are removed and skipped in favour of the next release; when it refuses new torrents in a row, Ether pauses adding for a few minutes rather than retrying. A Stremio addon configured with your key can mark which torrents are cached, which saves those checks.
Can I run Ether alongside my existing Plex Media Server?
Yes—and if you have local media files on disk, that's the recommended setup. On the same machine, Ether notices Plex Media Server already holds port 32400 and moves itself to 32450 (the installers' shortcuts follow it), so open http://localhost:32450/ether/. In Docker with network_mode: host, set ETHER_PORT to the port you want. Both servers then appear side-by-side in your Plex apps. You can also import your existing PMS watch history, ratings, collections, and playlists into Ether in read-only mode.
What does Ether phone home to?
Nothing. There is zero telemetry or analytics. Ether communicates only with plex.tv (authentication, claiming, sharing, certificates), TMDB, the providers/indexers/services you configure, and GitHub's release feed when checking for updates.
Ether is backed by 2,600+ offline unit, fault-injection and fuzz tests, recorded protocol conformance checks against real Plex Media Server fixtures (internal/pmsconform), and hardware transcoding verification across Apple VideoToolbox, NVIDIA NVENC (plus optional Windows RTX Video Super Resolution), Intel QuickSync, and VAAPI.
| Capability | Status |
|---|---|
| TMDB Catalogue, Browse, Conversational Search & Collections | Working |
| Personalization Engine, Taste Models & Home Designer | Working |
| Usenet Streaming Engine, PAR2 Oracle, Health Checks & Failover | Working |
| Debrid Streaming (Real-Debrid, TorBox, AllDebrid, Premiumize) | Working |
| Debrid Streaming (Debrid-Link, Offcloud) | New: built from the published APIs, awaiting reports from live accounts |
| Official Plex Apps (TV, Mobile, Desktop, Web) | Working |
| Pure-Go Poster Overlays, Skip Markers & Subtitle Alignment | Working |
| Hardware Transcoding & Optional Windows NVIDIA RTX Video VSR | Working |
| Live TV Guide, Virtual Channels & M3U/XMLTV/Xtream | Working |
| PostgreSQL Active-Active HA Clustering & Shared NAS Cache | Working |
Current boundaries:
- Usenet archives must be store-mode (
m0, plain or password-encrypted RAR4/RAR5/7z); compressed archives and RAR-wrapped torrents are skipped during resolution. - NVIDIA RTX Video Super Resolution (
nvenc-ngx-vsr) requires native Windows, an NVIDIA RTX GPU, andNVEncC649.38 with NGX DLLs (installed automatically when enabled unless a custom path is configured), is off by default, targets SDR H.264 HLS/DASH streams within configured height/concurrency bounds, and falls back to ordinary ABR renditions when bandwidth or concurrency requires it. - No Plex Relay support—remote viewers connect directly via UPnP/NAT-PMP, a port forward, or your reverse proxy.
- No DVR recording.
Ether is an independent, clean-room implementation of the HTTP protocol used by compatible media client applications. It contains no proprietary Plex code, assets, or binaries. Ether ships no media content, no Usenet providers, no indexers, no Cardigann site definitions, no debrid accounts, and no third-party API keys. Owners supply their own accounts and are solely responsible for their configuration and compliance with applicable laws and service terms. See LEGAL.md.
"Plex" is a trademark of Plex, Inc. Ether is not affiliated with, sponsored by, or endorsed by Plex, Inc. This product uses the TMDB API but is not endorsed or certified by TMDB.








