Skip to content

Toastyice/DeoVRDeeplink

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DeoVR Deeplink Proxy Plugin for Jellyfin

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.

Features

  • 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.

Getting Started

Prerequisites

  • Jellyfin Media Server
  • .NET 8.0 SDK or later (for building)
  • DeoVR for testing client integration (optional)

Installation

  1. Build the plugin:

    dotnet build -c Release
  2. Copy the plugin DLL
    Place the resulting .dll (and dependencies) in your Jellyfin plugins directory (typically Jellyfin/Server/plugins).

  3. Restart Jellyfin.
    The plugin will be loaded automatically.

Configuration

  • 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).

Usage

  1. DeoVR Integration:
    Click the Open in DeoVR button

Security

  • 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.


Advanced

  • 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

Development

  • Fork and clone this repository.
  • Build with your preferred .NET IDE or dotnet CLI.
  • Contributions and PRs welcome!

Credits


Happy streaming!

About

A Jellyfin Plugin

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published