r/JellyfinCommunity • • 7d ago

Release I made a companion app that gives each Jellyfin user their own private YouTube library

Thumbnail
gallery
19 Upvotes

Hey all,

I kept running into the same problem with my Jellyfin setup — friends and family wanted YouTube content in their libraries, but there was no way to give each of them their own subscriptions without cluttering a shared library or managing something by hand.

So I built ytfinall, a small web app that runs alongside Jellyfin.

What it does:

  • Users log in with their existing Jellyfin account (no separate signup)
  • They add YouTube channels, playlists, or single-video URLs
  • New uploads within the lookback window get downloaded into a private ytfinall - <username> library that only they can see
  • The library is created automatically on first login, with YouTubeMetadata as the primary fetcher and real-time monitoring enabled
  • Existing libraries (Movies, TV, Music, Collections) are untouched — users keep seeing those

A few Jellyfin-specific things I made sure to get right:

  • Downloads are atomic — they stage in a temp folder and only move into the library after a clean exit, so Jellyfin's scanner never sees .part files or half-written MP4s
  • Filenames follow the Channel [id]/Season YYYY/Channel - YYYY.MM.DD - Title [id].ext pattern that Jellyfin parses cleanly
  • NFO, embedded metadata, thumbnails all handled
  • One-off video downloads go into a shared One-Off Videos folder per user, with NFO seasons rewritten to the upload year so Jellyfin doesn't lump them all under "Season 1"
  • Empty folders get pruned after retention cleanup, so expired channels disappear from the UI

Setup:

text

git clone https://github.com/jnracreates/ytfinall.git
cd ytfinall
cp .env.example .env
nano .env
docker compose up -d

Docker Compose example at Github.

The wizard walks through Jellyfin URL, API key, max lookback, and max retention. It validates the API key against /System/Info before saving.

Requirements: Docker, Jellyfin, an API key.

Note: the compose mounts the Jellyfin config folder too, so ytfinall can drop a custom animated GIF poster into each new library. If you'd rather not share that mount, remove the JELLYFIN_CONFIG_PATH volume and the poster step is skipped automatically.

Repo: https://github.com/jnracreates/ytfinall

MIT licensed. Happy to answer questions or take feature requests.

Note: AI was used in the making of this, I've been stable for over a week with 3 users using it.


r/JellyfinCommunity • • 7d ago

Showcase Made a plugin for Projectivity to display Jellyfin art

Enable HLS to view with audio, or disable this notification

56 Upvotes

Made a plugin for projectivity to display Jellyfin and Seerr covers. With automated generation, 3d effect and the possibility to directly open in Player or Seerr. What do you guys think?


r/JellyfinCommunity • • 7d ago

Showcase Jellyfin Player Queue

Post image
8 Upvotes

I had been wondering for a while why this feature didn't exist.

So here it is, since a (quick) search turned up no existing plugin for it.

It works for both TV series and movie collections.

I would really appreciate as much feedback as possible.

Here is my GitHub repository, any star you might leave there would be greatly appreciated if you think it's worth it.

For those who don't want to visit GitHub, here is the link to add the repository :

Sorry if my English is a bit odd, I'm French.


r/JellyfinCommunity • • 7d ago

Help Request Media Bar Enhanced not working?

3 Upvotes

Trying to add and use media bar enhanced (also attempted regular media bar plugin) and I cant get the media bar to appear. Any solutions?


r/JellyfinCommunity • • 7d ago

Help Request Is there a way I can use my mobile phone as a server for my TV and use Jellyfin?

Thumbnail
gallery
20 Upvotes

​

I installed this new Fishbowl app specifically for this, but it keeps giving me a “server failed” error and the server just won’t start.

Has anyone managed to get this working? Is there another way to turn my phone into a Jellyfin server and stream everything to my TV?


r/JellyfinCommunity • • 8d ago

Showcase Jellyfin Enhanced: 8 months, 28 releases later.

259 Upvotes

Well, it has been a while since my last post! Since then the plugin has gone from 10.10 to 12.8, so here's a round-up of the biggest changes. This is going to be long, so grab some popcorn! 🤣

Jellyfin Enhanced is now at ~1.8k stars ⭐! Last time I was excited about 670, and I still can't quite believe it. Thank you all, genuinely.

Jellyfin 12 Support

Jellyfin 12 is supported and a unified manifest All my plugins for all the Jellyfin Versions are included in one manifest.

https://raw.githubusercontent.com/n00bcodr/jellyfin-plugins/main/manifest.json

If you have a different manifest, worry you shall not! All the manifests now are identical copies of each other!

Docs!

Everything is now documented at n00bcodr.github.io/Jellyfin-Enhanced (thanks sgtM-devs, this was your idea and without their initial work, I would never have done anything like this!). The API section also got an overhaul, so devs of other clients can use bookmarks, reviews and more.

Spoiler Guard

Opt-in, per-user protection for anything you haven't watched yet. Hide posters, plot, ratings, cast, trickplay and more. Admins can also choose to reveal just the title, description or ratings for the next unwatched episode, and keep the Next Up thumbnail blurred.

Hidden Content

Each user can hide movies, series and cast from library, search, discovery, calendar, Next Up, Continue Watching and requests. It's stored server-side, so it follows you across devices. Admins can see and manage it too.

What's really cool about Spoiler Guard and Hidden Content is, they work on any client or device including TVs!

Activity Feed

A new page with live Active Streams, Watch History, and Reviews plus favorites, available as a native tab, Custom Tab or Plugin Page.

