- HTML 52.9%
- C# 36.6%
- Shell 10.5%
|
|
||
|---|---|---|
| Controllers | ||
| static | ||
| Views | ||
| .gitignore | ||
| build.sh | ||
| LogoInjector.cs | ||
| LogoSwap.csproj | ||
| manifest.json | ||
| Plugin.cs | ||
| PluginConfiguration.cs | ||
| PluginServiceRegistrator.cs | ||
| README.md | ||
| RELEASE_GUIDE.md | ||
LogoSwap
Custom logo replacement plugin for Jellyfin 10.11+
![]()
Replace the default Jellyfin branding with your own logo across the entire interface—no manual file editing required.
Features
- Simple Upload Interface — Upload your logo directly from the Jellyfin dashboard
- One-Click Activation — Automatically injects CSS & JavaScript into branding settings
- Live Preview — See your current logo before applying changes
- Easy Removal — Restore default Jellyfin branding with a single click
Installation
Via Plugin Repository (Recommended)
- Open Jellyfin Dashboard → Plugins → Repositories
- Click + to add a new repository:
- Name:
LogoSwap - URL:
https://raw.githubusercontent.com/NewsGuyTor/LogoSwap/main/manifest.json
- Name:
- Go to Plugins → Catalog
- Find LogoSwap and click Install
- Restart Jellyfin
Manual Installation
- Download the latest release from Releases
- Extract
LogoSwap.dllto your Jellyfin plugins directory:- Linux:
/var/lib/jellyfin/plugins/LogoSwap/ - Windows:
C:\ProgramData\Jellyfin\Server\plugins\LogoSwap\ - Docker:
/config/plugins/LogoSwap/
- Linux:
- Restart Jellyfin
Usage
1. Upload Your Logo
Navigate to Dashboard → Plugins → LogoSwap
- Click Select Logo Image (PNG) and choose your logo file
- Click Upload Logo
Tip: For best results, use a PNG with a transparent background. Recommended dimensions: 400×100px or similar wide aspect ratio.
2. Apply to Branding
- Click Apply Custom Logo to Branding
- Hard refresh your browser (
Ctrl+Shift+R/Cmd+Shift+R)
Your custom logo will now appear across the main Jellyfin interface.
Note: The custom logo will not appear in the Dashboard admin area, as it uses a separate interface where custom branding is not applied.
3. Manage Your Logo
- Preview — View your current uploaded logo
- Delete Logo — Remove your logo and restore default branding
- Remove from Branding — Disable the logo without deleting the file
API Endpoints
| Endpoint | Method | Description |
|---|---|---|
/logoswap/upload |
POST | Upload a new logo (multipart/form-data) |
/logoswap/image |
GET | Retrieve the current logo |
/logoswap/delete |
DELETE | Delete the uploaded logo |
/logoswap/status |
GET | Check if a logo is configured |
/logoswap/script |
GET | Get the injection JavaScript |
How It Works
LogoSwap uses Jellyfin's built-in branding customization system. When you click "Apply Custom Logo to Branding", the plugin:
- Generates CSS rules that override logo background-images
- Creates JavaScript to replace logo
<img>elements - Injects both into Jellyfin's Custom CSS & Custom JS settings
This approach is non-destructive—your original Jellyfin files are never modified.
Building from Source
git clone https://github.com/NewsGuyTor/LogoSwap.git
cd LogoSwap
dotnet build
Output: bin/Debug/net9.0/LogoSwap.dll
Requirements
- Jellyfin Server 10.11.0+
- .NET 9.0 Runtime (bundled with Jellyfin 10.11)
Troubleshooting
Logo not appearing after applying?
- Hard refresh your browser (
Ctrl+Shift+R) - Clear browser cache
- Check Dashboard → General → Branding to verify injection is present
Upload fails?
- Ensure the file is PNG format
- Check Jellyfin has write permissions to its plugin config directory
- Review server logs for detailed error messages
FAQ
Why doesn't my logo appear in the Dashboard?
The Jellyfin Dashboard admin area uses a separate interface where custom branding (Custom CSS/JS) is not applied. This is a limitation of how Jellyfin handles its admin pages. Your custom logo will appear on all regular user-facing pages.
Can I replace the splash/loading screen logo?
Not yet. The splash screen that appears when Jellyfin is loading is embedded in the core application and cannot be replaced via branding customization. This may be added in a future version if there's a feasible approach.
Where is my logo stored?
Your logo is stored in the plugin's data directory within Jellyfin's configuration folder. It's served via the /logoswap/image endpoint.
Contributing
Bug reports, feature requests, and pull requests are welcome!
- Found a bug? Open an issue
- Have an idea? Start a discussion
- Want to contribute? Fork the repo and submit a PR
License
MIT License — see LICENSE for details.
Author: NewsGuyTor