Caution
Early development Use at your own risk!
All movies are exposed UNAUTHENTICATED from DeoVRDeeplink/json/videoID/response.json
A plugin for Jellyfin that enables secure, expiring, signed video stream URLs for use with DeoVR and other clients needing quick access to individual media files without exposing your Jellyfin credentials.
- UI Changes: adds a Play in DeoVR button
- Secure signed links: Temporary, HMAC-signed links for proxying video streams.
- Expiry enforcement: Links are only valid for a short time window.
- Chunked proxy streaming: Efficient forwarding without direct Jellyfin API exposure.
- DeoVR-compatible JSON responses: Works seamlessly with DeoVR.
- Embedded client JS and icon resources.
- Jellyfin Media Server
- .NET 8.0 SDK or later (for building)
- DeoVR for testing client integration (optional)
-
Build the plugin:
dotnet build -c Release
-
Copy the plugin DLL
Place the resulting.dll
(and dependencies) in your Jellyfin plugins directory (typicallyJellyfin/Server/plugins
). -
Restart Jellyfin.
The plugin will be loaded automatically.
- In the Jellyfin dashboard, configure:
- Proxy Secret: (A strong random string used for signing proxy URLs).
- Jellyfin API Key: (A user with sufficient privileges to stream media from the server).
- DeoVR Integration:
Click the Open in DeoVR button
- Streams are protected with expiring, HMAC-signed tokens.
- Links cannot be forged or reused after expiry.
- Secret is never sent to the client.
- Change expiry time in
BuildVideoResponse()
(AddMinutes(5)
). - RECOMMENDED: Always use HTTPS to avoid leaking signed URLs.
See plugin source comments and security notes.
- Jellyfin port detection:
The plugin automatically detects Jellyfin’s HTTP/HTTPS port from the server configuration—no need to hardcode. - ClientScript & Icon endpoints:
/DeoVRDeeplink/ClientScript
/DeoVRDeeplink/Icon
- Fork and clone this repository.
- Build with your preferred .NET IDE or
dotnet
CLI. - Contributions and PRs welcome!
- This plugin was inspired by a lack of a proper VR player that supports Jellyfin
- Jellyfin Media Server
- DeoVR
- InPlayerEpisodePreview (Heavily inspired the way the UI is edited)
Happy streaming!