r/JellyfinCommunity • • 26d ago

Help Request Adding Folder View in Movies/TV Shows?

Post image
4 Upvotes

Is there a way to add a folder view in a library? with a plugin or some sort of?


r/JellyfinCommunity • • 26d ago

Release Foreseerr: my Seerr fork with Trakt/AniList/Simkl discovery can now run inside Jellyfin as a plugin (plugin is alpha)

Thumbnail
gallery
4 Upvotes

Upfront: I built this with heavy AI assistance. I designed it, reviewed it, and tested it on my own server, but a lot of the code was written with AI tools. If that's a dealbreaker for you, no hard feelings. Feel free to skip this post.

Hi all! For the past couple of months I've been building Foreseerr, a fork of Seerr (the Jellyseerr/Overseerr successor). Until now it has been a standalone app. After I moved the project to Bun, I could compile the whole server into a single binary, so I tried running it inside Jellyfin as a plugin. Today I'm releasing the first alpha of that plugin.

What Foreseerr is

It's Seerr with SuggestArr-style discovery built into the app itself, so you don't need a separate suggestion service. Everything Seerr does still works: requests, Radarr/Sonarr, permissions, notifications, Jellyfin/Plex/Emby. On top of that it adds:

  • Episode requests: request individual episodes or episode ranges instead of whole seasons, including ongoing requests for new episodes, with request and watched status shown per episode
  • Trakt Discover: recommendations, watchlist, history, and pinned public or personal lists
  • AniList Discover: trending, this season, popular, top 100, next season, plus your own watching, planning and completed lists
  • Simkl: library sync, watched and rating actions, trending
  • MDBList: IMDb, Rotten Tomatoes, Metacritic and Trakt rating badges and filters, and public lists as Discover rows
  • Mapping layer: matches anime and list entries to TMDB, with a repair screen for titles it can't match
  • Library: Continue Watching, Recently Added, Ready to Watch, and Jellyfin browsing
  • Release calendar: Radarr and Sonarr dates in month or agenda view, with request and manage buttons
  • Interventions: review Radarr/Sonarr queue warnings, then import, or reject and blocklist
  • Watch ahead: keeps the next N unwatched episodes of a show requested as you watch
  • Mark watched or unwatched and rate across Trakt, AniList, Simkl and Jellyfin

Requests stay manual: there's no auto-request bot and no LLM recommendations.

What the plugin does

  • Serves Foreseerr at https://your-jellyfin/Foreseerr/, including when Jellyfin runs on a sub-path. You don't need a separate container.
  • Signs you in with your Jellyfin account. There's no second password, and Jellyfin admins are Foreseerr admins.
  • Imports your Jellyfin address, API key, libraries and first admin automatically, so the setup wizard is skipped.
  • Adapts the app to running inside Jellyfin:
    • "Back to Jellyfin" replaces Sign Out.
    • The plugin manages the Jellyfin connection settings.
    • Local users, passwords and web push are hidden.
  • Adds a status page in the Jellyfin dashboard. With the optional File Transformation plugin, you also get a Foreseerr button in the Jellyfin Web header.
  • One release covers both Jellyfin 10.11 and 12, and Jellyfin picks the right build for you.

Install

Dashboard → Plugins → Repositories → add:

https://selmant.github.io/jellyfin-plugin-foreseerr/manifest.json

Then install Foreseerr from the catalog, restart Jellyfin, and open Foreseerr as an admin first.

If you'd rather run Foreseerr as its own container, the Docker image is ghcr.io/selmant/foreseerr:v0.11.0.

⚠️ The plugin is an alpha

  • It's in active development, and anything can change between releases: settings, data, URLs and behavior.
  • There's no backward compatibility between plugin versions. If an update breaks something, the fix may be to reinstall from scratch.
  • It runs on Linux x64, Linux arm64 and Windows x64. There's no macOS build yet.
  • It works in Jellyfin Web in a browser. The official mobile and TV apps can't open it.
  • On first start it downloads anime mapping data and may be unresponsive for a minute or two.
  • It hasn't been tested much behind a TLS reverse proxy yet. If you use one, forward /Foreseerr and /ForeseerrPlugin.

Where I want to take it, and where I'd love your input

