ether

braedonsaundersGPL-3.0活跃维护

不存片源的媒体服务器,一次部署即可为 Plex、Jellyfin、Emby、Infuse、Stremio 等客户端按需串流 TMDB 目录,内容来自 debrid 账号或 Usenet。

A media server that holds no media. One install serves Plex, Jellyfin, Emby, Infuse, Swiftfin, Silo and Stremio apps, streaming the TMDB catalogue on demand from your debrid accounts or Usenet.

v0.3.6发布于 2026-11-09 14:30 UTC215star +2 / 7 天30fork同步于 2026-11-10 12:04 UTC

怎么上手

README 里没有找到可直接复制的安装命令

README 里没有找到可直接复制的安装命令,请到 README 或官方文档查看安装方式。

硬件要求按 README 关键词推断
支持 Apple Silicon有 Docker 镜像
下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

这个项目的说明还在生成中,先参考下面「最近发版」和 README。

最近发版

5 个版本v0.3.6
  1. v0.3.6Ether 0.3.6最新正式版2026-11-09 · 2026-11-09 14:30 UTC

    Ether v0.3.6

    Highlights:

    • Decade channels on every install: CHROMA 80, RIOT 90, ORBIT 00 and SHIFT 10 are full weekly TV channels built from your own catalogue, with rebuilt era graphics.
    • Live TV that keeps playing: buffered recovery from provider drops and format changes, a stability setting per server and per channel, and channel visibility per app.
    • Quality profiles redesigned the Radarr/Sonarr way. Profiles reset to the new defaults on upgrade; see Upgrading.
    • Faster starts on Jellyfin, Emby, Silo and Stremio, and quicker debrid and add-on playback.
    • Collections start empty and grow from templates: more than 200 templates in starter bundles, translated into all 20 console languages.
    • Sources › Statistics and Usage show how every source is doing, plus fixes for many reported Plex, Android, Roku, Infuse and Usenet issues.

    Showcase decade channels

    • Four decade channels ship with every install: CHROMA 80, RIOT 90, ORBIT 00 and SHIFT 10. Each has a realistic weekly schedule: dayparts, cartoons, reruns, themed prime-time nights, weekend and late movies, a Sunday marathon and short filler before midnight.
    • Built from your catalogue. Series rotate through a channel in groups, and each one resumes at the episode it reached. Movies come from a popularity pool for the era. Schedules refresh daily without moving a programme someone is watching.
    • Hidden until they can be filled. A channel stays off until your catalogue has enough to fill it. A decade channel you delete stays deleted.
    • Era graphics, rebuilt. Each decade has its own broadcast package: chrome wordmarks and VCR clocks for the 80s, zine collage and VHS cues for the 90s, Y2K gel and glass for the 00s, and flat tiles and wipes for the 10s. Up next and tonight cards show a short description and the next four programmes.
    • Their own guide logos, Apple TV included (#391). Apple TV loads them from a public link tied to this release; other apps get the same logo from your server.

    Live TV and IPTV

    • Commercials and bumpers from a link. Import video clips from a link adds clips from YouTube and other sites to your break reels. Ether can install yt-dlp for you in one click and verifies the download, and Update yt-dlp keeps it current.
    • Choose which apps show each channel. Show in apps on the channel drawer (and Show in apps… for several channels at once) controls Plex, Jellyfin, Emby, Silo, IPTV apps and M3U separately. Channels are visible everywhere by default, and viewer access rules still apply.
    • Stability presets. Choose Fastest, Balanced or Rock solid for the server, with a per-channel override. Larger reserves trade some distance from the live edge for more tolerance of provider interruptions.
    • Recovery without re-tuning. Live playback rides out reconnects, missing segments and audio or video format changes, and fails over to a healthy backup source while the viewer still has buffer. Recovery may briefly show the reconnect screen.
    • Provider connections are released when playback ends, so another channel can start under a stream limit.
    • IPTV refresh controls. Combine a scheduled refresh with an optional refresh when viewers come back, with a minimum cooldown. A failed refresh keeps the last good lineup and guide.
    • Guide imports update only changed programmes instead of rewriting the whole guide.
    • Guide browsing adds a programme inspector, multi-day navigation, prime-time and late-night jumps, a channel group filter and bulk select. Thanks to @drondeseries for #377.
    • Channel logos on Apple TV (#391). With remote access on, your own virtual channels' logos reach Apple TV through a signed link that carries no token. Android guide thumbnails are authenticated, Plex Web gets working l
  2. v0.3.5Ether 0.3.52026-11-07 · 2026-11-07 17:03 UTC
    查看更新说明

    Ether v0.3.5

    Highlights:

    • On Air: virtual channels are rebuilt as continuous TV channels, with styles, break reels, personal channels and a Style Studio for on-air graphics.
    • Xtream everywhere: an Xtream provider can now supply movies and shows as well as Live TV, and a new IPTV apps (Xtream) app lets viewers watch Ether in IPTV players such as TiviMate and Televizo.
    • Server roles on Kubernetes: a new Helm chart can split Ether across machines, with source and transcode nodes that can be lost mid-playback without stopping the stream.
    • Movie and TV show quality profiles with Radarr/Sonarr-style imports that can stay in sync.
    • Closer to a real Plex Media Server for playlists, play queues, downloads, track details and live updates, plus fixes for many reported Plex, Jellyfin and Android issues.
    • AI for catalogue search and guide matching, and per-viewer catalogue rules.

    Apple TV browsing performance

    • Section rows render only the visible cards while preserving the full paging window.
    • Watch-history timestamps and Continue Watching episode preparation use batched database reads, preserving viewer episode order and Specials preferences.
    • Continue Watching chooses next episodes from keys, numbering and watch state, then loads full metadata only for the selected episodes. Watched-count badges use the same small reads for unrestricted viewers. Restricted-viewer policy checks retain the full-data path.
    • On Deck batches remembered audio/subtitle choices and episode-order preferences across the returned page, preserving Plex stream metadata without per-episode database reads.
    • Apple TV show and season pages share a short speculative playback-preparation allowance. Explicit Play still waits for the admitted source and its track information.
    • AI recommendation features remain available. Related-title pages serve cached model results immediately while generation runs in the background; they never fall back to a synchronous LLM request. Home themes continue to be prepared by background model builds.
    • Upgrades repair inaccurate SQLite catalogue statistics that could make a per-show lookup scan a large part of the catalogue. New indexes receive complete statistics.

    Release-candidate fixes

    • Health no longer treats plex.tv’s failed direct connectivity probe as proof that a published reverse proxy is broken. Confirmed remote clients show Reachable; an unverified custom connection shows Published without a repair warning.

    • Docker version and latest tags are promoted only after release CI and publication approval; build jobs publish commit-specific candidate tags.

    • On Air startup warming skips unused styles instead of rendering the bundled preview library on servers with no virtual channels (#359). Explicit Studio previews remain available.

    • Anime season-pack selection carries the known absolute episode number into debrid file matching, supports numbered files inside an explicit season folder, and rejects a different numbered episode even when it is the only file (#360).

    On Air: virtual channels

    Virtual channels now play like real TV channels.

    • One continuous stream per channel. Each channel plays as a single stream on HLS, DASH and plain HTTP. Programme changes no longer interrupt playback, and viewers watching the same channel share one encode.
    • Faster tune-in. Joining a channel mid-programme starts sooner, and the two channels you watched most recently stay ready. A channel nobody is watching shows its ident while the programme loads. Channels nobody is watching release their provider connection immediately, so switching channels under a stream limit no longer lands on the can't-play screen.
    • New programming editor. The channel drawer has Programming, Schedule, Style, Viewers and Details tabs. Programming supports dayparts and programme
  3. v0.3.4Ether 0.3.42026-11-05 · 2026-11-05 13:24 UTC
    查看更新说明

    Ether v0.3.4

    Live TV

    • Live TV now groups Channels, Sources and Guide in separate tabs, with a picture-backed On Now strip. The guide stays in place while you edit a channel.
    • Large lineups use paged channel lists, batched imports with progress, and narrower guide requests. Bulk channel edits and source refreshes coordinate across cluster nodes.
    • Xtream sources have improved account details, channel groups and guide matching. Thanks to @evulhotdog for the Live TV work in #333.
    • Channels whose provider redirects through a plain-HTTP CDN server (for example https panel → http CDN → https CDN) now tune instead of failing with 503. Source headers and logins are never sent over the plain-HTTP hop.
    • Virtual channels play a silent Off air card during scheduled gaps instead of failing playback. The card shows the channel and the next programme's start in the channel's time zone, on both HLS and DASH.
    • Programme metadata and DVR guide identifiers better match Plex's guide format. On Apple TV, highlighting a programme in the guide shows its title and description again. Tune failures record the real reason.

    Playback and Plex apps

    • Playback recovery, timestamp handling, subtitle delivery and seeking have fixes across HLS, DASH and Matroska paths.
    • Dolby Vision profile 5 to SDR conversion uses the Dolby Vision metadata, including with hardware encoding. Compatible HDR10 fallback copy streams strip Dolby Vision signaling; desktop Plex apps retain native direct play. These fixes do not yet establish that the reported Shield/LG crash in #328 is resolved.
    • Playback errors report clearer failure reasons, transient failures remain retryable, and an unknown duration is no longer presented as a confirmed duration.
    • Download subtitle/quality selection, VAAPI subtitle burn-in, Plex for Kodi part reads and several Emby/Jellyfin client paths have compatibility fixes.
    • Continue Watching refreshes, watch-position database contention and post-play selection have fixes. Regular episode playback no longer selects a special as the next regular episode.
    • Plex claim changes preserve the live server identity, reject ambiguous claim input and avoid stale queued device removal. This does not establish the cause of the separate PMS claim-loss report in #330.

    Owner console and integrations

    • Updates shows routine backup/startup work as normal progress and reconnects automatically. Opening Updates checks for a new version, and a manual check remains available.
    • Activity gains playback and delivery information, with corrected field mapping and localized formatting.
    • Direct watch-state synchronization with an owner-run Plex Media Server is available under Integrations → Plex Media Servers. Add the server and its owner token, map viewers explicitly, and select a direction. This is separate from Plex account watch sync, which remains unavailable. Ratings and unwatches made on the PMS are not imported. Real PMS write-endpoint validation remains outstanding; see #288.
    • Login offers only the sign-in methods advertised by the server. Calendar empty results, settings navigation, translated labels and clipboard feedback have corrections.
    • Studio retains its Describe/Code editor. The unused mock editor and development-only workbench were removed.

    Sources and reliability

    • Indexer traffic and repeated NZB downloads have further reductions, and source retry work is bounded. Release-feed matching avoids scanning the whole catalogue for every page.
    • Live TV probes and imports recover when the original caller cancels shared work. Metadata and guide retry delays are capped.
    • Subtitle searches cache empty results briefly. TheIntroDB and Silo skip settings now apply consistently.
    • Credential handling, plugin isolatio
  4. v0.3.3Ether 0.3.32026-11-04 · 2026-11-04 15:35 UTC
    查看更新说明

    Ether v0.3.3

    Plugins and Studio

    Ether now has a plugin system. Plugins add real things to the server — Live TV channels, video sources, catalogues, metadata, subtitles and Home rows — and appear where those features already live rather than on separate pages.

    • Studio builds plugins from a plain-language description, with a live preview on your own library, or lets you edit the code directly with a built-in reference.
    • Stremio add-ons can be installed from their link and become ordinary, fully editable plugins. Add-ons with their own settings page can be configured from inside Ether.
    • Native debrid provider plugins can supply cached torrents through Ether's normal debrid playback.
    • Six example plugins are included as source examples; none are installed automatically.
    • Each installed plugin shows its health, what it adds, its setup and its recent activity.
    • The Model Context Protocol (MCP) integration lets AI apps use the same plugin and collection tools.

    New in the owner console

    • Activity › Experience shows how playback is going for each viewer: start time, buffering, failed starts, delivered bitrate, most-used device, hours watched, direct play versus transcode, and source switches, with a plain-language likely cause. Start time and buffering are measured from this version on.
    • Playback › Pre-rolls plays your own short videos before movies or episodes. Rules cover viewers, genres, collections, ratings, dates, home or away, devices, frequency, and the first episode of a session. What would play? shows which pre-roll wins for a viewer and title, and why. Existing Plex Media Server pre-roll settings can be imported.
    • Describe a collection builds a collection from a sentence, showing the posters and each step as it works. A build continues if the browser disconnects, and the result can be saved, refined or opened in the editor.
    • Library › Catalog can add titles to your own or a household viewer's watchlist, synced to linked Trakt accounts.
    • TMDB user lists can be used as a collection source.
    • Quality profiles have a Custom score step that can be placed anywhere in What matters most.
    • The indexer Client identity card shows the exact user agent each choice sends. Contributed by @evulhotdog.
    • Cache Explorer explains where each cached release came from, and Activity shows read-ahead. Contributed by @evulhotdog.
    • The console splash animation can be turned off under Server › General.
    • Playback now appears directly under Sources in the sidebar.

    Indexers

    New-release detection now works the way Radarr and Sonarr do, and Ether is far gentler on indexers.

    • Each indexer's RSS feed is read every 30 minutes and matched locally against movies waiting for a release, so new movies typically appear within half an hour of a release being posted.
    • Title searches happen only on events, such as a movie entering the release window, never on a timer. Background searches ask one indexer at a time and stop at the first usable release. Playback still searches every indexer at once.
    • Background work is limited to a small share of each indexer's daily limit, learned from the indexer when it reports one or set on the indexer. Requests are spaced out, and Retry-After and limit errors are honoured.
    • A downloaded NZB is reused from disk instead of being fetched again. Indexer statistics now count only downloads the indexer actually served.
    • Built-in torrent sites gain a "latest releases" feed.

    Plex and other apps

    • Faster Plex pages: detail pages, post-play and search no longer write to the database or wait on TMDB while loading, and Home rows avoid repeated per-item queries.
    • Subtitles:
      • Embedded subtitles now show on Plex for Android, Android TV and Plex Web.
      • Subtitles stay in sync after resuming or seeking.
      • ASS subtitles are burned in correctly when Plex Web asks. Docker images now include fonts for this.
    • Player stability:
      • Plex Web and Plex fo
  5. v0.3.2Ether 0.3.22026-11-03 · 2026-11-03 02:02 UTC
    查看更新说明

    Ether v0.3.2

    Owner console

    The console has been reorganized and reviewed page by page, including General, Apps, Integrations, Catalog, Quality and viewer management. Settings now follow the task they control, with clearer setup drawers, connection instructions and recovery actions. All owner-facing copy is translated into 20 languages.

    • Manage Plex people, sign-in methods, sharing and viewer settings from the revised viewer pages.
    • Set up poster providers independently, keeping credentials with each provider.
    • Configure remote console access explicitly, with revised reverse-proxy guidance.
    • Restore held Plex watch-state changes and retry failed items from the viewer page.
    • Configure the identity Ether presents to Newznab and Torznab indexers.

    Playback and reliability

    • Configurable Usenet read-ahead keeps a bounded window of the playing title in cache, with background priority and pause handling.
    • Paused viewers no longer reduce the read-ahead allowance of active viewers.
    • Playback quality rules take precedence over remote-connection preferences.
    • Improved Plex subtitle handling, first-visit version selection and foreign-language audio selection.
    • Improved handling of debrid provider refusals, indexer health-check volume, Live TV channel switches and idle CPU use.
    • FreeBSD local-filesystem compatibility is corrected. Unraid now gets explicit startup guidance to use a pool/disk path; /mnt/user remains unsupported for the data/cache path.
    • Plex Web advanced filters, player settings and subtitle-download completion have been corrected.
    • Owner collection rows now wait briefly for their first load, and cancelled NZB fetches no longer cause false indexer outage alerts.
    • Visibility rules can hide titles from browsing while retaining search and playback access. The Everything else: Hide policy now applies consistently to browse and search.
    • Real-Debrid episode selection now selects the main videos in season packs, and failed payload release operations are retried.
    • Repeated Home discovery avoids unnecessary database writes; MDBList source order and Intel/AMD VA-API labels are corrected.
    • The Plex certificate self-check uses the local listener before the LAN address.
    • Collection URLs, zero-vote handling and the Now playing decision display have been corrected.

    Upgrade notes

    • Existing poster-provider settings migrate to per-provider credentials; an active provider keeps its source and credentials.
    • The old movie home-release gate is replaced by the New releases choice. When the old gate was enabled with Right away, it becomes On digital release. Rule browsing and visibility previews use the same cutoff as viewer browsing.
    • Upcoming movies and episodes default to off for new configurations; explicit existing settings are preserved.
    • Review General, Apps, Integrations, Catalog, Quality and viewer pages after upgrading.
    • The plugin system remains planned for v0.3.3 and is not included in this release.

    Included issue fixes

    #273, #271, #270, #268, #267, #265, #264, #262, #261, #260, #259, #238, #222, #191; also #180, #212, #214, #224, #226, #235, #242, #243, #246, #251 and #257.

    Release-ranking policy discussion #252 remains open. The Plex Apps “At home” status correction is scheduled for v0.3.3.

    Full changelog

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    Why Ether exists

    A typical automated media setup is built from several separate projects: Sonarr, Radarr, Prowlarr, SABnzbd, Overseerr, Kometa, Tautulli, and debrid mount tools. Wiring them together means download clients, path mappings, webhooks, and FUSE or WebDAV mounts that a media server has to scan. A new title still has to download, unpack, and be indexed before anyone can press Play.

    Ether takes a different approach to the on-demand case. Instead of presenting virtual files for another media server to scan, Ether speaks your apps' own languages. It is a Plex server to Plex apps, a Jellyfin server to Infuse, Swiftfin, and Findroid, an Emby server to Emby apps, and a Silo server to Silo, backed by the live TMDB catalogue and an on-demand byte-range streaming engine.

    When you open your app, 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 those bytes.

    What your family experiencesWhat you stop maintaining
    Press Play and watch. Titles are browsable, searchable, and playable inside stock Plex, Jellyfin, Infuse, Swiftfin, Emby, Silo, and Stremio apps.No request queue. No "Can you add this?" 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.
    Pick up anywhere. Start a movie in Plex on the living-room TV and resume it in Infuse, Swiftfin, or Silo on an iPad.No separate watch-sync scripts or mismatched progress across apps.
    Plays on demand. 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 0 GiB 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.

    Every app, one server

    Ether is a Plex server to one app and a Jellyfin server to another, at the same time. Turn on the protocols your household uses under Server › Apps.

    App / protocolDefault portSupported clients and how they connect
    Plex32400 TCP (32410, 32412–32414 UDP GDM)Official Plex apps on Apple TV, iOS, Android, Android TV / Shield, Fire TV, Roku, PlayStation, Xbox, Smart TVs (LG, Samsung, VIDAA), Desktop, and Web. Discovered automatically through plex.tv and LAN GDM.
    Jellyfin8096 TCP (7359 UDP discovery, or /jellyfin on main port)Infuse, Swiftfin, Findroid, Streamyfin, Jellyfin for Android TV, JellyCon, and Jellyfin for Roku. Sign in with Quick Connect or an Ether viewer password. (Web-wrapper apps such as Jellyfin for Android phones and Jellyfin Desktop are not supported.)
    Emby8097 TCP (or /emby on main port)Native Emby apps (Android TV, iOS, Android, Roku, Smart TVs) and Infuse. Sign in with an Ether viewer password or Quick Connect. (Apple TV Emby for TV 2.x web-shell is not supported.)
    Silo8090 TCP (or /silo on main port)Native Silo apps for Apple TV, iOS, macOS, Android, and Android TV. Sign in with an Ether viewer password or approve a device code in /ether/me.
    StremioMain HTTPS portAny Stremio app. Each viewer creates a private addon install link in the viewer portal (/ether/me). Requires an https:// server address (except http://127.0.0.1 on the same machine): use your https://*.plex.direct:32400 address when Plex is claimed, Tailscale HTTPS, or a reverse proxy with TLS.
    Files (WebDAV)Main portInfuse, VLC, Kodi, and rclone. Each viewer creates a read-only WebDAV app password in /ether/me.
    M3U & XMLTVMain portChannels DVR, TiviMate, and IPTV players. Each viewer creates private playlist.m3u and guide.xml links in /ether/me.
    IPTV apps (Xtream)Main port (/xtream)TiviMate, Televizo, IPTV Smarters and other Xtream-compatible players get Live TV, movies and series. Off by default; turn it on under Apps, then create a revocable login per device (one connection each). No timeshift or catch-up.
    DLNALocal networkLAN TVs and media players with a ContentDirectory browser, governed by the owner-selected guest viewer's library and rating rules.
    • Viewers are protocol-neutral: Ether keeps its own viewer accounts, and Plex is optional. If you connect Plex, people you share your Plex server with appear automatically as Ether viewers and can approve Jellyfin Quick Connect or Silo device pairing in /ether/me using their Plex sign-in.
    • Cross-app progress and preferences: Watch history, resume positions, ratings, and subtitle preferences (mode, language order, and styling) live on the Ether viewer account. Setting subtitle preferences in Silo or Jellyfin applies across every app. Silo Watch Party and Jellyfin SyncPlay clients also share a common room clock.
    • One playback engine: Every protocol routes through one session broker (internal/sessions). Concurrent stream limits, bandwidth budgets, household safety rules, and owner Stop actions apply across all apps together, and concurrent plays of the same release share one upstream fetch.
    • Verified protocol conformance: Jellyfin (target 12.4), Emby (target 4.10.2), and Silo responses are verified offline against recorded reference corpora (internal/conform, cmd/conformdiff) with zero blocking diffs. Plex responses are checked against recorded Plex Media Server fixtures (internal/conform/plex, cmd/conformdiff, cmd/plexparity) with a CI gate on load-bearing fields.
    • No borrowed web clients: Ether ships no third-party web client code. Opening /web on a Jellyfin or Emby listener serves a translated Ether page naming the supported native apps and how to connect.

    Alongside your local library

    Keep Plex Media Server, Jellyfin, or Emby and the tools that curate the files you own. Ether runs alongside them for on-demand titles outside your local disk collection.

    If you run todayWhat Ether does instead
    Plex Media Server, Jellyfin, or Emby (for streaming)Clean-room implementation of the Plex, Jellyfin, Emby, Silo, Stremio, WebDAV, M3U/XMLTV, and DLNA protocols from one server. (Keep your existing server for local files on disk.)
    Sonarr & RadarrResolution happens at Play time (or during detail-page warmup) using your quality profiles, a draggable "What matters most" ranking ladder, Never play filters, edition rules, release pins, and TRaSH Guides or Profilarr (Dictionarry) profile imports.
    Prowlarr & JackettNative Newznab and Torznab manager with daily quota tracking, Retry-After backoff, result caching, 1-click Prowlarr import with tag sync, a built-in Cardigann engine for the definitions you add (no bundled definitions), and Stremio stream addons as sources.
    SABnzbd, NZBGet, NzbDAV, AltMountNative NNTP connection pools, cross-tier busy spillover, learned connection limits, 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_debridNative HTTPS range streaming for Real-Debrid, TorBox, AllDebrid, Premiumize, Debrid-Link, and Offcloud, including single-episode extraction from torrent season packs without FUSE or WebDAV mounts.
    Overseerr & JellyseerrReleased 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 from verified release facts.
    BazarrAutomatic OpenSubtitles matching, on-pick subtitle timing correction (against embedded text tracks or speech audio), mojibake repair, and piecewise dialogue alignment across different cuts without downloading video.
    Tautulli & NotifiarrBuilt-in real-time session monitor, Plex Web Dashboard /statistics support, viewing analytics (7 to 365 days), provider throughput graphs, weekly HTML digests, and rule-filtered alerts (Discord, Slack, Telegram, Push, Email, ntfy, Gotify, or webhook).
    MaintainerrSelf-evicting segment cache with repeat-watch retention credit and rolling TV episode preloading that slides forward as your household watches.
    ErsatzTV, Tunarr, ThreadfinTurn any collection, filter, or weighted mix into a 24/7 virtual TV channel with a paintable weekly schedule grid alongside M3U/XMLTV and Xtream feeds, served over HLS and DASH.

    Under the hood

         Plex · Infuse · Swiftfin · Findroid · Jellyfin · Emby · Silo · Stremio · WebDAV · DLNA
                                        │  browse · search · Play · scrub
                                        ▼
      ┌──────────────────────────────────────────── ETHER ────────────────────────────────────────────┐
      │  App Protocols           Plex · Jellyfin · Emby · Silo · Stremio · WebDAV · M3U/XMLTV · DLNA  │
      │  Shared Experience       Personalization · Taste models · Unified age ratings · 17-hub search │
      │  Session Broker          Capability registry · Stream grants · Shared limits · Watch Party    │
      │  Smart Resolver          Ranked quality ladder · TRaSH formats · Measured 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   │
      │  Subtitle & Cut Aligner  On-pick timing sync · Mojibake repair · Piecewise dialogue solver    │
      │  Media & GPU Transcode   Direct play · Copy remux · HW ABR HLS/DASH/HTTP · RTX Video VSR      │
      └──────────────────────────────────┬───────────────────────────────────────┬────────────────────┘
                                         │                                       │
                            Usenet Providers (Primary + Backfill)       Debrid Accounts (RD · TorBox · AD · PM · DL · OC)
                            + Newznab Indexers & Cardigann Sites        + Torznab, Stremio Addons & Cardigann
    

    1. Native Usenet and debrid streaming without extraction

    • Lazy store-mode archive indexing (including encrypted sets): To open a 60-part RAR4, RAR5, or 7z post on Usenet, Ether reads only the first, second, and last volume headers to infer the uniform layout and expose a seekable io.ReaderAt immediately, 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 and integrity oracle: Ordinary playback does not wait on full PAR2 repair (bounded repair of missing byte ranges is opt-in). Instead, Ether fetches the <1 MiB .par2 index packet in parallel with the first article, matches the MD5 of the first 16 KiB of obfuscated posts against PAR2 file descriptions to recover filenames and volume order, and verifies slice checksums on the spot. Repost message-IDs are kept as per-segment alternates.
    • Truthful mid-file health checks and live hedging: Providers often answer 223 to STAT for DMCA-removed articles that fail with 451 on BODY. Ether combines spread STAT checks with mid-file BODY yEnc-header reads, bails out on the first confirmed miss across all providers, spills over to the next primary provider when connections are busy, and hedges stalled live article reads on spare capacity.
    • Surgical Matroska damage concealment and live failover: Priority semaphores protect live reads over read-ahead and background prefetch (and yield debrid prefetch to mid-file range seeks). If an article is missing mid-stream inside an unlaced Matroska cluster, Ether skips unaffected clusters via container cues and conceals the gap while warming an alternate release in the background. If a release stalls or fails, Ether swaps to another release at the same scene with matched audio loudness.

    2. Server-side NVIDIA RTX Video Super Resolution (nvenc-ngx-vsr) and GPU pipelines

    90s sitcoms, classic anime, and DVD-era 480p/576p/720p shows look soft on a 4K TV, and client-side upscalers exist on only a few 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 inside the server's HLS/DASH transcode pipeline, cleaning compression artifacts and reconstructing edges before the stream reaches an Apple TV, Roku, iPad, or browser. It takes 8-bit SDR, progressive sources (H.264, HEVC, MPEG-2, VP9, AV1) and outputs H.264; interlaced sources, selected subtitles, and audio that needs converting use the ordinary transcoder.
    • Self-protecting ABR and fallback: RTX VSR is opt-in (off by default) with owner-configurable source/target resolution caps (for example <=720p -> 1080p), quality tiers, and concurrency limits. Enhancement is reserved for the top ABR rendition; if client bandwidth dips or the GPU concurrency limit is reached, Ether drops to ordinary hardware or software ABR renditions without interrupting playback.
    • Probed FFmpeg capabilities: At startup, Ether probes the installed ffmpeg for available filters and hardware encoders across NVIDIA NVENC, Intel QuickSync, VAAPI, and Apple VideoToolbox. Builds without libzimg (zscale) use built-in colorspace/scale filters for SDR conversions and libplacebo, OpenCL, or hardware tone mapping for HDR-to-SDR conversions.

    3. Subtitle timing correction and piecewise dialogue alignment

    • On-pick timing correction and mojibake repair: Subtitles are downloaded only when a viewer explicitly selects one. When a viewer picks an external text subtitle, Ether aligns its cue times against an embedded text subtitle track read via container byte ranges (or speech-energy cross-correlation across short audio windows), fitting both constant offset and frame-rate ratio (23.976 / 24 / 25 fps) within a bounded time budget. Mis-decoded Windows-1252/Latin-1 UTF-8 text (mojibake) is repaired automatically, and viewers can upload .srt, .vtt, .ass, or .ssa files directly from Plex Web.
    • Cross-cut alignment: When a stream fails over from a Theatrical WEB-DL to an Extended Blu-ray rip, or when TheIntroDB skip markers were timed against a different cut, Ether aligns the subtitle dialogue timelines with a piecewise-linear solver without downloading video, accounting for studio logo offsets, PAL speedup, and inserted scenes, and stops Skip Credits right before mid- or post-credits stinger dialogue.

    4. Personalization across your apps

    Every person's Home experience is 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 and self-gated re-ranker: Row ordering uses a Beta-Bernoulli bandit that blends hand-tuned priors, server-wide evidence, and the viewer's own play rate, held stable during an active browsing visit. A background logistic-regression re-ranker activates only when it beats the baseline on held-out AUC.
    • Server-driven Home and virtual libraries: Plex and Silo receive the full server-driven Home. For Jellyfin and Emby apps (including Infuse, Swiftfin, Findroid, and Streamyfin), Ether publishes each viewer's top personalized rows as virtual libraries in /UserViews (For You, Because you watched…, Trending), populates Jellyfin's Suggestions tab (/Movies/Recommendations), and seeds default home section ordering for new viewers while keeping Continue Watching, Next Up, and Latest per viewer.

    The owner experience

    Everything is managed through /ether/, a fast, keyboard-friendly web console with live previews, slide-over drawers, an Overview Next steps bar, and full translations in 19 languages alongside English.

    The sidebar groups everything by what you are doing:

    • Overview, Activity & Viewers at the top for live sessions, 30-day playback history, and household accounts.
    • Library: Catalog (browser, three New releases modes, and ordered show/hide Rules), Collections, Home (Home Designer), Live TV, Calendar, and Metadata (Ratings, Artwork, Episode order).
    • Streaming: Sources (Debrid, Usenet, Indexers, Stats on one level), Quality (Profiles, Rules, Check quality, Searching, Blocklist, Pinned, History), Cache, and Playback.
    • Server: General (every app's port and address under How apps connect, plus an optional outbound HTTP/SOCKS5 proxy for source traffic), Apps, Integrations, Notifications, Cluster, and Maintenance (Backups & import, Updates, Health, Logs). Press ⌘K (Ctrl+K elsewhere) to search pages and individual settings; choosing a setting opens its page, expands More options if needed, and highlights the row.

    Release profiles, sources, and new-release modes

    Quality profiles are scoped to a media type, the way Radarr and Sonarr work: every profile is for Movies or for Shows, and each media has its own At home and Away default. Quality › Profiles has a Movies | Shows picker; the profile table, its default badges, new profiles and imported presets follow the selected media. Import presets from TRaSH Guides, Profilarr or pasted Radarr/Sonarr JSON (a Radarr profile becomes a movie profile, a Sonarr one a show profile), and turn on Keep imported profiles in sync to pick up guide changes on a schedule or with Sync now. Upgrading from 0.3.4 splits each existing profile into a movie and a show copy with the same name, so every rule and default keeps choosing exactly what it did before.

    Each profile opens in a drawer organized in the order Ether evaluates candidates:

    1. Never play: resolution and runtime-based size bounds for movies and episodes, Allow CAM, Allow HDR, Allow Dolby Vision, and Only play / Never play rules.
    2. What matters most: a single numbered, drag-to-reorder ranking ladder (Prefer rules, Audio language, Connection fit, Resolution, Release type, HDR, Played fine recently, Video codec, Audio format, Larger file).

    Quality › Rules pick a profile per device, app, platform or viewer (first match wins) and can apply to movies, shows or both; a rule for both uses the same-named profile of each media. Check quality, a tab of its own, shows the quality a viewer gets in a given app, at home or away, for a movie or a show, and which rule decided. A profile’s editor sets the Away default, and Remote bitrate limit sets a shared limit in Mbps. Which source goes first applies to every profile: Start fastest, Usenet first, Debrid first, Always Usenet, or Always cached debrid. The Version menu sets how many same-quality versions to offer.

    In Catalog › Settings, New releases offers three modes: When they can play (recommended: new movies appear once Ether finds a playable release matching your quality profile), On digital release (a digital or physical release date has passed), or Right away. Upcoming content lists unreleased movies and episodes, and is off by default. Content ratings across Catalog › Settings › Rules and viewer content rating limits use a unified age-level model so equivalent ratings (PG, TV-PG, regional 6+/7+) match together.

    Taste intelligence and viewer accounts

    Inspect what the personalization engine has learned for each viewer alongside age-level rating limits, time windows, stream limits, cross-app subtitle preferences, and read-only From Plex defaults (language preferences, share filters, and download permissions synced from plex.tv). Add local viewers or share one-time invite links from the Add viewer drawer.

    Home Designer and Collections Studio

    Compose your server's Home screen with global rules and per-viewer overrides, previewing any viewer's live rows before saving. Build rule-based or Look Ahead (upcoming) collections visually in Collections, or let viewers type natural descriptions like "80s sci-fi under 2 hours" into search to generate an instant browsable collection (with zero AI required, and optional local or API language-model refinement when enabled under Integrations › Language model).

    Live poster studio, On Air channels and 24/7 Live TV guide

    Design versioned poster overlays (Cinema, Spotlight, Essential) with IMDb, Rotten Tomatoes, Letterboxd, and TMDB scores, or connect self-hosted PostersPlus or XRDB, hosted BetterPosters or Rating Poster Database (RPDB), or a custom URL template, each set up under Integrations and picked as the Poster source under Metadata › Artwork. For claimed Plex servers, Apps › Plex › Account also offers an optional Use Plex's metadata for Plex apps toggle (off by default). On Air turns virtual channels into continuous TV channels with generated channel looks, break reels, personal channels for each viewer, off-air and can't-play screens that splice into the same stream, and a Style Studio for on-air graphics. In Live TV, combine M3U/XMLTV and Xtream feeds (IPTV providers live under Sources › IPTV, and an Xtream provider can also supply movies and shows) with 24/7 virtual channels built in a single drawer with a paintable weekly schedule grid in your timezone, playout modes (in order, shuffle, random, marathon, newest first), and repeat-avoidance windows.

    Adaptive media cache, guided recovery, and PostgreSQL clustering

    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. Maintenance › Backups & import provides 1-click guided restore with automatic rollback, in-app service restart, and a startup status and recovery page. Start on standalone SQLite, and when you need multi-node scale, migrate to an active-active multi-node cluster on a PostgreSQL 14+ database you provide through the guided Cluster wizard (Ether does not make PostgreSQL itself highly available). On Kubernetes, the Helm chart (packaging/helm/ether, see docs/kubernetes.md) can also run server roles: besides full nodes, a pod can be a dedicated source or transcode (CPU or GPU) node, and playback moves to another node with no stall if one is lost mid-stream. Specialist roles are Kubernetes-only and need PostgreSQL; the normal installers and Docker Compose always run one full server.


    Install in five minutes

    PlatformDownload / imageDetails
    macOS 13+Ether-<version>.dmgUniversal menu-bar app (Apple Silicon & Intel) with bundled FFmpeg. (Ad-hoc signed, not notarized: if macOS blocks it, use System Settings › Privacy & Security › Open Anyway.)
    Windows (x64)EtherSetup-<version>.exeWindows service and 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.
    Dockerghcr.io/braedonsaunders/ether:latestMulti-arch (amd64, arm64). Ready-made templates for Unraid, TrueNAS SCALE, and Proxmox, plus Synology instructions, in packaging/community.

    PR previews (linux/amd64 only) are published for PRs whose author has write access to this repository, from a branch here or in the author's own fork, as ghcr.io/braedonsaunders/ether:pr-<number>. Previews are unreviewed PR code: only run one if you trust its author, and never in place of a release. The pr-<number> tag moves with each new head. A second tag, pr-<number>-<branch>-<12-char head SHA>, is never replaced; for a strictly immutable reference, pull by the digest shown in the publish run. Eligibility is checked again before every publication, previews remain after a PR closes, and preview tags never collide with release tags.

    services:
      ether:
        image: ghcr.io/braedonsaunders/ether:latest
        container_name: ether
        restart: unless-stopped
        network_mode: host            # Linux only: enables LAN GDM auto-discovery and UPnP
        environment:
          TZ: Etc/UTC
          # ETHER_PORT: "32450"       # already running Plex on 32400? pick another port
        volumes:
          - ./config:/config
          - ./cache:/cache            # used automatically on a fresh install
        # devices: ["/dev/dri:/dev/dri"]   # optional: Intel QuickSync / VAAPI hardware transcoding
        # Docker Desktop (Windows and macOS) or Linux bridge mode:
        # Remove network_mode: host above and uncomment ports:
        # ports:
        #   - "32400:32400/tcp"       # owner console, Plex, and /jellyfin, /emby, /silo paths
        #   - "8096:8096/tcp"         # optional: dedicated Jellyfin port (not needed if using :32400/jellyfin)
        #   - "8097:8097/tcp"         # optional: dedicated Emby port (not needed if using :32400/emby)
        #   - "8090:8090/tcp"         # optional: dedicated Silo port (not needed if using :32400/silo)
    

    Docker Desktop (Windows and macOS): Docker Desktop runs containers inside a Linux VM where network_mode: host does not publish ports to your computer or LAN. Comment out network_mode: host and uncomment ports: ["32400:32400/tcp"] (plus 8096:8096/tcp only if you want the dedicated Jellyfin port instead of http://HOST:32400/jellyfin).

    Open http://localhost:32400/ether/ and complete the setup wizard. If Plex already uses 32400, Ether moves to 32450, and the log shows the address.

    1. Choose your language for the console and default household audio and subtitle tracks.
    2. Choose your apps (Plex, Jellyfin, Emby, Stremio, Silo, DLNA, Files/WebDAV, M3U & XMLTV) and create your owner account: sign in with Plex and claim the server, or create a local Ether owner account (password at least 12 characters).
    3. Add a streaming source and indexer: a debrid account (Real-Debrid, TorBox, AllDebrid, Premiumize, Debrid-Link, Offcloud), a Usenet provider, or both, plus a Stremio addon link, Torznab/Newznab URL, or Prowlarr import (tracker sites can be added later under Sources › Indexers).
    4. Choose a cache preset (an SSD with 32–50 GiB is plenty to start).
    5. Catalogue: official builds include a TMDB key; custom builds without a bundled key need a free TMDB API key. Add Trakt, Simkl, OpenSubtitles, or a local language model (Ollama/LM Studio) later under Integrations.

    Documentation: Installation & Clustering Guide · Owner & User Guide · Multi-App Architecture & Watch Party · Performance Architecture · NAS & Homelab Templates


    Things to know first

    • What Ether is not: Ether is not a local-file media server. It does not scan folders of video files on your disk, and it does not replace Plex Media Server, Jellyfin, or Emby for your personal media collection. Ether also ships no media content, no Usenet providers, no debrid accounts, no indexers, and no tracker definitions.
    • What accounts you need:
      1. Catalogue metadata and artwork come from TMDB. Official builds include a TMDB key; custom builds without a bundled key need a free TMDB API key.
      2. At least one streaming source: a Usenet provider, a debrid service (Real-Debrid, TorBox, AllDebrid, Premiumize, Debrid-Link, or Offcloud), or both.
      3. At least one indexer: a Newznab or Torznab indexer, a Prowlarr instance, or a Stremio stream addon.
      4. Optional: a Plex account if you want to use official Plex apps. Jellyfin, Emby, Silo, Stremio, WebDAV, M3U/XMLTV, and DLNA work with local Ether accounts alone.
    • System requirements:
      • CPU and RAM: 2 CPU cores and 1 GiB of RAM are enough for direct play, container remuxing, and audio transcoding. Video transcoding requires a supported GPU (NVIDIA NVENC, Intel QuickSync, VAAPI, or Apple VideoToolbox) or 4+ CPU cores for software encoding.
      • Disk space: Configurable from 0 GiB (pass-through mode) to 32+ GiB on an SSD for the default segment cache, or multiple terabytes if you enable household preloading.
    • Outbound network activity: Ether sends no analytics or usage telemetry. By default it checks GitHub's signed release feed every few hours for updates and queries TheIntroDB (api.theintrodb.org) for intro and credits skip timestamps during playback; both can be turned off in the console. When Plex is claimed and enabled, it communicates with plex.tv; turning the Plex app off stops Plex sign-in, publishing, sharing, and metadata traffic. See What outbound connections does Ether make? for the full list.
    • Legal responsibility: You supply your own accounts, providers, and indexers, and you are responsible for complying with applicable laws and service terms. Read LEGAL.md.

    Questions you're about to ask

    For Jellyfin, Swiftfin, Findroid, Silo, Stremio, WebDAV, and DLNA, no paid pass is needed at home or away.

    For Plex apps, local network streaming is free. To stream in official Plex apps outside your home, yes: Ether follows Plex's rules like a standard Plex Media Server, so remote playback in Plex apps requires Plex Pass on the server owner's account or a Remote Watch Pass on the viewer's account.

    For Emby apps, Emby's own per-platform app unlock or Emby Premiere rules apply (see Emby's Premiere feature matrix).

    Ether never emulates, unlocks, or bypasses Plex Pass, Emby Premiere, or any paid client feature.

    • Plex: 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. (Plex for LG and Plex for VIDAA receive one automatic media choice so their playback settings remain stable; Play Version is not offered there.)
    • Jellyfin: Native clients including Infuse, Swiftfin, Findroid, Streamyfin, Jellyfin for Android TV, JellyCon, and Jellyfin for Roku.
    • Emby: Native Emby clients (Android TV, iOS, Android, Roku, Smart TVs) and Infuse.
    • Silo: Native Silo apps for Apple TV, iOS, macOS, Android, and Android TV.
    • Stremio, WebDAV, DLNA, and M3U/XMLTV: Stremio apps, WebDAV players (Infuse, VLC, Kodi), LAN DLNA TVs, and IPTV clients (Channels DVR, TiviMate).

    Unsupported web-wrapper apps: Ether does not bundle third-party web clients (jellyfin-web or Emby Web). Client apps that are wrappers around a server-hosted web bundle, specifically Jellyfin for Android phones, Jellyfin Desktop, and Emby for TV 2.x on Apple TV, are unsupported. On Android phones use Findroid or Streamyfin; on Apple TV use Infuse, Swiftfin, Silo, or Plex.

    Emby for Windows: Compatibility is unverified. The current native Windows app bundles its own UI, but Ether does not serve Emby's /web assets; connections that require those assets will not work. Older hash-only Emby sign-in clients are also unsupported: Ether requires the plaintext Pw field to verify its stored password hash.

    Stremio apps refuse plain http:// addon URLs unless the address is http://127.0.0.1 on the same device. To install a viewer's Stremio addon from /ether/me on phones, TVs, or other computers, serve Ether over https:// using one of these options:

    1. Claimed Plex server (plex.direct): When Plex is claimed and enabled, Ether automatically obtains a *.plex.direct TLS certificate and /ether/me uses that https:// address for the Stremio install link.
    2. Tailscale HTTPS: Enable HTTPS certificates in your tailnet and run tailscale serve --bg 32400, then open Ether at your https://<machine>.<tailnet>.ts.net address.
    3. Reverse proxy with TLS: Put Caddy, Nginx, Traefik, or Cloudflare Tunnel in front of port 32400 with a valid certificate and open /ether/me through that https:// domain.

    Yes. In the setup wizard, select Jellyfin, Emby, Silo, Stremio, WebDAV, or DLNA without Plex, and create a local Ether owner account. Viewers sign in with local usernames and passwords, invite links, or Quick Connect / device pairing in /ether/me. You can enable or disable Plex at any time under Server › Apps.

    Yes. Watch history, in-progress resume offsets, favourites/ratings, and subtitle preferences belong to the viewer's Ether account. Starting an episode in Plex on a TV and opening Infuse, Swiftfin, or Silo on a phone or tablet resumes from the same spot, and real-time WebSocket updates notify connected Jellyfin, Emby, and Silo clients when watch state changes. If a viewer also connects their own Plex account under Viewers, Ether can keep watched marks and ratings in step with that account in either or both directions.

    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 about 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 Managed preloading (the Cinema node or Edge library cache presets), which preloads top household movies and a rolling window of next TV episodes during idle hours.

    Ether is built not to:

    • No background crawling of the catalogue: Indexers are queried when a viewer opens or plays a title, when the next episode is about to play, and on a slow schedule for watchlisted items. When they can play follows each indexer's recent releases the way Radarr/Sonarr RSS does: one feed request per indexer every 30 minutes, matched locally against every waiting title, plus a single targeted search when a movie enters the window or reaches its digital release date (one source at a time, stopping at the first hit).
    • Bounded daily budgets: Background work has its own daily allowance per indexer: 10% of the indexer's API limit (the one you set, the one it reports, or else 1,000/day, the strictest private tier), and work nobody waits on (warm-ups, preloads) shares another 10% for searches and 10% of the NZB download limit. A replayed day of a two-Usenet-indexer, four-site household used 50–64 background requests per indexer. Downloaded NZBs are reused from disk, so a release is grabbed once, and background requests to one indexer are spaced at least three seconds apart.
    • Detail-page reuse: Opening a detail page resolves, probes, and caches the keyframe index for 10 minutes; pressing Play reuses that work with no extra queries.
    • Quota and Retry-After discipline: Per-indexer daily API and download caps are tracked durably across restarts; 429, Retry-After and Newznab API-limit errors pause that indexer cleanly while falling back to others, and concurrent FetchNZB requests for the same release are coalesced.
    • Minimal health sampling: Health checks sample about 12 spread articles and stop on the first confirmed miss across all providers.

    Always check your indexer's terms of service; some private indexers restrict streaming engines.

    No. Every stream is fetched by your Ether server and served from Ether to the viewer. Your debrid provider sees only your Ether server's IP address (or your configured outbound proxy IP under Server › General), 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 or outbound proxy; Ether's Cluster page warns you if nodes egress from different public IPs.

    Real-Debrid no longer reports which torrents it holds in bulk, so Ether adds only the top few candidates for a title you open, keeps the ones that are ready immediately, and removes the rest. Answers are remembered so the same torrent is not 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, saving those checks.

    Yes, and if you have local media files on disk, that is the recommended setup. On the same machine, Ether notices if port 32400 or 8096 is already in use and moves its listener to a free port (such as 32450 for the main console, while keeping /jellyfin, /emby, and /silo available on the main port), and the Apps page shows the active address for every protocol. You can also import your existing Plex watch history, ratings, collections, and playlists into Ether in read-only mode.

    Ether sends no usage analytics, crash reports, or behavioural telemetry. Every outbound connection has a specific purpose, and all but cluster address detection can be configured or turned off:

    1. Update check (on by default): Ether checks the signed release feed on GitHub about every 6 hours (first check 5 minutes after startup). The feed is a static file; nothing about your server is sent. Turn this off under Maintenance › Updates (Check for updates).
    2. TheIntroDB skip markers (on by default): When a title plays, Ether queries api.theintrodb.org by TMDB ID, season/episode number, and duration for intro, recap, and credits timestamps. Turn this off with the lookup switch under Playback › Extras or the TheIntroDB switch on Integrations.
    3. TMDB and your configured sources: Ether queries api.themoviedb.org and image.tmdb.org with your key or the one built into official builds, plus the Usenet providers, debrid services, indexers, Stremio addons, and optional integrations (OpenSubtitles, Trakt, Simkl, ratings, artwork, notifications, language model) that you configure.
    4. plex.tv (only when Plex is claimed and enabled): When the Plex app is enabled and claimed, Ether contacts plex.tv for PIN sign-in, server and connection registration, friend/share sync, plex.direct TLS certificate renewal, and public IP detection when Remote access is on (Apps › Plex › Remote access). Ether also matches titles to Plex IDs through metadata.provider.plex.tv. Full Plex metadata (Apps › Plex › Account), per-viewer Plex account watch sync, and Plex watchlist sync (both discover.provider.plex.tv) are off until you enable them. Turning the Plex app off under Server › Apps stops all of this plex.tv traffic.
    5. Features you turn on: collection sources (StevenLu, AniList), quality-profile imports (TRaSH Guides and Dictionarry, from GitHub), indexer site definitions, the anime ID map (GitHub), the NVEncC runtime download for RTX Video Super Resolution, and trailers (YouTube) contact their own services only when you use them.
    6. Cluster address detection (clustered nodes only): each node checks its public IP every 10 minutes (v4.plex.tv first, then api.ipify.org, icanhazip.com, ifconfig.me). This has no switch.

    Where it stands today

    Ether is backed by 5,700+ offline unit, fault-injection, and fuzz tests, a 540k-title CI performance gate (internal/perfharness), recorded protocol conformance suites against Plex Media Server (internal/conform/plex), Jellyfin 12.4, Emby 4.10.2, and Silo (internal/conform), and hardware transcoding verification across Apple VideoToolbox, NVIDIA NVENC (plus optional Windows RTX Video Super Resolution), Intel QuickSync, and VAAPI.

    CapabilityStatus
    On Air Channels, Style Studio & Personal ChannelsNew in 0.3.5
    IPTV Apps (Xtream) Server & Xtream Movies/Series SourcesNew in 0.3.5
    Kubernetes Server Roles (Source, Transcode) with Seamless Node-Loss RecoveryNew in 0.3.5
    Movie and Show Quality Profiles with TRaSH/Profilarr Import & SyncNew in 0.3.5
    Jellyfin, Emby (Infuse, Swiftfin, Findroid) & Silo AppsNew in 0.3
    Stremio Addon, Read-Only WebDAV, M3U/XMLTV & DLNANew in 0.3
    Cross-App Progress, Subtitle Preferences, Personalized Views & Watch PartyNew in 0.3
    TMDB Catalogue, Browse, Conversational Search & CollectionsWorking
    Personalization Engine, Taste Models & Home DesignerWorking
    Usenet Streaming Engine, PAR2 Oracle, Health Checks & FailoverWorking
    Debrid Streaming (Real-Debrid, TorBox, AllDebrid, Premiumize)Working
    Debrid Streaming (Debrid-Link, Offcloud)Working (built from published APIs)
    Official Plex Apps (TV, Mobile, Desktop, Web)Working
    Pure-Go Poster Overlays, Skip Markers & On-Pick Subtitle AlignmentWorking
    Hardware Transcoding & Optional Windows NVIDIA RTX Video VSRWorking
    Live TV Guide, Paintable Virtual Channels & M3U/XMLTV/XtreamWorking
    PostgreSQL Active-Active HA Clustering & Shared NAS CacheWorking

    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, and NVEncC64 9.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 and concurrency bounds, and falls back to ordinary ABR renditions when bandwidth or concurrency requires it.
    • No bundled third-party web clients (jellyfin-web or Emby Web); web-wrapper apps (Jellyfin for Android phones, Jellyfin Desktop, Emby for TV 2.x on Apple TV) are unsupported.
    • No Plex Relay support: remote viewers connect directly via UPnP/NAT-PMP, a port forward, Tailscale, or your reverse proxy.
    • No DVR recording.

    Credits

    Thank you to the community contributors and reporters who shaped 0.3.0:

    • FarkasLabs for profiling and fixing the Plex settings-copy hotspot (#206) and designing the admission fence and atomic receipt commit for uncertain outbound Plex watch-state sends (#207).
    • AlexBlomkvist (bmkhib) for the live CPU and allocation profile on the Plex Home watched-episode path (#203) and the Tracearr library-wide episode/season sync diagnosis (#209).
    • TheIndieArmy for limiting Plex Web HDR remux promotion to affirmative 10-bit/PQ client profiles (#190).
    • mvanbaak for reporting and verifying on FreeBSD the source-swap failure on FFmpeg builds compiled without libzimg/zscale (#201).
    • XenoUniv3rse for diagnosing why plex.tv marked LAN connections as remote when Secure connections was set to Required (#192).
    • evulhotdog for adding built-in TRaSH release group custom formats to quality profile imports (#172) and contributing configurable indexer User-Agent presets (#213, in 0.3.2).

    Legal

    Ether is an independent, clean-room implementation of the HTTP protocols used by compatible media client applications. It contains no proprietary Plex, Jellyfin, Emby, or Silo code, assets, binaries, or web clients. Ether ships no media content, no Usenet providers, no indexers, no Cardigann site definitions, no debrid accounts, and no third-party API keys other than the TMDB catalogue key built into official builds. 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. "Jellyfin" is a trademark of the Jellyfin project. "Emby" is a trademark of Emby LLC. "Silo" and "Stremio" are trademarks of their respective owners. Ether is not affiliated with, sponsored by, or endorsed by Plex, Inc., the Jellyfin project, Emby LLC, Silo, or Stremio. This product uses the TMDB API but is not endorsed or certified by TMDB.

    GPL-3.0 License · Legal · Third-Party Notices