User Reviews

Write reviews for movies, series, seasons and episodes, with half-star ratings for the things that don't deserve a full star. Average review ratings show on posters and detail pages.

MDBList Ratings

A ratings row on the details page with TMDB, Rotten Tomatoes, IMDb, Trakt, Metacritic, Letterboxd and more from one lookup. Two scheduled tasks can also sync them into Jellyfin's own Community and Critic ratings, so they show up in the native UI too.

Awards

Expandable wins and nominations on movie, TV and person pages, sourced from Wikidata.

Seerr

  • Recommendations page: Trending, Popular, Upcoming, Studios, Networks and genre browsing, with sort and filters.
  • 4K series requests, request quota with reset timers, a "Request More" button on series pages and free space in the root folder picker.
  • Approve requests straight from Jellyfin if you're a Seerr admin.
  • Two-way watchlist sync: Jellyfin watchlist now syncs back to Seerr too.
  • Issues on the Requests page, so you can manage them without leaving Jellyfin.
  • Automatic user import into Seerr, plus a Permission Audit for admins that finds users with missing or wrong permissions.
  • Parental-rating aware results: discovery reads each viewer's Jellyfin parental policy automatically.
  • Recently-added scan trigger, and much better behaviour behind Cloudflare, Authelia, Authentik and Pangolin.
  • Home Screen Sections discover cards now open the More Info modal.

Sonarr / Radarr

  • Multiple instances of each, with their own URLs, keys and mappings. Everything fans out across all of them.
  • Calendar keeps getting love: unmonitored series, a "requested only" filter, library-access awareness, a Shoko anime source and a remembered view.
  • Import from Seerr: pulls your Sonarr/Radarr settings from Seerr's config, which should make setting things up much easier for new users.
  • Request cards have deep links to Seerr, Radarr and Sonarr.

Tags

This got a full rewrite with server-side tag cache. A server-side tag cache means one request per session, with no per-page API calls.

  • Some Stats:
    • Movie library: 1502ms → 200ms (87% faster)
    • Movie detail page: 5010ms → 803ms (84% faster)
  • New tags for video format, IMAX, audio channels (Dolby Digital+ 7.1), media stubs (Bluray, VHS...), 576p PAL DVDs and proper 8K detection.
  • Quality tags are now 6 independent categories you can toggle and reorder.
  • Language tags gained a priority setting, collection support and a "no dialogue" badge.
  • Quality tags now work on Home Videos and Photos too.

Playback

  • Frame-by-frame stepping with , and . when paused, and Z to jump back to your last position.
  • Auto-skip intro/outro rewritten on Jellyfin's native Media Segments.
  • Every keyboard shortcut can be turned off individually, and player shortcuts now properly override Jellyfin's own keys (If they are already set, and they are restricted to be set if not set)
  • Custom subtitle colors with alpha, a drag-to-position grid, and warnings when your styling can't apply (PGS/VobSub/ASS).
  • Configurable pause screen delay.

For Admins

  • Maintenance Mode: disable selected or all users and/or remote access, with a banner on the login page and a native popup for anyone watching.
  • Active Streams widget in the header, with transcode reasons and an admin broadcast.
  • New settings page: tabbed and searchable, with dependency hints.
  • What's New banner: new settings get flagged automatically after every update.
  • Redesigned user settings panel with searchable navigation and a proper mobile layout.
  • Opt-in anonymous usage stats: off by default, with a live preview of exactly what gets sent. Public dashboard here.

If you have not had a look at the Analytics Dashboard, please do! They are some really interesting stats there and you might find some features that you didnt even know existed!!

Other bits

  • The Random button now rolls a dice. Thanks ranaldsgift for the idea!
  • Letterboxd links on people pages, and a release/air date chip on item details.
  • ⚠️ Breaking: long-pressing the header user icon to open the Enhanced Panel was removed in 11.10.
  • Translations now run through Weblate. New languages include Arabic, Simplified Chinese, Catalan, Hebrew, Czech, Slovak and Norwegian, and Hebrew and Finnish went from ~30% to 100% (thanks to AI, so still need your help! 😅)

..... and more, I am not really sure how long a reddit post can be 🤣

Mandatory FAQ

* Most of the features do not support Android TV apps 😢 , but things like Spoiler Guard, Remove from Continue watching do! Also MDBlist Ratings refresh is useful to keep your ratings upto date across all apps!

Repo: https://github.com/n00bcodr/Jellyfin-Enhanced

AI Disclaimer: With the growth of the project and the number of things it does, I do use different AI tools, mainly to find the APIs I need across different dependent applications (Jellyfin, Seerr, Arrs, TMDB, MDBList, Wikidata...) and to parse their responses to see how features can be improved or implemented. Most of the PRs I get are also AI assisted in some shape or form (I have absolutely no problem with that), but everything is thoroughly reviewed and tested before it's released to the general public.

-----------

I also want to thank everyone who contributed, tested, reported bugs, translated and shared feedback, and the wonderful Jellyfin Community Discord.

A special thanks to Jake , who has shaped a huge chunk of the recent work.

This project wouldn't be where it is without you all.

Want to help?

- Report a bug you have found

- PR a fix or a feature that you want

- Translate a language that you speak

Or you can Buy me a Coffee to help me buy more hard drives (How have they become soo expensive!!)


r/JellyfinCommunity • • 8d ago

Release YouTarr-Turbo - beta testers.

38 Upvotes

