IMP UPDATE — We have dropped support for the normal CSS version (for now). (It still works, but there will be no further updates till the fullscreen mode is stabilized)
The fullscreen version has a new look (in beta), and support for different screen sizes has been added. For any visual goof-ups, please open a bug report, including the device being used and whether it is encountered in portrait or landscape mode.
Thanks to the Man, the Legend BobHasNoSoul for his work on the jellyfinfeatured and SethBacon and TedHinklater for their take on the Jellyfin-Featured-Content-Bar.
Here I present my version with some code improvements, loading optimizations, and security enhancements. Works best with the Zombie theme (Shameless Plug @import url(https://cdn.jsdelivr.net/gh/MakD/zombie-release@latest/zombie_revived.css);, visit the repo for more color schemes).
Before Installing, please take a backup of your index.html file
index.html
- Navigate to your
jellyfin-webfolder and search for the file index.html. (You can use any code editor, just remember to open it with administrator privileges.) - Search for
</head> - Just before the
</head>, plug the below code
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link
rel="stylesheet"
href="https://fonts.googleapis.com/css2?family=Archivo+Narrow:ital,wght@0,400..700;1,400..700&family=IBM+Plex+Mono:wght@400;600&display=swap"
/>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/MakD/Jellyfin-Media-Bar@6/slideshowpure.css" />
<script defer src="https://cdn.jsdelivr.net/gh/MakD/Jellyfin-Media-Bar@6/slideshowpure.js"></script>Upgrading from v5
Swap your two old lines for the block above. Three things changed:
- Fonts. v6 uses Archivo Narrow and IBM Plex Mono. It still runs without the font links, it just falls back to Noto Sans and whatever your system uses for monospace, and it will not look right.
asyncbecamedefer.deferwaits for the page to finish parsing and runs scripts in order.asyncfires whenever the download happens to land, which is less predictable.@latestbecame@6.@latestfollows the newest tag, so a future v7 would land on your server without warning.@6keeps you on the 6.x line and still picks up fixes. If you want it frozen, pin an exact version like@6.1.0.
And that is it. Hard refresh your web page (CTRL+Shift+R) twice, and Profit!
No worries this got you covered.
- Create a
list.txtfile inside youravatarsfolder. - Paste the item IDs you want to be showcased, one ID per line.
- If you want to give the list a name, put a
#in front of it so the bar skips that line.
# Awesome Playlist Name
ItemID1
ItemID2
ItemID3
ItemID4
ItemID5
The next time it loads, it will display these items.
Pasting IDs works, but the list goes stale the moment you add something new to your library. If you would rather it kept itself up to date, use a filter line instead of an ID:
# Christmas
tag:Christmas
genre:Family
Whatever matches gets pulled in when the page loads, so you set it up once and leave it alone. Handy for seasonal stuff you would otherwise have to rebuild every year.
Keys you can use:
| Key | Matches on |
|---|---|
genre: |
Genre |
tag: |
Tag |
studio: |
Studio |
year: |
Release year |
person: |
Anyone in the cast or crew |
rating: |
Official rating, so PG-13, TV-MA and friends |
A few things worth knowing:
- Commas mean "or".
genre:Action, Comedygets you both. - Every line is its own filter and the results get added together. Two lines will not narrow each other down, so there is no way to ask for action films that are also from 2024.
- Feel free to mix filter lines and item IDs in the same file.
- Watch your spelling. If the bar does not recognise a line it skips it and tells you why in the browser console (F12), along with the keys it was expecting.
- If nothing at all matches, you get the usual random items rather than an empty bar.
Click the gear on the bar and pick what you want. Whatever you choose is saved in your own browser, so everyone on the server can set it up how they like without stepping on each other. Nothing to install and no files to edit.
Running the server and want to set the defaults for everybody, or stop people changing something? You can do that from index.html.
Server-wide defaults
Drop this in above the script tag you added earlier:
<script>
window.SlideshowConfig = {
libraries: ["Movies", "4K Movies"],
trailerLibraries: ["4K Movies"],
lock: ["libraries"],
};
</script>It has to sit before the <script defer ...> line. Put it after and the bar has already started by the time it runs.
librarieslimits which libraries the bar pulls from. Use the names exactly as they show up in your sidebar. Leave it out and it uses all of them.trailerLibrariesdecides which of those are allowed to autoplay a trailer. Everything else gets a still backdrop. Useful if you want trailers on films but not on the kids library.lockgreys those settings out in the gear panel so nobody can change them. Drop it if you only meant to set a starting point.
Any setting works in here, not just these three. Get a library name wrong and the console will tell you, listing the names it actually found, which is usually enough to spot the typo.
Roll Back
Restore the index.html file / remove the lines added and you are good to go!!!
This project is licensed under a DBAD license prohibiting any commercial use or redistribution.
All modifications must be contributed back to this repository.
Attribution to the original author (MakD) is required in any use or derivative work.
Please take a look at the LICENSE file for full terms.

