Skip to content
This repository has been archived by the owner on Jul 13, 2024. It is now read-only.

alyti/jellyvr

Repository files navigation

❄️🎥 jellyvr 🕶️🦀

Jellyfin proxy for VR Media Players (just HereSphere for now)

Features

  • HereSphere JSON API v1 support
  • JellyFin QuickConnect as auth
  • JellyFin playback tracking
  • Configuration through
    • Environment
      • JELLYFIN_HOST (Required) Jellyfin server host
      • JELLYFIN_REMOTE_HOST Override urls pointing to Jellyfin instance (media & images), defaults to JELLYFIN_HOST.
      • RUST_LOG Logging configuration, see tracing_subscriber::filter::EnvFilter for details.
    • YAML
    • Code (Sorry)

Usage

Install & Config

Find built container in Packages. Configure by setting JELLYFIN_HOST env and mounting /data to some persistent location. Intended usage is through either k8s deployment or docker-compose. See example helmrelease.yaml for k8s-flux based reference.

Login

In HereSphere, navigate to root page (ex. https://jellyvr.tld/), you should see a code, on another device go to your jellyfin server and in QuickConnect page enter the code from jellyvr. After a few seconds jellyvr will reload itself and show a dashboard (TODO, it's just the credentials for now), in there you can find a username and password. The username is your jellyfin username. The password is a short random one, used for logging into HereSphere, try to remember it or write it down. Now you can either click the HereSphere link on the page or navigate to it manually by just appending /heresphere to the root page from earlier (ex. https://jellyvr.tld/heresphere) You will be prompted to login, enter your new credentials now. This session should persist for however long jellyfin decides to keep it, there's no built in expiration logic.

Browsing

After login you should see your entire jellyfin library dumped in front of you. On the right side you can find tags, at the top right corner you will see a tag category selection box. For series one of the key tag categories is Series (and/or Studio which is just an alias which HereSphere has special treatment for) If you think there are tag categories missing feel free to open a PR or an Issue about it.

Limitations

HereSphere has it's own codec limitations, notably it can't play Dolby audio, if you have media with ac3, eac3 or dts codecs you will have to either transcode them yourself or find alternatives.

Development

This project uses Nix for development, direnv support is included for convenience.

  • nix develop: opens up a bash shell with useful toolset
  • nix build : builds the Rust project. Outputs the binary to ./result/bin/<name>
  • nix run: runs the Rust program.
  • nix run .#watch: launches a watch-rebuild server behind systemfd on http://0.0.0.0:3000.

Reference

  1. wiki/Flakes
  2. Jellyfin openapi docs

Releases

No releases published

Packages