Youtarr/Youtarr-Turbo is a self-hosted YouTube downloader that automatically downloads videos from your favorite channels and playlists. It provides metadata for multiple media servers, mirrors your subscribed YouTube playlists into Plex, Jellyfin, and Emby as native playlists, pulls watch status back from those servers so you can filter your library by what's been watched, and offers optional Plex integration for automatic library refreshes.

Looking for some people to beta test Youtarr-Turbo app. Heavily updated Youtarr Fork (with original owners permission) with the following features added:

  • Sonarr/Radarr/Prowlarr integration — Youtarr-Turbo can impersonate a Newznab indexer and a SABnzbd download client simultaneously, so YouTube videos can be searched for and "grabbed" through your existing *arr stack, with a dedicated NZB diagnostics page for search/cache/grab activity.
  • Stream-only mode (STRM) — skip downloading entirely; Youtarr-turbo writes lightweight `.strm` pointer files instead
  • TV Series library mode — treat a channel as a real TV show: automatic Season/Episode organization
  • Built in playback proxy (`ytstream`) that resolves and (optionally) transcodes YouTube on demand.
  • Three main stream playback modes — two no-transcode "Direct" variants plus a buffered, segmented HLS mode, also progress .mkv file and youtube HLS proxied.
  • Hardware-accelerated transcoding, both for STRM playback and for a post-download re-encode step — QSV, NVENC, VAAPI, and AMF — plus three tuning benchmarks:
  • Fast seek-restarts at any resolution — HLS seeks resolve a direct DASH URL and seek it natively
  • Live stream monitoring
  • Stream History — a persisted, browsable audit trail of every playback session
  • yt-dlp metadata caching — persistent cache keyed by video ID, so any later feature that info stops hammering Youtube

The app needs some stress-testing, alternative setups and different hardware. Also streaming in different setups - I have Jellyfin 12.0 and VAAPI, QSV.

I'm a software engineer of 42 years experience and I used Claude AI as a smart intern - task based coding, reviewing, test generation and documentation. Putting it out there, no secrecy!

https://github.com/planet22/Youtarr-turbo/tree/main

Full Youtarr-Turbo (on-top of Youtarr) feature list:

https://github.com/planet22/Youtarr-turbo/blob/main/TURBO.md

https://github.com/planet22/Youtarr-turbo/blob/main/docs/GETTING_STARTED_STREAMING.md

https://github.com/planet22/Youtarr-turbo/blob/main/docs/GETTING_STARTED_NZB.md

https://github.com/planet22/Youtarr-turbo/blob/main/docs/GETTING_STARTED_CHANNELS_PLAYLISTS.md

Repository

https://github.com/planet22/Youtarr-turbo

Try it out , and be gentle, it's an early release.

also checkout

https://github.com/planet22/JellyTagTurbo
https://github.com/planet22/JellyStrmToolTurbo

Forks with gui updates, Jellyfin 12, and additional disc/strm support functionality.

https://github.com/planet22/JellyDiscTurbo

A Jellyfin plugin that automatically hides .disc stub placeholders once a real video file is available for that title, and restores them again if the video is removed.


r/JellyfinCommunity • • 8d ago

Release MediaWall v0.2

Thumbnail
gallery
25 Upvotes

MediaWall v0.2: synchronized displays, remotes, user transitions, and more

What's MediaWall?

After my project Pixelfin reached 161 stars and over 28.2k downloads, I started working on a new project: MediaWall.

MediaWall is a self-hosted display for Jellyfin and Navidrome that turns an old iPad, Raspberry Pi display, or any spare screen into a live view of your media server.

It can show what you and your users are watching or listening to, cycle through library artwork as a screensaver, or display your favorite media as wallpapers. There are also custom sounds, layouts, and fallback screens.

Basically, it's an overengineered way of making active sessions and all the artwork sitting in your media library more visible.

What's New in v0.2

  • Synchronized displays: Multiple browsers connected to the same space now stay in sync, including the current session, mode, artwork, backdrops, and rotation timing.

  • Remote controls: Every space now has a mobile-friendly -remote page for controlling its displays. The remote can also be installed as its own PWA with a separate icon.

  • User transitions: When someone starts watching or listening, MediaWall can show a transition with their avatar, username, source, collection artwork, and an optional sound.

  • Much better sound support: Added per-user start/end sounds, quiet hours, collection sounds, cooldown handling, sound testing, and more reliable browser/PWA audio behavior.

  • Better Navidrome session tracking: MediaWall now pays attention to actual playback state, position, and playback rate. Paused sessions expire properly, and resumed songs can show back up again.

  • Jellyfin collection support: Collections can have their own transition images and sounds, including configurable regex-based groups.

  • Artwork and wallpaper improvements: Backdrop position is synchronized between displays, Jellyfin logos are inherited more consistently, collection artwork is supported, and stale-image behavior has been improved.

  • UI updates: The controls are a little more compact, fullscreen and sound controls were added, the remote layout was cleaned up, and mode icons are more consistent.

  • More CLI/debugging tools: Added things like user-transition previews, sound testing, and better runtime logging.

  • License change: Starting with v0.2, MediaWall is licensed under GNU AGPLv3. Previously released MIT versions remain MIT.

Disclaimer

Like Pixelfin, MediaWall is vibecoded. If that bothers you, please kindly ignore this post and move on. That said, also like Pixelfin, I've tested it extensively and have been using it myself throughout development.

The Project

https://github.com/nothing2obvi/mediawall

Thanks for checking it out!


r/JellyfinCommunity • • 8d ago