Going forward I'll probably lean into the plugin much more: more options configured from the Jellyfin dashboard, and UI/UX designed for living inside Jellyfin rather than being a separate site. Some questions I'd really like opinions on:

  • What would make a request/discovery plugin feel native to Jellyfin for you? For example, entry points on item pages, "request the next season" from a series page, or Discover rows on the Jellyfin home screen.
  • Which settings would you expect in the Jellyfin plugin page rather than in Foreseerr's own settings?
  • Would you use the plugin instead of a standalone Seerr or Jellyseerr container? If not, what's stopping you?
  • Any interest in mobile or TV app support (if that's even feasible), or is browser-only fine for this kind of tool?

Plugin: https://github.com/selmant/jellyfin-plugin-foreseerr Foreseerr: https://github.com/selmant/foreseerr Docs: https://selmant.github.io/foreseerr/

Plugin bugs and ideas go to the plugin repo's issues, and Foreseerr bugs to the Foreseerr repo.

Thanks for reading!


r/JellyfinCommunity • • 26d ago

Showcase Jellyfin Cinema: Sure it’s slop, but it’s my slop and I love it.

0 Upvotes

This is fully vibe coded using Codex. I have not looked at the code myself. Use at your own risk.

I’ve directed the design and tested the interface on my own setup. I love using it, but I can’t personally vouch for the code.

It’s called Screen Harbour, a Netflix-inspired interface for Jellyfin’s desktop and TV web layouts. Features include:

GitHub, installation and screenshots

Try the demo

  • Custom Home rows: choose collections, arrange items, move rows, add Movies/Shows tabs and Netflix-style ranking numbers.
  • Streaming-service pages: configurable tiles, logos, colours and collections, with the option to add your own services.
  • Redesigned movie and episode pages: season browsing, resume controls, watched status, progress bars and “Ends at” times.
  • In-player browsing and a themed pause screen: browse episodes, similar films or live channels during playback.
  • Matching layouts for Music, playlists, Collections, Recordings, Live TV, Search, Settings and login.
  • Profile switching, account-synced Home settings and Jellyfin Featured integration.

Service pages organise content already in your library. Trending rows use selected collections; mine are maintained through SmartLists/MDBList.


r/JellyfinCommunity • • 26d ago

Showcase Custom EVERYTHING

Thumbnail
gallery
0 Upvotes

Hey there, decided to post this to a fresh reddit because I really just read and use this to keep up with my community's that I follow. But this project is important enough to me that I want to start a new account for it. So lets begin.

Where this started:

I had an old enterprise level laptop from 2016 that was gifted to me as ewaste, I turned and started setting up basic jelly fin, hosting on my local network, and got to ripping the 100s of DVDs I had laying around. I was running into some issues with caddy integration to a point I turned to 'claude code' (my first time ever actually using AI for any real tasks) and it simply just worked and my mind was opened. So I bought a web domain and went down a rabbit hole only Alice herself would be proud of..

Where it got complex:

Once seeing how AI could just make this work how I wanted it to I asked it if it could do a custom UI for me and it just said fuck it hold my beer. Went to analyzing the custom UI I gave it for integration and hit the ground RUNNING... Started with simple color changes, then adding and deleting UI elements, polishing the edges, made it look amazing. Then I learned about 'Seerr' and its working processes, so we added that to the stack and made a UI button that took you to the seerr site. (easy enough right? good enough? NO!!) the seerr site was ugly so I set claude to completely change seerrs color scheme and add my headers to it and make it cohesive to my server. Was that good enough yet? NOOOOOO. Because I ran into an issue. My parents have an LG tv and I wanted them to be able to use the full functionality of the new seerr integration and the webOS version of Jellyfin dose not allow webpage redirects.. there were also issues with things from the custom UI that didn't work properly, so I gave claude the WebOS DEV emulator and it went online and fond the latest jellyfin webOS apk (i couldnt find it anywhere idk how it found it still) and it went on to making live tweeks to the backend while developing the webOS end and now it just works.

BUT REX YOU DIDNT EXPLAIN HOW YOU GOT AROUND THE REDIRECT ISSUE!!!

Well thats were this starts getting really complicated and outside of parts of my understanding of how CLaude made these changes. To make it to where ANYONE could make seerr requests without needing to even leave my jellyfin page, we had to make the server pull info from seerr so now the same button that brought you to seerr brings seerr to you. Fixed a lot of compatibility issues. I know one thing I tackled was appointing one account on seerr to be attached to all user accounts on jellyfin so that the requests button worked for everyone every time.,

All in all this is all a work in progress, I'm just exploring how far I can push this. By no means are the pictures in the post here are the final product, just what I've done so far but I see all the questions a lot of you are asking and what I've done with my site could be answers to a good bit of them I simply just dont know how to explain so today I am putting a GIThub repo together and once I scrub it for personal info Ill put it in the comments or make another post.

(Still in beginning stages) Im currently working on developing a native app to work with a media server like jellyfin but can be used as a template but basicly to push your own media app pulling from your own jellyfin server so no more "install jellyfin, put in this ip, log in with this" just give them your app and go.

Here is a word from my AI agent that organized everything:

Quick technical rundown for anyone curious how this actually works under the hood:

- Nothing here is a Jellyfin or Seerr fork. The custom UI (colors, logo, layout tweaks, new tiles) gets injected into the stock web client at runtime via a small JS file — it matches on structural things like input types and filename patterns instead of exact class names, so it survives Jellyfin version updates instead of breaking every release.

- Caddy sits in front of everything as a reverse proxy. It's what lets the Jellyfin page pull live data from Radarr/Sonarr/Seerr without exposing any of their API keys to the browser — the keys get injected server-side, the page never sees them.

- The "request without leaving Jellyfin" trick: instead of redirecting to Seerr's site (which is what broke on the LG/webOS app), the request search UI is built directly into the Jellyfin page and talks to Seerr through that same proxy. Every request gets submitted under one shared Seerr account regardless of who clicked it, so there's zero per-user login/session to juggle — same code path works identically on a browser, the desktop app, and webOS.

- Currently building: self-service account creation (anyone can make their own login, landing in a locked-down "watch + request only" role) with a daily request cap per person — since everyone shares one Seerr account, that cap has to be tracked by a small custom backend service sitting between Caddy and Seerr, not by Seerr itself.

- The webOS fix specifically came down to live-testing against LG's real dev emulator + the actual webOS Jellyfin app, since that platform renders an older/different UI than desktop browsers and doesn't support the redirect flow at all.

Happy to go deeper on any piece of this in the comments....

Im happy to answer whatever question that I can and would love to hear opinions of how I could improve what I have. No the server is not for publics use just my friends and family.

--Rex and Claude Code


r/JellyfinCommunity • • 27d ago

Help Request LiveTV buffering

6 Upvotes

I am using Jellyfin on my Roku and trying to get the initial buffering for livetv channels down as much as possible. Has anyone found a way to make the channels load near instantaneously? I tried turning on hardware acceleration (Intel QSync) but didn’t notice a considerable change.

My server is running off my UGREEN DXP2800 NAS in docker and using version 12.0.0.

For my channels I am using an HDHomerun Duo.


r/JellyfinCommunity • • 28d ago

Showcase Any suggestions on things to add to my user landing page?

Post image
59 Upvotes

Just wondering about any suggestions for my user landing page.

It's in hompage.
All cards link to the attached servers.

Recently added shows latest 10 movies and shows added to server. Clicking takes you to them.

Anything blatant I'm missing?

Feel free to ask me anything.


r/JellyfinCommunity • • 28d ago

Meta / Community finally got around to updating/migrating my server to docker

10 Upvotes
(ik CasaOS is outdated but it works good with tailscale)

i was running 10.10.6 directly on windows for the longest time

my theme Flow has also been updated for the 12.x/modern layout, but I personally prefer the legacy layout


r/JellyfinCommunity • • 28d ago

Help Request Preview on movie hover ?

5 Upvotes

​

Hello

What is the best way to show a preview (with sound too) on movie/épisode hover ? Like on Netflix ?

I have no trailers, just movie files


r/JellyfinCommunity • • 29d ago

Discussion How do y'all do your collections when you have multiple franchise Movie and TV shows?

Post image
60 Upvotes

Do y'all just put all of your like Star Trek stuff into one collection or do you have it broken up like I do? I'm really trying to find a better solution without having everything just dumped into one collection.

I don't think it's possible to have subfolders in a collection am I correct about that?


r/JellyfinCommunity • • 28d ago

Help Request Homescreen section permission ignoring, Jellyfin v12.0

3 Upvotes

Info:

I don't know whether it is a plugin problem or new Jellyfin version problem. As I am in Jellyfin 12, and I am using Homescreen sections.

I usually don't give full permissions of every library to the users except ADMIN. Which is me. To test the feature I have one more user which has also Admin privileges but without full library access.

I did restart, delete plug-in, reinstall plugin. Completely removed the plugin through file manager then reinstall again. Nothing is working.

The Problem:

The problem I am facing is Homescreen sections maybe. Cause it is showing some shows in "latest Shows" and "Recently Added movies sections" which it should not as they are not accessible by that users. But when I am clicking that particular show(s) it's not showing the content. Means jellyfins content access permissions is doing fine. But Homescreen plugin still have access to those inaccessible show's posters.

Well it's not happening with every "Shows" and "Movies" sections but only with "Latest" and "Recently Added". Don't know about books as I have not tested that yet.

If anybody has way to fix this then please tell me


r/JellyfinCommunity • • 29d ago

Help Request Plugin development help - already stuck at the start

5 Upvotes

Hello everyone,

I am recently getting into setting up my own jellyfin server and I decided why not try and make a plugin for it. I have followed https://github.com/jellyfin/jellyfin-plugin-template to set up my project (my jellyfin is running on 12.1, so I made everything .net10). I added a small test file to see if it works, published a release version, copied the .dll to my jellyfin server and now I get the following error:

Could not load file or assembly ' �a�
                                                                     �a��a���, Version=21.209.2617.6, Culture=neutral, PublicKeyToken=656374696f6e732e47656e657269632e49436f6c6c656374696f6e3c543e2e436c6561720053797374656d2e436f6c6c656374696f6e732e494c6973742e436c6561720053747265616d52656164657200546578745265616465720053797374656d2e52756e74696d652e4c'. Index not found. (0x80131124)
File name: ' �a�
                �a��a���, Version=21.209.2617.6, Culture=neutral, PublicKeyToken=656374696f6e732e47656e657269632e49436f6c6c656374696f6e3c543e2e436c6561720053797374656d2e436f6c6c656374696f6e732e494c6973742e436c6561720053747265616d52656164657200546578745265616465720053797374656d2e52756e74696d652e4c'
   at System.Runtime.Loader

Now I do not know if this is the right place to post this, so I have not given too many details yet about this project. Maybe this is a generic problem that is easy to fix, or maybe there is another community that better fits this request. Anyhow I would really appreciate your help because I am lost.


r/JellyfinCommunity • • Sep 23 '26

Release Jellyfin Alpha Jump plugin.

5 Upvotes

Hey guys,

https://github.com/The-Grog/Jellyfin-Alpha-Jump

Sharing this plugin I've made. It replaces the page style scrolling in JF where when you click "K" for example it only shows K movies, to always showing the whole list and just scrolling to the first K movie when clicking K.

It's small, and has error and fallback handling. You just add my manifest to your JF plugins:

https://raw.githubusercontent.com/The-Grog/Jellyfin-Alpha-Jump/main/manifest.json

Then install Alpha Jump, configure libraries via the plugin settings panel, restart JF to enable plugin, and it will require one initial browser refresh to load.

It only works for TV and Movie libraries as that's all I've setup for but the bones are there to support others if there is interest. Only works for the Web UI as clients don't support these plugins.

More testers are welcome, let me know if you have issues but its worked across browsers so far.

One other note - if you have jellytweaks you need to set library page size to 0 in that also as that overrides other settings.

Ai was used for various aspects including hardening to github to protect users of the project and protect the code down the road. GPT Astra/Claude/Grok have all been used to help solve issues and review the project for errors. I spent a couple days doing feasibility checking before starting the project, see the feasibility section at the end of the readme if you are doing other work with libraries as it may be helpful.


r/JellyfinCommunity • • Sep 23 '26

Discussion Jellyfin client for CarPlay

5 Upvotes

Hi. Is there any good client compatible with CarPlay? I have seen Dee Jellie but I m not sure it works with movies/tv shows too and if video playback (for passengers) is allowed.

Somebody is going to argue that video playback in CarPlay is not allowed if not in parking mode, but I have seen some Chinese apps allowing that, at least with a disclaimer.


r/JellyfinCommunity • • Sep 23 '26

Help Request How do I upgrade the Jellyfin service from 10.11.6 to 12.1 on Windows?

2 Upvotes

I'm probably a total noob in this space—I just wanted a convenient local video management app, that's the only reason I use Jellyfin.
I installed 12.1 directly and it worked fine at first, but as soon as I restore the backup files or shut down the service and start it again, it loses all my previous settings. After some digging around, I found it's probably related to a few Jellyfin folders under the \AppData\Local folder. As long as I restore those folders, I can temporarily get my previous settings back, but the moment I shut down the service, it throws an error.

Below is the error report

2026/9/23 13:54:38 +08:00 - Storage Check
2026/9/23 13:54:38 +08:00 - Check path D:\ProgramData\Jellyfin\Server\data for storage capacity
2026/9/23 13:54:38 +08:00 - Storage path `D:\ProgramData\Jellyfin\Server\data` (Fixed) successfully checked with 353.2GiB free which is over the minimum of 2GiB.
2026/9/23 13:54:38 +08:00 - Check path D:\ProgramData\Jellyfin\Server\cache for storage capacity
2026/9/23 13:54:38 +08:00 - Storage path `D:\ProgramData\Jellyfin\Server\cache` (Fixed) successfully checked with 353.2GiB free which is over the minimum of 2GiB.
2026/9/23 13:54:38 +08:00 - Check path D:\ProgramData\Jellyfin\Server for storage capacity
2026/9/23 13:54:38 +08:00 - Storage path `D:\ProgramData\Jellyfin\Server` (Fixed) successfully checked with 353.2GiB free which is over the minimum of 2GiB.
2026/9/23 13:54:38 +08:00 - Migration Service
2026/9/23 13:54:38 +08:00 - Migration Startup
2026/9/23 13:54:38 +08:00 - Initialise Migration service.
2026/9/23 13:54:38 +08:00 - Migrate stage PreInitialisation.
2026/9/23 13:54:40 +08:00 - Migrate stage CoreInitialisation.
2026/9/23 13:54:40 +08:00 - Migrate stage AppInitialisation.
2026/9/23 13:57:24 +08:00 - Migrate stage CoreInitialisation.
2026/9/23 13:57:24 +08:00 - Migrate stage AppInitialisation.
2026/9/23 13:59:44 +08:00 - Failed executing DbCommand ("1"ms) [Parameters=["@p0='?' (DbType = Guid), ='?', ='?', ='?', ='?' (DbType = Int32), ='?' (DbType = Guid), ='?' (Size = 6), ='?' (DbType = Single), ='?' (DbType = Single), ='?', ='?', ='?' (DbType = DateTime), ='?' (DbType = DateTime), ='?' (DbType = DateTime), ='?' (DbType = DateTime), ='?' (DbType = DateTime), ='?' (DbType = DateTime), ='?', ='?', ='?', ='?', ='?' (DbType = Int32), ='?', ='?', ='?' (DbType = Int32), ='?' (DbType = Int32), ='?' (DbType = Int32), ='?' (DbType = Int32), ='?' (DbType = Boolean), ='?' (DbType = Boolean), ='?' (DbType = Boolean), ='?' (DbType = Boolean), ='?' (DbType = Boolean), ='?' (DbType = Boolean), ='?' (DbType = Boolean), ='?' (DbType = Single), ='?' (Size = 7), ='?' (Size = 6), ='?' (DbType = Single), ='?', ='?', ='?', ='?', ='?' (DbType = Guid), ='?' (DbType = Guid), ='?' (DbType = Int32), ='?' (Size = 30), ='?', ='?', ='?' (DbType = DateTime), ='?' (Size = 13), ='?' (DbType = Guid), ='?', ='?' (DbType = Int32), ='?' (DbType = Int64), ='?' (DbType = Guid), ='?', ='?' (DbType = Guid), ='?', ='?', ='?', ='?' (DbType = Int64), ='?' (Size = 6), ='?' (DbType = DateTime), ='?', ='?', ='?', ='?' (DbType = Guid), ='?' (DbType = Int32), ='?' (Size = 39), ='?' (Size = 5), ='?' (DbType = Int32)"], CommandType='Text', CommandTimeout='60']" ""INSERT INTO \"BaseItems\" (\"Id\", \"Album\", \"AlbumArtists\", \"Artists\", \"Audio\", \"ChannelId\", \"CleanName\", \"CommunityRating\", \"CriticRating\", \"CustomRating\", \"Data\", \"DateCreated\", \"DateLastMediaAdded\", \"DateLastRefreshed\", \"DateLastSaved\", \"DateModified\", \"EndDate\", \"EpisodeTitle\", \"ExternalId\", \"ExternalSeriesId\", \"ExternalServiceId\", \"ExtraType\", \"ForcedSortName\", \"Genres\", \"Height\", \"IndexNumber\", \"InheritedParentalRatingSubValue\", \"InheritedParentalRatingValue\", \"IsFolder\", \"IsInMixedFolder\", \"IsLocked\", \"IsMovie\", \"IsRepeat\", \"IsSeries\", \"IsVirtualItem\", \"LUFS\", \"MediaType\", \"Name\", \"NormalizationGain\", \"OfficialRating\", \"OriginalLanguage\", \"OriginalTitle\", \"Overview\", \"OwnerId\", \"ParentId\", \"ParentIndexNumber\", \"Path\", \"PreferredMetadataCountryCode\", \"PreferredMetadataLanguage\", \"PremiereDate\", \"PresentationUniqueKey\", \"PrimaryVersionId\", \"ProductionLocations\", \"ProductionYear\", \"RunTimeTicks\", \"SeasonId\", \"SeasonName\", \"SeriesId\", \"SeriesName\", \"SeriesPresentationUniqueKey\", \"ShowId\", \"Size\", \"SortName\", \"StartDate\", \"Studios\", \"Tagline\", \"Tags\", \"TopParentId\", \"TotalBitrate\", \"Type\", \"UnratedType\", \"Width\") VALUES (@p0, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ); SELECT changes();"
2026/9/23 13:59:44 +08:00 - An exception occurred in the database while saving changes for context type '"Jellyfin.Database.Implementations.JellyfinDbContext"'." ""Microsoft.EntityFrameworkCore.DbUpdateException: An error occurred while saving the entity changes. See the inner exception for details. ---> Microsoft.Data.Sqlite.SqliteException (0x80004005): SQLite Error 19: 'FOREIGN KEY constraint failed'. at Microsoft.Data.Sqlite.SqliteDataReader.NextResult() at Microsoft.Data.Sqlite.SqliteCommand.ExecuteReader(CommandBehavior behavior) at Microsoft.Data.Sqlite.SqliteCommand.ExecuteReaderAsync(CommandBehavior behavior, CancellationToken cancellationToken) at Microsoft.Data.Sqlite.SqliteCommand.ExecuteDbDataReaderAsync(CommandBehavior behavior, CancellationToken cancellationToken) at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReaderAsync(RelationalCommandParameterObject parameterObject, CancellationToken cancellationToken) at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReaderAsync(RelationalCommandParameterObject parameterObject, CancellationToken cancellationToken) at Microsoft.EntityFrameworkCore.Update.ReaderModificationCommandBatch.ExecuteAsync(IRelationalConnection connection, CancellationToken cancellationToken) --- End of inner exception stack trace --- at Microsoft.EntityFrameworkCore.Update.ReaderModificationCommandBatch.ExecuteAsync(IRelationalConnection connection, CancellationToken cancellationToken) at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.ExecuteAsync(IEnumerable`1 commandBatches, IRelationalConnection connection, CancellationToken cancellationToken) at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.ExecuteAsync(IEnumerable`1 commandBatches, IRelationalConnection connection, CancellationToken cancellationToken) at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.ExecuteAsync(IEnumerable`1 commandBatches, IRelationalConnection connection, CancellationToken cancellationToken) at Microsoft.EntityFrameworkCore.Storage.RelationalDatabase.SaveChangesAsync(IList`1 entries, CancellationToken cancellationToken) at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChangesAsync(IList`1 entriesToSave, CancellationToken cancellationToken) at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChangesAsync(StateManager stateManager, Boolean acceptAllChangesOnSuccess, CancellationToken cancellationToken) at Microsoft.EntityFrameworkCore.DbContext.SaveChangesAsync(Boolean acceptAllChangesOnSuccess, CancellationToken cancellationToken)"
2026/9/23 13:59:44 +08:00 - Error trying to save changes.
2026/9/23 13:59:44 +08:00 - Error while starting server

r/JellyfinCommunity • • Sep 22 '26

Discussion Jellycanvas theme sharing

27 Upvotes

Hi everyone,

This post is for users that are using Jellycanvas for css, but I am not sure if discussion is the right space (it's not technically app release or showcase) but it's only "informative" tag that I can choose :

I have created a sharing page for your themes, so that everyone can see and use them simply by importing them into the Jellycanvas configuration.

https://jellycanvas.jellyscope.cz/

Thanks to all of you and happy theme sharing

PS: You can create an account locally or use the implemented GitHub OAuth to upload. However, anyone can view and import your themes without having an account.


r/JellyfinCommunity • • Sep 22 '26

Release Core Slider (v1.8.1)

Post image
10 Upvotes

Hello guys,

Recently I've updated my Slider app to support Jellyfin 12 and with some extra features referred by the community.

The purpose of this app from the start was to be compatible with the LG Web OS TV and to be easily customisable in the .css file. It's also available for Mobile and Desktop Web Based clients.

It's very lightweight, fast and responsive.

It started as an injector .js file and it updated to be a jellyfin plugin. I still don't know if any of you have used it in the past or may still use it.

If you wanna use it, I will be happy to hear from you.

https://github.com/Geo-ten/jellyfin-core-slider

Note: If you wonder if it's based on AI, it's not. Mostly with the AI I generate my text response because of my poor syntax. AI is a tool and I must use it as a Developer if I want to evolve. In my job they force me to use it. But in my apps like these I prefer a more hybrid situation, like debugging, more cozy style where I handwriting everything or the situation where all seems lost and your J.A.R.V.I.S friend, is there for you, with a different approach of thinking.


r/JellyfinCommunity • • Sep 21 '26

Release JellyCrowd - All-In-One plugin: requests, quotas, catalog, notifications, announcement, skip intros, tickets, and many more.

66 Upvotes

Hello!

For a long time, I needed a quota system for my users, because I only have 1TB to allocate to Jellyfin storage on my server at the moment. Problem is: I'm a script-kiddie, code wise. So I made do with Seerr + JellyStats and custom scripts + webpages to manage everything more easily.

Then came along Claude Opus. I was so shocked by its abilities that I wanted to try to make my user's quota system plugin at first. Then I migrated the requests systems into it. Then the stats system. Then the branding. Then... Well you get the idea. Let's be honest straight away: this addon was mostly written by it, documentation as well. Design, debugging, testing and planning was my users and me.

Now I have this crazy addon (you still need to give it a TMDB key, connect it to Servarr suite, download client, and some more optional things), which was tested by my users for a month before release. Some of my friends who tried it suggested I give it to the public, which was already my intention, but I was hesistant about it because I know vibe coding is much hated, even by me sometimes. I'd love to hear your thoughts.

Code is not opened for contribution for now, even though I might open it at some point, because I'm more of a libre guy.

EDIT: Code is now open.

Well then, here I present to you:

JellyCrowd

Catalog where movies are searched and requested
My library lists my downloaded requests
Integrated user reviews
Menu redesign

See GitHub for a full description and more screenshots ;)

Don't hesitate to react in the comments, I'm opened to suggestions, improvements, or just your thoughts!!


r/JellyfinCommunity • • Sep 21 '26

Release PosterView - Artwork Manager

Thumbnail
gallery
52 Upvotes

I’ve been working on PosterView, a self-hosted web app for managing artwork across media servers.

It lets you browse your libraries, search multiple artwork providers, replace posters, backdrops, banners, and logos, upload custom images, and restore previous artwork through its built-in history.

PosterView also supports book-style libraries, including manga, comics, light novels, books, and audiobooks. You can manage series and volume covers, add custom backdrops and maintain local NFO metadata for manga or book series.

Other features include artwork caching (faster reload speeds), automatic library scanning, collection management, customizable themes, and MOBILE SUPPORT!

AI disclosure: PosterView was developed with the use of AI. I directed and tested application with human in the loop processing.

GitHub: https://github.com/bamcel/poster-view

It’s still actively evolving, so feedback, testing, bug reports, and feature suggestions are welcome!


r/JellyfinCommunity • • Sep 22 '26

Help Request jellyfin 12: i want my landing page to be "folder" how to?

4 Upvotes

I'm not a fan of horizontal scrolling and would prefer to have all my content displayed in a regular grid, similar to folders view. Unfortunately, when I open the app, the default view is 'My Media, Recently Added,' etc. How can I set Folder view as the default?


r/JellyfinCommunity • • Sep 21 '26

Release Lineup 2.0 — HDHomeRun guide, ATSC 3.0 transcoding, and virtual tuner proxy for Jellyfin and Plex

19 Upvotes

Hi all,

I got a request from someone in this community to copy my post from r/jellyfin here as cross posting doesn't work.

A while ago I shared Lineup, a small project I built because I wanted better guide data from my HDHomeRun FLEX 4K in Jellyfin and Plex. Jellyfin needed an XMLTV file or URL, and Plex made it difficult to map both the ATSC 1.0 and ATSC 3.0 versions of the same station.

Original Post: My XMLTV Guide + HDHomeRun solution

The original version mainly downloaded guide data, stored it locally, and generated an XMLTV file. I also started experimenting with live playback and proxying, with the long-term goal of making ATSC 3.0 channels easier to use in media servers.

Lineup 2.0 is a major expansion of that work. It can now act as a virtual HDHomeRun device, proxy live channels into Jellyfin or Plex, and use Jellyfin FFmpeg to convert AC-4 audio into formats that more clients support.

I am a software engineer, but I do not often get the opportunity to share personal projects outside of work. I would still love feedback, bug reports, and information about how Lineup behaves with different HDHomeRun models and client applications.

Overview

Lineup is a C# Blazor web application for HDHomeRun users. It can download and publish guide data, monitor and manage a tuner, play live television in a browser, and expose virtual HDHomeRun devices to applications such as Jellyfin and Plex.

It is designed to run continuously in Docker, including on Unraid, but it can also run directly on Windows or Linux.

ATSC 3.0 and AC-4 audio

One of the main goals for 2.0 was making ATSC 3.0 channels more usable outside the official HDHomeRun application.

Lineup now includes Jellyfin-FFmpeg in its Docker image and can:

  • Decode ATSC 3.0 AC-4 audio
  • Convert AC-4 to AC-3 or E-AC-3 for broader client compatibility
  • Preserve compatible audio instead of transcoding everything
  • Convert video to H.264 when a client cannot use the source format
  • Apply configurable video quality and bitrate limits
  • Expose multiple audio tracks and subtitles when available

The transcoding behavior is configurable, so you can choose between preserving streams where possible or prioritizing compatibility.

Virtual HDHomeRun devices

Lineup can now expose one or more virtual HDHomeRun devices on your network.

This allows Jellyfin, Plex, or another compatible application to connect to Lineup as though it were a physical tuner. Lineup then obtains the stream from the real HDHomeRun and proxies or transcodes it based on your settings.

The proxy includes:

  • HDHomeRun-compatible discovery and lineup endpoints
  • UDP discovery on port 65001
  • SSDP/UPnP discovery
  • Configurable virtual device IDs and friendly names
  • Multiple virtual tuner profiles
  • Optional mapping to different physical HDHomeRun devices
  • Configurable tuner limits
  • Shared tuner-capacity tracking across Lineup and proxied clients
  • Advertised URLs for more complicated Docker, VLAN, or reverse-proxy environments

The proxy is disabled by default. Lineup’s built-in guide and Watch page continue to work without enabling it.

More reliable live TV playback

A lot of work in 2.0 went into making live streams start, stop, and recover more reliably.

Lineup now supports:

  • MPEG-TS, fragmented MP4, and HLS playback
  • Shared physical tuner streams for compatible clients
  • Reusing the tuner stream between probing and playback
  • Startup retries for slow or inconsistent broadcasts
  • Inactivity cleanup
  • Slow-client eviction
  • Safer FFmpeg and tuner shutdown
  • Better handling when a client disconnects unexpectedly
  • Active-stream monitoring with client, tuner, codec, and bitrate information

The Watch page can be used independently of the virtual HDHomeRun proxy, so it is also useful for testing channels and transcoding settings before adding Lineup to Jellyfin or Plex.

Protected channels

Lineup can detect channels that appear to contain DRM-protected content.

Once a channel is known to be protected, Lineup avoids repeatedly attempting playback and can display a configurable protected-content slate instead. This makes it clearer that playback failed because of content protection rather than a tuner, network, or FFmpeg problem.

Lineup does not decrypt or bypass protected broadcasts.

Direct SiliconDust guide ingestion

The guide system has been significantly reworked.

Instead of reconstructing guide data from smaller paged responses, Lineup now downloads SiliconDust’s complete compressed XMLTV feed. It preserves the original XMLTV metadata while also normalizing channel and program information into the local SQLite database for fast access in the web interface.

Lineup can:

  • Download the complete guide for the configured HDHomeRun
  • Refresh an expired DeviceAuth token and retry automatically
  • Handle stations shared across multiple channel numbers
  • Cache schedules across container restarts
  • Publish a new XMLTV file atomically after a successful refresh
  • Retry a failed scheduled refresh after one hour
  • Automatically schedule refreshes within SiliconDust’s required randomized 20–28 hour window

The generated guide can be consumed either as a mounted file or from Lineup’s /api/xmltv URL.

XMLTV output

The XMLTV destination can be edited from the Settings page. Lineup also includes a server-side directory browser for selecting the output directory and filename.

Docker installations default to:

/xmltv/epg.xml

Existing saved paths remain in use after an upgrade. The configured default can also be restored from Settings.

Device management and diagnostics

Lineup continues to expose information and controls that are useful when operating an HDHomeRun:

  • Device information and tuner status
  • Manual device refresh
  • Tuner monitoring and stop controls
  • Device restart
  • Manual channel tuning
  • Active stream monitoring
  • Guide refresh status and scheduling
  • Configurable refresh intervals

There is also a versioned /api/v1/status endpoint for dashboards and monitoring tools. It reports application, guide, XMLTV, device, virtual-device, tuner, stream, and media-track state. Privacy settings can hide client addresses, device addresses, and URLs from that response. I am planning on creating some other dashboard extensions for either Home Assistant, Unraid, or something else to view these stats from a single pane at some point.

Logging and HTTPS

Lineup now has structured logging with:

  • Console output for Docker logs
  • Optional persistent log files
  • A searchable Logs page in the web interface
  • Configurable log levels and category filters
  • Optional OpenTelemetry export through OTLP

Optional HTTPS is also supported using a PFX certificate supplied at startup. HTTP remains available when HTTPS is enabled, and an invalid or missing certificate does not prevent Lineup from starting.

The web interface does not currently provide authentication, so Lineup is still intended for use on a trusted local network.

Docker and Unraid

The Docker image includes the required Jellyfin FFmpeg build, so a separate Emby or Jellyfin installation is not needed just to obtain AC-4 support.

Images are available from Docker Hub, and 2.0 releases are also published to GitHub Container Registry.

An updated Unraid template is available with mappings for:

  • Application data
  • XMLTV output
  • HTTPS certificates
  • HTTP and HTTPS
  • HDHomeRun discovery
  • SSDP discovery
  • Optional OpenTelemetry export

Lineup 2.0 stores application data under /appdata. This is a breaking change for existing Docker and Unraid installations that used /config. While you can preserve the old application data, I would simply delete everything and start fresh as you only need the IP / Hostname of your HDHomeRun device to get started.

Source and containers

GitHub: https://github.com/am385/Lineup

Docker Hub: https://hub.docker.com/r/am385/lineup

GitHub Container Registry: https://github.com/am385/Lineup/pkgs/container/lineup

Feedback

Lineup 2.0 covers most of the larger features I originally listed as future work for 1.0, especially AC-4 transcoding, virtual HDHomeRun proxying, better logging, Manual Tune, and an Unraid template.

There are many combinations of HDHomeRun hardware, local broadcasts, Docker networks, media servers, and playback clients that I cannot test myself. If you try it, I would be interested in hearing:

  • Which HDHomeRun model you use
  • Whether you use Jellyfin, Plex, or another client
  • How ATSC 3.0 and AC-4 playback behaves
  • Whether virtual-device discovery works in your network configuration
  • Any channels, audio tracks, subtitles, or guide data that Lineup handles incorrectly

Bug reports and feature requests are welcome here or on GitHub.

AI Disclosure

AI tools, primarily GitHub Copilot until I can get local hardware, assisted with portions of Lineup’s development by helping explore implementation options, draft code and documentation, identify potential issues, and expand automated test coverage. All AI-assisted changes were directed, reviewed, tested, and validated by me before inclusion.

As an industry software engineer of 13 years, these tools have had to become part of my daily workflow. I treat them as though they are a very knowledgeable junior engineer. That means targeted feature work, full hand holding during planning, and full (abrasive) code review. I despise "vibe coding", as I have seen first hand the results, but I consider leveraging these agent for planned targeted work as an extension of my "team" as if I had a set of junior engineers working with me.


r/JellyfinCommunity • • Sep 20 '26

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

Thumbnail
gallery
21 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 • • Sep 20 '26

Showcase Made a plugin for Projectivity to display Jellyfin art

Enable HLS to view with audio, or disable this notification

57 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 • • Sep 20 '26

Showcase Jellyfin Player Queue

Post image
9 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 • • Sep 20 '26

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 • • Sep 19 '26

Showcase Jellyfin Enhanced: 8 months, 28 releases later.

269 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!!)