Jellyfin Projects | Kodi Projects
Overview of all my Jellyfin Web VideoOSD projects: Jellyfin-VideoOSD-Projects-Overview
Note: This script is compatible with the Jellyfin-VideoOSD-CustomOnOff-Menu.
Credits go to HighImKevin from the Jellyfin Community, who helped me finalize this script after I was stuck on an issue for quite a while. Thanks again for the support!
Tested on Windows 11 on Chrome:
Adds a convenient Download button directly to the VideoOSD in Jellyfin Web. With one click, you can download the currently playing video as a 1:1 original file into your default download folder. No menu diving. No playback interruption. Just click and download.
- Injects a Download button into the VideoOSD interface
- Detects the currently active video
- Triggers a direct file download via Jellyfin’s API
- Automatically adapts when navigating between videos
- Does not interrupt playback
The downloaded file is identical to the source file on the server.
No transcoding. No quality loss.
The script:
- Detects the current video ID from the VideoOSD DOM
- Builds a download URL using:
ApiClient.serverAddress()ApiClient.accessToken()
- Creates a temporary hidden
<a>element - Triggers the browser’s native download mechanism
- Uses a
MutationObserverto:- Detect dynamic page changes
- Re-inject the button if necessary
- Track video changes
Because it uses Jellyfin’s native /Items/{id}/Download endpoint, the file you receive is the exact original media file stored on the server.
Normally, downloading a video in Jellyfin requires opening the item menu and selecting Download.
This script:
- Saves clicks
- Makes downloading faster and more accessible
- Keeps the download action directly inside the player UI
- Avoids interrupting playback
It’s especially useful if you frequently download media for offline use.
- Install the JavaScript Injector plugin in Jellyfin (if not already installed).
- Open Jellyfin Admin Dashboard.
- Go to: Dashboard → Plugins → JavaScript Injector
- Paste the entire script content into the injector.
- Save.
- Refresh the Jellyfin web interface.
The Download button will now appear in the VideoOSD.
- Designed for Jellyfin Web (Windows 11, Chrome)
- Only tested on 10.10.7 Web version (Icon injection may vary)
- Works with dynamic page navigation
- Requires a logged-in session (uses your API access token)
MIT License