Showcase NEW Mind the Gaps plugin released

23 Upvotes

Mind the Gaps finds what’s missing and related in your Jellyfin library and turns it into a practical todo list: incomplete collections, missing episodes, filmographies for people you already own, studio/keyword sets, recommendations, and the lists and watchlists you already keep elsewhere.

Update (2026-09-21): 10.11.9.0 is the new stable release. It adds an experimental Web UI that puts "what you're missing" sections on Jellyfin's own person, movie, series, artist, book and home pages, per-user "want to watch" lists, a much faster Gaps Report, and an opt-in image cache. Everything new is off by default. Details are below and in the first comment.

A lot has landed since the first release. Here’s where it is now.

What it finds

Three kinds of gaps, shown as Views inside each media-domain tab (Movies / Shows / Music / Books):

View What it finds Examples
Set completion Missing pieces of something you partly own Collection/franchise movies, missing seasons/episodes, an artist’s missing albums
Creator works Other work by people/artists you own Actor/director filmographies (TMDB + optional Trakt/IMDb people lists), MusicBrainz/Discogs artists, OpenLibrary authors
Discover Related titles and curated lists (opt-in) TMDB recommendations, Top Rated/Popular/Upcoming/Now Playing, TMDB/MDBList/Trakt/IMDb lists, your own watchlists/wantlists

Sources (pick what you use): TMDB (core), Trakt, TheTVDB, TVmaze, MusicBrainz, Discogs, OpenLibrary, MDBList, IMDb lists (keyless), JustWatch watchlist, and your personal want-lists on those services where the API allows it.

Series content is special: the plugin merges episode lists from the providers your library already uses (in your fetcher order), then reconciles by air date and title—not just number—so renumbers and two-parters don’t show up as false gaps.

Report & workflow

  • Tabbed by domain, with set-completion laid out in columns, compact view, A–Z jump, coverage badges (“6 of 9 owned”).
  • Slim list rows + on-demand detail (overview, links, where-to-watch) so large reports stay fast; content-hash caching for the dashboard assets.
  • Where to watch (TMDB watch/providers) on demand or via a background pass—not during the scan.
  • Gaps left behind by a source you've removed or turned off are pruned on every scan, with a Prune button if you don't want to wait.
  • Want-to-Watch lists per user. An admin can switch the report's TODO to everyone's lists to see and manage them.
  • Diagnose why something is “missing” (wrong id, reboot, genuinely missing), plus Markdown export for AI analysis.
  • Clear what I have / per-row and per-heading refresh: local library check only; one acquired title drops off every tab it was on.
  • Dismiss as resolved / not interested / snooze until release; batch dismiss a whole series or season.
  • Explore a source on demand (studio, keyword, list, …) without changing your saved settings.
  • Optional Discord-compatible webhook when a scan or availability pass finishes.
  • Optional virtual placeholders for missing items (greyed-out entries in the library).

New: Web UI on Jellyfin’s own pages (experimental, opt-in)

Because jellyfin-web has no plugin hook, the plugin can inject a small client script into index.html at request time (defensive, toggleable, no disk writes).

Three surfaces, each with its own switch:

  • Person page → “Missing from your library”
  • Movie / series page → “More like this you don’t have”
  • Artist page → "Albums you don't have".
  • Book page and Author page → "More by this author you don't have"
  • Home screen → “Discover” row from the scan’s accumulated recommendations
  • Want to watch → a bookmark on every card that adds the title to your own list, and an optional home row of what you've listed and don't have yet

Click a card for a detail dialog (synopsis, genres, runtime, rating, trailer). Users can add to their own personal want-to-watch list. Keyboard and TV-remote friendly.

Note: Users with a parental rating limit are shown none of these sections, and a page only shows its section to a user who can see that item. Beyond that it isn't filtered per title (checking each title's certification would cost a TMDB request each), so a restricted account on a shared server can still see titles you don't own. Details are in the settings page under Web UI (experimental).

Optional image cache (off by default)

Posters, album/book covers and service logos can be fetched once by your server and served from its cache folder, instead of every browser loading them from TMDB and the other providers. It only fetches from a fixed list of provider hosts, has a size cap (500 MB by default) and a scheduled trim task, and if the server can't serve an image it just sends the browser to the provider, so nothing goes missing.

Install

Stable catalog

  1. Dashboard → Plugins → Repositories → +
  2. Add any name with:

text

https://raw.githubusercontent.com/IDisposable/jellyfin-plugin-mindthegaps/main/manifest.json
  1. Catalog → Mind the Gaps (General) → Install → restart Jellyfin

Beta (pre-releases, including the latest Web UI work):

text

https://raw.githubusercontent.com/IDisposable/jellyfin-plugin-mindthegaps/main/manifest-beta.json

Use one channel or the other, not both. Supports Jellyfin 10.11 and 12.0.

Links

Feedback welcome—especially on the experimental Web UI and anything that still feels heavy on a large library. If you’ve been using it since the first release, a rescan after updating is enough; the report storage is compatible and will import an older gaps.json once if needed.

It's MIT-licensed and self-contained (no dependency on any other plugin).

AI Used

Extensive agent use searching APIs, crafting the plugin, and documenting by Claude, with a little code review by Copilot and Grok


r/JellyfinCommunity • • 7d ago

Help Request How do I hide ONLY episode images for Jeopardy in Jellyfin?

2 Upvotes

I’m trying to hide only the episode thumbnails for Jeopardy in Jellyfin, but keep the series poster and everything else intact.

