[ { "guid": "495feadb-d27f-46c3-bb9b-0732ae8926fa", "name": "Jellyfin Federation", "overview": "Allows jellyfin servers to federate with each other", "description": "This Jellyfin plugin allows multiple Jellyfin servers to federate, sharing media libraries in real-time without syncing or copying files. Media can be streamed from one server to another with live transcoding if necessary.", "owner": "Angablade", "category": "General", "versions": [ { "version": "0.0.186", "changelog": "Friends sync much faster and more reliably, with thanks to Stephan Voeth (@svoeth), whose contribution is still under review, so please report any problems. After the first sync only new or changed titles are downloaded, large removals wait for you to confirm them, music syncs with its albums, songs and artists, friends shared individual libraries now see them, and the Libraries tab shows what each friend library is doing. You can choose what a new friend sees before sending or accepting a request, reconnect a friend after a reinstall, and fully resync one library. Also fixes a security hole where a malicious friend could make a download write a file outside the downloads folder.", "targetAbi": "12.0.0.0", "timestamp": "2026-10-17T18:08:17Z", "sourceUrl": "https://github.com/Saintdoggie/JellyfinFederationPlugin/releases/download/0.0.186/Jellyfin.Federation.zip", "checksum": "b81eb5bc1ae87c10c29941bfa26c12c1" }, { "version": "0.0.185", "changelog": "Coming from Plex? The Plex tab is now a three-step guide that brings your Plex movie and TV libraries into Jellyfin. Sign in with Plex, pick the libraries, and the plugin creates matching Jellyfin libraries over the same folders (or reuses ones you already have), with Plex's cover art, backdrops and descriptions. If Plex runs on another computer, drive or container, add a folder rewrite and check again. A match report shows how many titles found their Plex artwork. The new libraries are ordinary Jellyfin libraries, so sharing with friends and downloads keep working.", "targetAbi": "12.0.0.0", "timestamp": "2026-10-15T02:46:03Z", "sourceUrl": "https://github.com/Saintdoggie/JellyfinFederationPlugin/releases/download/0.0.185/Jellyfin.Federation.zip", "checksum": "7cec643565b7e374ad63360ec56e1a37" }, { "version": "0.0.184", "changelog": "The connection-speed test now times a real file from each friend instead of a test endpoint that read far too low, so fast friends are no longer capped to 20 Mbps 1080p and 4K titles play in full quality. The library \"This server\" tab now filters on the server, so it shows all of your own titles with correct paging instead of a few cards or an empty page, and the source tabs no longer hide a friend's episodes on a show's page or miss the first page you open.", "targetAbi": "12.0.0.0", "timestamp": "2026-10-14T19:36:26Z", "sourceUrl": "https://github.com/Saintdoggie/JellyfinFederationPlugin/releases/download/0.0.184/Jellyfin.Federation.zip", "checksum": "8a8ba203e39156402ad7b276ef28f0c6" }, { "version": "0.0.183", "changelog": "Federated titles from a friend's server in Direct mode now stream straight from that server to your device instead of through your own server's upload, so they start much faster. Apps like Findroid that ask your server for the file are sent to the friend's server too. A file that already fits your connection is no longer re-encoded by the friend's server, the connection-speed test no longer underestimates fast servers, a friend whose address redirects to https is now reached over https, and the hourly sync no longer rewrites every federated item.", "targetAbi": "12.0.0.0", "timestamp": "2026-10-14T19:16:27Z", "sourceUrl": "https://github.com/Saintdoggie/JellyfinFederationPlugin/releases/download/0.0.183/Jellyfin.Federation.zip", "checksum": "e5c0b6f16e10350bd4981451e74d1493" }, { "version": "0.0.182", "changelog": "The version dropdown on a title's details page now lists the copy on every server that has it, including a server that is currently offline (marked offline) so you can see where else the title lives. When one server has several copies, each is labelled with its resolution and file size so you can tell them apart. Before, a copy on an offline server was left out, which hid the dropdown for most titles while a friend's server was down.", "targetAbi": "12.0.0.0", "timestamp": "2026-10-14T15:45:51Z", "sourceUrl": "https://github.com/Saintdoggie/JellyfinFederationPlugin/releases/download/0.0.182/Jellyfin.Federation.zip", "checksum": "7a38da04c32a37d0388fcfe2978e2e17" }, { "version": "0.0.181", "changelog": "The extra server buttons under the Play button are gone. Choosing which server's copy to play now uses only Jellyfin's own version dropdown, which lists every server that has the title, and the video, audio and subtitle details below it update for the copy you pick.", "targetAbi": "12.0.0.0", "timestamp": "2026-10-13T17:12:41Z", "sourceUrl": "https://github.com/Saintdoggie/JellyfinFederationPlugin/releases/download/0.0.181/Jellyfin.Federation.zip", "checksum": "0ad6e9f3f038c50f3819ff4dec2cbe08" }, { "version": "0.0.180", "changelog": "Titles that several servers have now show every copy in the version dropdown on the details page, each named after its server, so you can pick which server to play from. Before, the dropdown only appeared once playback started, so the other servers' copies could not be chosen.", "targetAbi": "12.0.0.0", "timestamp": "2026-10-13T17:07:52Z", "sourceUrl": "https://github.com/Saintdoggie/JellyfinFederationPlugin/releases/download/0.0.180/Jellyfin.Federation.zip", "checksum": "5972bcb76a5b9e82859be6b3d5c9ce48" }, { "version": "0.0.179", "changelog": "Faster settings page. Opening settings no longer waits on a friend's server that is asleep: each friend's libraries are now asked for at the same time with a 10 second limit, and one that does not answer shows as not responding on its own row instead of holding up the whole list. The slow scan for better-quality copies (about 11 seconds on a large library) no longer runs every time the page opens; it runs when you open the Storage tab, in the background, and its result is kept for five minutes.", "targetAbi": "12.0.0.0", "timestamp": "2026-10-13T16:41:02Z", "sourceUrl": "https://github.com/Saintdoggie/JellyfinFederationPlugin/releases/download/0.0.179/Jellyfin.Federation.zip", "checksum": "ab0609d78f54114f89e0c42f18cfaaa5" }, { "version": "0.0.178", "changelog": "Plex can now be the source of cover art and descriptions for your own libraries. The new Plex tab signs in to Plex (no token pasting), lists your servers and libraries, and lets you choose what to pull: posters and backdrops, and titles, summaries, genres, ratings and studios, for your movies, shows, seasons and episodes, matched by TMDb/IMDb/TVDB id or title and year. What you share with friends carries the same art and details. Titles that several servers host now offer every server's cover art to choose from instead of only one server's, and the version picker names the item's own source after its server (for example \"freakbob (primary)\") instead of the movie title, in every client.", "targetAbi": "12.0.0.0", "timestamp": "2026-10-13T16:24:00Z", "sourceUrl": "https://github.com/Saintdoggie/JellyfinFederationPlugin/releases/download/0.0.178/Jellyfin.Federation.zip", "checksum": "d0e726d98029efa9fa6a40595b52dd79" }, { "version": "0.0.177", "changelog": "Adding a friend now asks what you want: a prompt lists their libraries (what you receive) and yours (what you share with them), and nothing is pulled in until you save. Previously every library they had was selected automatically. Unticking a friend's library now removes the items it brought in, right when you save: before, unticking a friend's last library in a section such as Music left their items behind until you removed the whole section.", "targetAbi": "12.0.0.0", "timestamp": "2026-10-09T16:19:07Z", "sourceUrl": "https://github.com/Saintdoggie/JellyfinFederationPlugin/releases/download/0.0.177/Jellyfin.Federation.zip", "checksum": "779f1bd2220c13091e2ef620bdd74bf5" }, { "version": "0.0.176", "changelog": "Friends' titles no longer disappear and reappear when a friend's server drops offline and comes back. Previously every one of their movies and shows was deleted from your library on each outage and recreated on return, which looked like the server constantly re-adding its whole catalog and lost watch progress. Now existing titles stay in place (the web client still hides the ones that are currently unavailable) and only genuinely new titles wait for the server to return. Disabling a server still removes its titles.", "targetAbi": "12.0.0.0", "timestamp": "2026-10-09T15:09:02Z", "sourceUrl": "https://github.com/Saintdoggie/JellyfinFederationPlugin/releases/download/0.0.176/Jellyfin.Federation.zip", "checksum": "8a4fda99068a2b736188d3f36a687b50" }, { "version": "0.0.175", "changelog": "Titles whose every source server is offline are now hidden from library views instead of showing as unplayable cards, and the \"from \" label follows whichever server can actually play the title. After a restart, the plugin confirms which friends are reachable before restoring their titles, so an offline friend's catalog no longer flashes back in. Faster, safer playback start: when several people press play on the same federated title at once, one metadata request is made to the friend's server instead of one each, and that cached playback information is kept per viewer so one person's access is never reused for another. Adds startup timing logs (debug level) for diagnosing slow starts.", "targetAbi": "12.0.0.0", "timestamp": "2026-10-07T14:56:27Z", "sourceUrl": "https://github.com/Saintdoggie/JellyfinFederationPlugin/releases/download/0.0.175/Jellyfin.Federation.zip", "checksum": "a97220160e3fd4ed6b2b31d87f90294c" }, { "version": "0.0.174", "changelog": "Settings page polish: the tab row stays on one line and scrolls sideways instead of wrapping, the active tab stays in view, buttons and toggles get larger tap targets and clear focus rings on small screens, and the remaining hard-coded blue tints now follow your theme. Browsing a Plex library is much faster: one library fetch is reused while you scroll instead of refetching the whole library for every page. Companion dashboard (also shown in the new Windows app window) gets a cleaner, flatter app layout with solid colours, clearer buttons and form controls, and more readable status badges.", "targetAbi": "12.0.0.0", "timestamp": "2026-10-07T14:44:03Z", "sourceUrl": "https://github.com/Saintdoggie/JellyfinFederationPlugin/releases/download/0.0.174/Jellyfin.Federation.zip", "checksum": "65ce0338541617491be26bd29ed54991" }, { "version": "0.0.173", "changelog": "Downloads from a Plex source that is offline no longer break the Downloads tab: it now says the server can't be reached, offline servers are marked in the picker, and downloads queued from them wait until it is back. Adds an opt-in adaptive player (Advanced → off by default) that can switch a movie to another friend's copy mid-play when that copy is clearly more reliable, preparing the new source first and showing a brief 'Switched to ' notice. Detail pages show which servers have a title and let you pick one instead of Auto. Learns when each friend's server is usually online and shows a forecast; adds a Log tab with this plugin's recent messages. Includes the Companion private file-sharing preview. UI uses solid colours throughout.", "targetAbi": "12.0.0.0", "timestamp": "2026-10-07T14:37:03Z", "sourceUrl": "https://github.com/Saintdoggie/JellyfinFederationPlugin/releases/download/0.0.173/Jellyfin.Federation.zip", "checksum": "728e91973e37fc38d74acbc0c41c2b44" }, { "version": "0.0.172", "changelog": "Adds a loading bar for slow federated starts: when a federated title is still black 1.5 seconds after play, a simple bar at the bottom shows a projected countdown, why it is taking a while, and a fun fact (admin switches for the bar, the fun-fact lookup and the fast-start analysis window; facts are fetched by the server, with a built-in fallback). Measures each friend's connection speed daily, when a server is added, and when one comes back online (Jellyfin peers and Plex), and uses it to project start times. When a title is on several friends' servers and the first choice would take over 30 seconds to start, prefers a clearly faster online source (only measured sources are ever preferred; otherwise your priority order stands). Adds timing logs for slow upstream responses and media-source resolution, and an admin diagnostic for Plex transcoding. Bounds how much of a remote file ffmpeg analyses before starting (quality is unchanged). Titles whose source reports two streams with the same index now keep their stream info instead of triggering a slow first-play probe.", "targetAbi": "12.0.0.0", "timestamp": "2026-10-03T22:16:16Z", "sourceUrl": "https://github.com/Saintdoggie/JellyfinFederationPlugin/releases/download/0.0.172/Jellyfin.Federation.zip", "checksum": "20290a3bdaebccf9b3868397dd5aeac8" }, { "version": "0.0.170", "changelog": "Read Plex file size, container, bitrate, codecs, HDR data and actual stream indexes from the same playable file. Retain Jellyfin peer file sizes and bitrates without retaining upstream paths or headers. Refresh current Plex media information during playback and persist corrected sizes without replacing item IDs. Track source-specific poster selections and episode poster fallbacks. Keep offline/recovery notifications ordered, hide titles whose remaining sources are disabled, preserve known durations when peers report zero, and accept authenticated HEAD requests on the media relay. Reconcile playback paths immediately when a friend changes per-user access so permitted users keep playing while revoked URLs are denied.", "targetAbi": "12.0.0.0", "timestamp": "2026-10-01T13:42:06Z", "sourceUrl": "https://github.com/Saintdoggie/JellyfinFederationPlugin/releases/download/0.0.170/Jellyfin.Federation.zip", "checksum": "04535a6a554a5df8d463b43d3e1fd0c0" }, { "version": "0.0.169", "changelog": "Bind federated playback paths, container, runtime, and audio tracks to the same reachable source. Exclude offline sources from legacy Auto selection and prevent exact-source streams from switching silently to incompatible files. Fetch posters from reachable Jellyfin or Plex sources so an offline catalog primary does not block artwork. Retain Jellyfin 12 media-source container metadata during full catalog sync so compatible clients can direct-play.", "targetAbi": "12.0.0.0", "timestamp": "2026-09-27T17:11:48Z", "sourceUrl": "https://github.com/Saintdoggie/JellyfinFederationPlugin/releases/download/0.0.169/Jellyfin.Federation.zip", "checksum": "3a17293fdae8629209ab27ff7c6dd114" }, { "version": "0.0.168", "changelog": "Fix federated 4K HDR playback failures caused by WAN-capped remote transcoding. Static Direct streams now serve the original file they advertise, avoiding upstream HTTP 500 errors and MKV/MP4 format mismatches. Log upstream stream failures without exposing playback tokens.", "targetAbi": "12.0.0.0", "timestamp": "2026-09-24T13:33:10Z", "sourceUrl": "https://github.com/Saintdoggie/JellyfinFederationPlugin/releases/download/0.0.168/Jellyfin.Federation.zip", "checksum": "47ebd1563c90b1b8f559ba4b944d2c3f" }, { "version": "0.0.167", "changelog": "Movies, Shows, Home and Search get an injected source tab strip: All, This server, and one tab per federated friend. Choosing a source filters both the on-screen cards and Jellyfin item queries so paging stays filled.", "targetAbi": "12.0.0.0", "timestamp": "2026-09-18T17:05:00Z", "sourceUrl": "https://github.com/Saintdoggie/JellyfinFederationPlugin/releases/download/0.0.167/Jellyfin.Federation.zip", "checksum": "6946b16bf0280bd9670a551e36953297" }, { "version": "0.0.166", "changelog": "Unreachable friends' titles now hide and return: the availability pinger and the hide/restore path share one service instance, so Plex-only (or any single-server) items leave the library while that friend is down and are recreated from cache when it answers again. Server-to-server downloads survive a restart: partial files resume via HTTP Range, pause when the source is unreachable, and keep showing size and speed. Plex posters are copied into Jellyfin's local image store by native id even when the catalog snapshot has no thumb tag.", "targetAbi": "12.0.0.0", "timestamp": "2026-09-18T15:00:00Z", "sourceUrl": "https://github.com/Saintdoggie/JellyfinFederationPlugin/releases/download/0.0.166/Jellyfin.Federation.zip", "checksum": "b994415fcf52819355eb37178ea551f9" }, { "version": "0.0.165", "changelog": "Fix federated playback when Auto fails over to a duplicate in a different container: ffmpeg was launched with the primary's -f (Matroska) while Auto served MP4 bytes, which exited 183. Mixed-container Auto items no longer stamp a single container, Auto prefers a live sibling the advertised demuxer can parse, and a failed live preflight no longer leaves a title with zero playable sources.", "targetAbi": "12.0.0.0", "timestamp": "2026-09-17T18:15:00Z", "sourceUrl": "https://github.com/Saintdoggie/JellyfinFederationPlugin/releases/download/0.0.165/Jellyfin.Federation.zip", "checksum": "7c82337a5bb5522bfdf0e6dfc7ddb5d9" }, { "version": "0.0.164", "changelog": "Settings UI polish: the federation badge is a crisp solid chip with a clean border (no gradients), and the Catalog and Downloads browsers now lazy-load as you scroll instead of using Load more buttons, with bounded pages, stale-response protection, and explicit retry after a network error.", "targetAbi": "12.0.0.0", "timestamp": "2026-09-17T17:20:57Z", "sourceUrl": "https://github.com/Saintdoggie/JellyfinFederationPlugin/releases/download/0.0.164/Jellyfin.Federation.zip", "checksum": "72fe5f8c7182b415adcdca4225ebb7c1" }, { "version": "0.0.163", "changelog": "Capped WAN playback now advertises the representation the gateway actually delivers instead of the original HEVC/AV1 file, so client codec and bitrate negotiation works on weak clients, and transcode budgets reserve audio and muxing headroom instead of exceeding the relay cap. Relay buffers are pooled to reduce allocation churn under concurrent streams.", "targetAbi": "12.0.0.0", "timestamp": "2026-09-17T14:30:26Z", "sourceUrl": "https://github.com/Saintdoggie/JellyfinFederationPlugin/releases/download/0.0.163/Jellyfin.Federation.zip", "checksum": "0a12674e9615bf372dc285b21ad5807e" }, { "version": "0.0.162", "changelog": "Playback Auto now rejects dead sources before playback, chooses the highest-quality live copy that fits each server's measured or configured WAN capacity, and falls back across duplicate Jellyfin or Plex copies without changing the stable Jellyfin item or its watch progress. Exact per-source bitrate, resolution, container, runtime, Plex native ID, and signed Auto authority remain bound to the selected source.", "targetAbi": "12.0.0.0", "timestamp": "2026-09-16T02:18:55Z", "sourceUrl": "https://github.com/Saintdoggie/JellyfinFederationPlugin/releases/download/0.0.162/Jellyfin.Federation.zip", "checksum": "b6b2b36030ec88f88ac57b20c0b2996e" }, { "version": "0.0.161", "changelog": "Plex artwork repair: existing and newly federated movies now cache the exact poster selected on the source Plex server, refresh when that poster changes, and keep native IDs and artwork revisions bound to the correct source when duplicate titles span multiple Plex servers. Poster credentials remain server-side and watch history is preserved.", "targetAbi": "12.0.0.0", "timestamp": "2026-09-16T01:46:42Z", "sourceUrl": "https://github.com/Saintdoggie/JellyfinFederationPlugin/releases/download/0.0.161/Jellyfin.Federation.zip", "checksum": "69cd214ee8f911a38240fd91b68cf1a9" }, { "version": "0.0.160", "changelog": "Faster Downloads browsing (slim catalog payloads, batched cover art, cached duplicate checks) and offline hide/unhide: a background check pings every friend every couple of minutes, hiding unreachable servers' titles until they return. Nothing is ever deleted; items reappear on rescan.", "targetAbi": "12.0.0.0", "timestamp": "2026-09-15T17:31:49Z", "sourceUrl": "https://github.com/Saintdoggie/JellyfinFederationPlugin/releases/download/0.0.160/Jellyfin.Federation.zip", "checksum": "0b4beeed4c2a3a2c1aab399c3e6090cb" }, { "version": "0.0.159", "changelog": "Companion desktop app (Windows tray/WinExe, Linux autostart and launcher, single-instance, SHA256SUMS installers), lifecycle hardening (no automatic media helper on fresh install, persisted Stop, credential ACLs, safer updater), Storage tab review, and friend-callback SSRF hardening that connects only to public resolved addresses.", "targetAbi": "12.0.0.0", "timestamp": "2026-09-10T14:30:00Z", "sourceUrl": "https://github.com/Saintdoggie/JellyfinFederationPlugin/releases/download/0.0.159/Jellyfin.Federation.zip", "checksum": "c4937d2a41cfab909ed37692e05a0687" }, { "version": "0.0.158", "changelog": "Consolidated 0.0.136-0.0.158: security and access fixes (confused-deputy peer POSTs, signed download flag, item-scoped playback/image capabilities, no re-sharing of downloaded federated files, anonymous inventory hardening, HMAC expiry, bounded friend requests/icons), correctness fixes (mapping/cache-key stability, catalog pruning, pool icons, Downloads path, strm export safety, WAN cap on direct streams, live Kestrel port for stamped paths), Companion/Plex fixes, and settings-page fixes including Friends copy, pool refresh, and per-user BlockedItemIds round-trip.", "targetAbi": "12.0.0.0", "timestamp": "2026-09-09T16:30:00Z", "sourceUrl": "https://github.com/Saintdoggie/JellyfinFederationPlugin/releases/download/0.0.158/Jellyfin.Federation.zip", "checksum": "01bdd7ab52feb6feaef003cc6003171d" }, { "version": "0.0.136", "changelog": "Jellyfin 12 support: rebuilt for .NET 10 and Jellyfin 12 APIs. Settings, badges, peer catalog, artwork and streaming use supported native authentication with legacy auth disabled. Older Jellyfin 10.11 servers should keep 0.0.135.", "targetAbi": "12.0.0.0", "timestamp": "2026-09-08T13:01:10Z", "sourceUrl": "https://github.com/Saintdoggie/JellyfinFederationPlugin/releases/download/0.0.136/Jellyfin.Federation.zip", "checksum": "5d86a28ce529d60d51133daab06b2c07" }, { "version": "0.0.135", "changelog": "Plex Companion now reports a Federation plugin version and can join pools. Inviting a Plex friend no longer fails as an unknown/old plugin; they Accept the pool invite in Companion. Direct Plex Relay friends still need Funnel so the invite can be delivered.", "targetAbi": "10.11.0.0", "sourceUrl": "https://github.com/Saintdoggie/JellyfinFederationPlugin/releases/download/0.0.135/Jellyfin.Federation.zip", "checksum": "cc14b9bdb01a5a452313079295a56cc8", "timestamp": "2026-09-06T20:30:00Z" } ] } ]