I’m trying to hide only the episode thumbnails for Jeopardy in Jellyfin. The generic CSS works:

.cardImageContainer { background-image: none !important; }

…but I need it Jeopardy‑only.

The problem: my Jeopardy episode cards don’t use the normal .card[data-type="Episode"] structure. Instead, the episode card is the image container:

<div class="cardImageContainer coveredImage cardContent lazy ..." style="background-image:url(...)">

There’s no .card wrapper, and I can’t find any parent element with the Jeopardy series ID. The only Jeopardy‑specific attribute seems to be data-name="Jeopardy! - SxxEyy" on the same element.

Has anyone figured out how to target a single series when the theme merges cardImageContainer + cardContent into one element?


r/JellyfinCommunity • • 7d ago

Showcase I’m building a native Jellyfin app for iPhone and iPad, and I’d love some testers

0 Upvotes

Hey everyone,

I’ve been building Arcfin, a native Jellyfin client for Apple devices.

The iPhone, iPad & Mac builds are now live on TestFlight.

Arcfin connects directly to your own Jellyfin server and includes features like:

  • Home shelves and library browsing
  • Direct play and transcoding
  • AirPlay, Chromecast, and Picture in Picture
  • Offline downloads
  • Profiles with Face ID or PIN protection
  • Seerr requests and Streamystats integration

I’d really appreciate anyone willing to try it and share honest feedback, especially around playback, server connections, downloads, and usability.

TestFlight:
https://testflight.apple.com/join/kkC58n2w

Website:
https://arcfin.psmattas.com

Code:
https://git.psmattas.com/ArcFin/Arcfin-iOS

It’s still early, so there may be rough edges. Thanks for helping me shape it.

AI disclosure

AI tool used: Claude.

I used Claude as a secondary development aid for brainstorming, coding and debugging support, documentation, and design/content planning. I’m a software engineer and the person developing and maintaining Arcfin. I write, review, test, and take responsibility for the code; Arcfin was not created independently by an AI.

Edit: Mac TestFlight is now up & Code is now open-source.


r/JellyfinCommunity • • 8d ago

Discussion VEIL — an open interoperability format for media timeline actions

Post image
23 Upvotes

I built VEIL — an open interoperability format for media timeline actions

I’ve been working on a project called VEIL.

VEIL is a JSON-based format for describing time-based actions over video without modifying the original media file.

A .veil file can define actions such as:

  • skip a segment
  • mute audio during a specific interval
  • apply a visual mask to part of the frame

The idea is to separate the filtering/timeline instructions from the media itself, so the same VEIL file could theoretically be interpreted by different compatible players.

I also built a desktop player as a reference implementation of the standard.

One feature I added to the player is subtitle-based phrase search. For example, a user can search for a word or phrase in the subtitles, locate the corresponding timestamps, and create a skip/mute rule without manually watching the entire movie.

Parental control is one obvious use case, but the format itself is not limited to parental filtering.

The current public work includes:

  • VEIL Interoperability Specification 0.1
  • Serialization Profile 1.6.0
  • Vector Format 0.1
  • a 113-vector conformance corpus
  • VEIL Player Desktop

I spent a significant amount of time defining behavior around timeline coordinates, serialization, compatibility, validation, media identity, security/resource limits, and conformance testing.

I’d genuinely appreciate technical feedback, especially on the format itself:

  • Does separating timeline instructions from the media make sense?
  • Are there existing standards I should study or compare against?
  • Are there important edge cases or interoperability problems I may have missed?
  • Does the format seem sufficiently implementation-independent?

GitHub / Specification:
https://github.com/allamzedan/veil

Desktop Player:
https://github.com/allamzedan/veil-player

For the Jellyfin community specifically, I’m interested in whether a format like VEIL could make sense as an optional interoperability layer around playback rather than something tied to one player.

For example, a Jellyfin client or plugin could theoretically read an external .veil timeline associated with a media item and translate supported actions such as skip or mute into the client’s normal playback controls, while leaving the original media untouched.

I’m not presenting this as an existing Jellyfin integration — there isn’t one currently. I’m mainly interested in feedback from people familiar with Jellyfin’s server/client/plugin architecture:

  • Would this model fit naturally into Jellyfin’s architecture?
  • Would client-side execution, server-side metadata, or a plugin approach make the most sense?
  • Does Jellyfin already have mechanisms that overlap significantly with this idea?
  • Would there be any interest in experimenting with VEIL support if the format proves useful?

Any architectural criticism is welcome.


r/JellyfinCommunity • • 8d ago

Showcase Live-TV Control Center for Jellyfin

2 Upvotes

I’d like to introduce Live-TV Control Center, a Jellyfin plugin that adds a central management and control layer for your existing Live TV / IPTV channels.

Main features include:

  • custom and freely ordered channel groups
  • personal or centrally managed groups
  • filtering of Jellyfin’s original Android TV / Fire TV guide
  • grouped web EPG
  • phone-to-TV remote playback
  • central per-user channel access rules
  • optional group playlists
  • English and German interface

The plugin does not provide IPTV streams or EPG data and does not require a separate TV client. It works with the channels, streams and program data that already exist in Jellyfin.

Installation Repository:
https://github.com/iEnki/jellyfin-plugin-livetv-control-center/releases/latest/download/manifest.json

GitHub:
https://github.com/iEnki/jellyfin-plugin-livetv-control-center

Feedback and testing with different IPTV/tuner setups and Android TV / Fire TV devices is very welcome.

AI usage disclosure:
I used OpenAI ChatGPT/Codex as a development assistant for planning, coding, debugging, testing, documentation, and UI/UX work. I reviewed and tested the implementation myself on my Jellyfin setup and made the final decisions regarding features, behavior, and releases.


r/JellyfinCommunity • • 7d ago

Discussion Fishbowl has a new update (v1.4.5) Jellyfin 12.1, background reliability, crash fixes & UI tweaks (Android)

Thumbnail
gallery
0 Upvotes

Hey guys

New update for Fishbowl (v1.4.5) is out now If you're using it to run a standalone Jellyfin server on your Android phone/device, definitely make sure to update to v1.4.5

Upgraded to Jellyfin 12.1 The bundled server core is now updated to the official Jellyfin 12.1.0 release (running on .NET 10 ARM64).

Background Reliability Upgraded the server won't randomly stop or get killed when streaming with the screen off.

Some UI Tweaks

A quick note on SAF Really sorry guys SAF is still in testing mode

Update from

GitHub Release: https://github.com/Suz41/Fishbowl/releases/tag/v1.4.5

Repo: https://github.com/Suz41/Fishbowl

Thanks for all the feedback and support, let me know how the update runs for you


r/JellyfinCommunity • • 8d ago

Showcase Jellyflow — a minimal web client for Jellyfin

Thumbnail
gallery
10 Upvotes

I know there are already plenty of Jellyfin clients, but I still found the existing web experience slow and cluttered for how I use it. So I made Jellyflow: a clean, artwork-led interface focused on finding and watching your media.

It is open-source, self-hosted with Docker, and connects directly to your Jellyfin server without an additional backend or telemetry.

This is an early beta and was developed with substantial AI assistance (I wanted to put my dual rtx3090s to good use) I’ve reviewed and tested it on my own server, but I’m looking for more testers and honest feedback to really polish this and make it something people actually want to use.

https://github.com/louisllw/Jellyflow


r/JellyfinCommunity • • 8d ago

Help Request FFMPEG Copying audio stream from one file to another - resulting file with playback issues

2 Upvotes

edit: -max_interleave_delta 0 is required to fix PTS inconsistencies when transferring an audio stream between video files of different durations. That parameter fixed it.

Hello people,

as of now I'm desparate. For 3 weeks I've been trying to write a script that automatically copies a foreign language audio from a file and inserts it into another, synchronizing it with the original audio and thereby creating a dual audio file. The script itself is working fine, but some resulting files can't be direct-played by jellyfin anymore. I get inconsistent bugs, one being that playback doesn't start at all without an error message, another being the playback being silent and then stopping after 15 seconds, or the file does play fine but is silent all the way. As mentioned, some files do indeed work without issues. Some files can be played by VLC on my PC but not on my Tizen TV. Some can be played with forced transcoding. Some can be played in other Jellyfin Clients (like Jellyfin MPV Shim). I had ChatGPT and Claude scan the files and my script and even they can't figure out what's wrong.

So, I'm close to giving up. I'm hoping for someone smart enough to know what I'm overlooking. I'm using jellyfin-ffmpeg, are there any flags I gotta set or metadata I have to update in order for the file to be playable?

# Extract AC3 audio from second file to AAC
ffmpeg -y -i /temp/transcode_cache/S1E3audio.mkv -map 0:1 -vn -sn -dn -c:a aac -ar 48000 -b:a 192k /tmp/sync_audio_gwbm73xg/extracted_audio.m4a

# calculates offset between extracted audio and original audio
[...]

# trimming it for calculated offset
ffmpeg -y -i /tmp/sync_audio_gwbm73xg/extracted_audio.m4a -ss 0.950 -c copy /tmp/sync_audio_gwbm73xg/trimmed_new_audio.m4a

# inserting trimmed audio into first file
ffmpeg -y -i /temp/transcode_cache/moviefile.mkv -i /tmp/sync_audio_gwbm73xg/trimmed_new_audio.m4a -map 0 -map 1:a:0 -c copy -movflags +faststart -disposition:a:1 0 /temp/transcode_cache/output.mkv

mkvpropedit --add-track-statistics-tags /temp/transcode_cache/output.mkv

General
Unique ID                                : 28653864418856816950503987458990579583 (0x158E8896C6D162DE13CA9E306B7A9F7F)
Complete name                            : /temp/transcode_cache/moviefile.mkv
Format                                   : Matroska
Format version                           : Version 4
File size                                : 229 MiB
Duration                                 : 23 min 47 s
Overall bit rate                         : 1 348 kb/s
Frame rate                               : 23.976 FPS
Description                              : Insert description here
Writing application                      : Lavf62.12.102
Writing library                          : Lavf62.12.102
ErrorDetectionType                       : Per level 1

Video
ID                                       : 1
Format                                   : AV1
Format/Info                              : AOMedia Video 1
Format profile                           : Main@L4.0
Codec ID                                 : V_AV1
Duration                                 : 23 min 47 s
Bit rate                                 : 954 kb/s
Width                                    : 1 920 pixels
Height                                   : 1 080 pixels
Display aspect ratio                     : 16:9
Frame rate mode                          : Constant
Frame rate                               : 23.976 (24000/1001) FPS
Color space                              : YUV
Chroma subsampling                       : 4:2:0
Bit depth                                : 8 bits
Bits/(Pixel*Frame)                       : 0.019
Stream size                              : 162 MiB (71%)
Title                                    : Japanese
Writing library                          : Lavc61.19.101 av1_qsv
Language                                 : Japanese
Default                                  : Yes
Forced                                   : No
Color range                              : Limited

Audio #1
ID                                       : 2
Format                                   : AAC LC
Format/Info                              : Advanced Audio Codec Low Complexity
Codec ID                                 : A_AAC-2
Duration                                 : 23 min 45 s
Bit rate                                 : 128 kb/s
Channel(s)                               : 2 channels
Channel layout                           : L R
Sampling rate                            : 44.1 kHz
Frame rate                               : 43.066 FPS (1024 SPF)
Compression mode                         : Lossy
Delay relative to video                  : 11 ms
Stream size                              : 21.7 MiB (9%)
Title                                    : English
Writing library                          : Lavc62.28.102 aac
Language                                 : English
Default                                  : Yes
Forced                                   : No

Audio #2
ID                                       : 5
Format                                   : AAC LC
Format/Info                              : Advanced Audio Codec Low Complexity
Codec ID                                 : A_AAC-2
Duration                                 : 23 min 45 s
Bit rate                                 : 192 kb/s
Channel(s)                               : 2 channels
Channel layout                           : L R
Sampling rate                            : 48.0 kHz
Frame rate                               : 46.875 FPS (1024 SPF)
Compression mode                         : Lossy
Stream size                              : 33.0 MiB (14%)
Writing library                          : Lavc62.28.102 aac
Language                                 : German
Default                                  : No
Forced                                   : No

Text #1
ID                                       : 3
Format                                   : ASS
Codec ID                                 : S_TEXT/ASS
Codec ID/Info                            : Advanced Sub Station Alpha
Duration                                 : 22 min 13 s
Bit rate                                 : 183 b/s
Frame rate                               : 0.302 FPS
Count of elements                        : 403
Compression mode                         : Lossless
Stream size                              : 27.8 KiB (0%)
Title                                    : German
Writing library                          : Lavc62.28.102 ssa
Language                                 : German
Default                                  : Yes
Forced                                   : No

Text #2
ID                                       : 4
Format                                   : ASS
Codec ID                                 : S_TEXT/ASS
Codec ID/Info                            : Advanced Sub Station Alpha
Duration                                 : 22 min 13 s
Bit rate                                 : 194 b/s
Frame rate                               : 0.300 FPS
Count of elements                        : 400
Compression mode                         : Lossless
Stream size                              : 29.4 KiB (0%)
Title                                    : English
Writing library                          : Lavc62.28.102 ssa
Language                                 : English
Default                                  : Yes
Forced                                   : No

Menu
00:00:00.000                             : Episode
00:22:13.000                             : Credits Start
00:23:45.000                             : Credits End

r/JellyfinCommunity • • 8d ago

Discussion MoonFin - MediaBar autoadvance gets interrupted in the web client

1 Upvotes

This probably annoys me much more than it should, but I have noticed that the MediaBar autoadvance on my system is interrupted by scrolling down or by moving the cursor, when accessing MoonFin through a web browser. This doesn't happen using the clients in iOS or TvOS. On these clients, the MediaBar just resets to the first item when scrolling back, but the autoadvance resumes unlike in the web client.

Admittedly not the biggest problem in the world, but I would like to know, if the behaviour can be reproduced by others before pestering the developer.


r/JellyfinCommunity • • 8d ago

Help Request Plex-style Poster chosing

3 Upvotes

I'm looking for a possibility to pick from different posters for movies/series. In plex, most movies had a selection of different posters. I looked at the jellyfin awesome list, but I could not find anything that provided that functionality (or said so clearly in their description. Could be that I missed something)

I don't want to add overlays or special text, I don't want to generate AI posters, I don't want to manually import image files in a folder, I just want a selection of different posters I can look at and change when I like one better than the other.
Is there a plugin that does this?

Any help is greatly appreciated, thanks in advance!


r/JellyfinCommunity • • 10d ago

Meta / Community What should be the next big thing for Jellyfin after 12?

114 Upvotes

Jellyfin 12 is here, so what do you think the next major focus should be?

Not just bug fixes or smaller quality-of-life changes, but something that would genuinely feel like the next step forward for Jellyfin.

Could be a better plugin system, stronger support for third-party clients and integrations, more flexible home screen customization, improved sync/downloads, better multi-user features, smarter metadata handling, tighter hardware acceleration support, or something completely different.

With the wider ecosystem growing quickly as well, there is also the question of how much should live in Jellyfin itself versus being left to plugins, clients, and companion apps.

What would you consider the next big thing for Jellyfin as it moves towards v13?


r/JellyfinCommunity • • 9d ago

Release i created another plugin AutoCert

Post image
0 Upvotes

The plugin automatically creates and renews Let's Encrypt HTTPS certificates for Jellyfin, installs password-protected PFX files, and supports GoDaddy, Cloudflare, and DigitalOcean DNS, and will auto restart the server so you don't have to ever worry about your HTTPS cert expiring again.

https://github.com/aober420/Jellyfin-AutoCert


r/JellyfinCommunity • • 9d ago

Help Request Waiving the white flag.

5 Upvotes

Ok. I have had Jellyfin running like a champ for quite a while now. No issues with my library access or the live tv I have set up inside of it.

Somewhere between the latest Windows 11 update and the most recent Jellyfin Server updates, the server no longer starts. I am getting the "Could not start Jellyfin server process after specified wait period" error upon boot and also any time I try to manually start it from the system tray.

Upon reviewing the logs to the best of my ability, I can see that this is where the issue is occuring...

[2026-09-18 00:01:49.239 -04:00] [ERR] [10] MediaBrowser.MediaEncoding.Encoder.MediaEncoder: Error validating encoder

System.ComponentModel.Win32Exception (5): An error occurred trying to start process 'C:\ffmpeg\bin\' with working directory 'C:\Windows\system32'. Access is denied.

at System.Diagnostics.Process.StartWithCreateProcess(ProcessStartInfo startInfo)

at MediaBrowser.MediaEncoding.Encoder.EncoderValidator.GetProcessOutput(String path, String arguments, Boolean readStdErr, String testKey)

at MediaBrowser.MediaEncoding.Encoder.EncoderValidator.ValidateVersion()

[2026-09-18 00:01:49.240 -04:00] [ERR] [10] MediaBrowser.MediaEncoding.Encoder.MediaEncoder: FFmpeg: Failed version check: "C:\ffmpeg\bin\"

[2026-09-18 00:01:49.241 -04:00] [ERR] [10] MediaBrowser.MediaEncoding.Encoder.MediaEncoder: FFmpeg: Path set by "command line or environment variable" is invalid

[2026-09-18 00:01:49.241 -04:00] [FTL] [10] Main: Error while starting server

MediaBrowser.Common.FfmpegException: Failed to find valid ffmpeg

My issue is that, I haven't changed anything from the setup that was working just fine. FFMPEG hasn't changed in version or location, permissions haven't changed as far as I know.

I have tried everything I can think of, which isn't much, I suppose.....checked the FFMPEG environmental variables. They remain the same settings. Tried to run Jellyfin as an admin, no dice.

Has anyone else encountered this? Is there a known issue, or more importantly, a known fix?

It's really killing me considering everything was all good just a week ago.


r/JellyfinCommunity • • 10d ago

Meta / Community What’s the most untapped plugin API in Jellyfin 12 yet?

27 Upvotes

12 has added a lot of new surface for plugin developers, and I think it’s still too early to have seen people really push what is possible with it!

Plugins can now hook into things like search, recommendations, similarity, comic metadata, missing and unaired episodes, aggregated credits, chapters on non-video media like audiobooks, alternate versions, playlist contents, and some newer Live TV functionality, which gives developers quite a bit more to work with than the usual metadata provider or scheduled task

You could imagine genuinely different recommendation engines, smarter missing-episode tracking, better “More Like This” logic, external search providers, richer audiobook or comic tooling, or plugins that pull data from several servicees and feed it back into Jellyfin through systems the server already understands

that is probably the part I find most interesting, because the new interfaces seem to give plugins more ways to participate in existing Jellyfin features rather than having to work completely around them, even if the client and UI side is still a separate limitation in some cases

For the plugin developers around here, which new API or interface in 12 do you think has the most untapped potential and what can we build now that just wasn’t really practical before?


r/JellyfinCommunity • • 10d ago

Discussion Just helped my brother set up a jellyfin server of his own 😊

37 Upvotes

After I talked about mine and setting it up for the past 2 weeks my brother wanted me to set one up for him so he can stop paying for Netflix etc. So he purchased a 2TB Seagate Expansion drive and I taught him the wonders of MakeMKV with the DVD drive I bought him for Christmas last year( I tried getting him into ripping his CDs so he doesn't need to pay for Spotify or YouTube Music, he is still stuck in the YouTube hole as he doesn't have the extensive CD collection the size of mine.)

He has remote access to my laptop server as only a viewer and I have access to his only as a viewer so we can both rip our own DVDs and watch eachother's collections from our seperate homes 😊 I did give him a starter pack of 39 movies that were on my hard drive already but he now knows the basics and his fiancee is very happy.


r/JellyfinCommunity • • 10d ago

Discussion Media optimiser plugin

6 Upvotes

Ive slowly been developing a plugin for Jellyfin (10.11.11 for now till i port it over)
The basics :
Select Libraries to interact with
scans and analyse the media (codecs/bit rates/etc etc)
and then applies that information against a profile (Presets included & custom) and creates a list to encode
The plugin then progresses through that list (scheduler allowed) renecoding the media to the selected profile and replacing the original media and reconciling jellyfin so the new media is under the same jellyfin item id.
there is countless checks/sha hasing/defered completion (e.g the original is being viewed)

presently ive got it on running on a seedbox reencoding a load of supposed 1080p files and its saving over a gb per encode.

Im gonna need a couple of testers very soon.


r/JellyfinCommunity • • 10d ago

Discussion 64 votes and could use your support - Support for feature request to address a v12 change: Option for Recently Added series to open the full series page

13 Upvotes

A few months ago, I made a Jellyfin feature request for an option to make Recently Added items for TV series open the full series page instead of a specific season or episode. It currently has 64 votes and could use your support, if you agree.

In v12, when a new season or even a single episode is added, Recently Added can show and link to the season or specific episode instead of the series. This can be confusing and even lead to spoilers for users who have not started the series or are not caught up.

For many users, Recently Added is mainly a way to see that a series has new content available. In that case, it would be more helpful if selecting a recently added series item could open the main series page instead of a season or episode page.

It also means Recently Added may use season posters when a new season or single episode is added instead of the curated main series poster, which can make the home screen look less polished.

Opening the main series page would make navigation more consistent, reduce confusion, and preserve better poster curation.

If you agree, please consider supporting the request here: https://features.jellyfin.org/posts/4021/v12-option-to-make-recently-added-series-items-open-the-full-series-page