Skip to content

Awlexus/grayjay-jellyfin-plugin

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

67 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Grayjay Jellyfin Plugin

Grayjay doesn't offer a way to authenticate with Jellyfin, so this server has become a necessity to achieve this.

Note: This project is in a very early state and currently not in a usable state.

Usage

In order to add a plugin for your personal server it has to be exposed to a public domain, if you want to access it externally. To add a plugin for your own server you have to start the server and access it on port 4000. There you can enter your the url to your jellyfin server. Scan the generated QR code with your Grayjay app and start watching your content.

Roadmap

  • Authorization
  • Get latest media in Home
  • Search function
    • Shows (Channel)
    • Episodes (Video)
    • Movies (Video)
    • Song artists (Channel)
    • Staff/Actors (Channel)
    • Albums (Playlist)
  • Media Playback
    • Audio playback
    • Video playback - Not quite there yet
      • Duration is not properly shown in player
    • Subttile playback
  • Creators
    • Series as Channel
    • Actors
    • Song interpreters
  • Playlists
    • Import own Playlists
    • Seasons as playlists
    • Albums as playlists

Development

Plugin code

The plugin source code lives at assets/js/client.js. It is copied/built to priv/static/js/client.js for serving. Content URLs emitted by the plugin use Jellyfin web details paths (.../web/#/details?id=<id>&type=<Type>) so Grayjay can open pages directly.

TDD workflow

Write failing tests first, implement, then rerun the relevant suite.

  • mix test.plugin.unit runs deterministic unit tests for client.js.
  • mix test.plugin.contract runs manual live contract tests against Jellyfin.

Contract tests use local JSON credentials in assets/js/JELLYFIN_TEST.json and assets/js/JELLYFIN_TEST.auth.json. Before tests run, the auth token is validated and automatically refreshed when expired.

Start the server

In order to start developing you need to start the software.

  1. Please be sure to have (Elixir)[https://elixir-lang.org/install.html] installed.
  2. Run mix setup to install and setup dependencies
  3. Start Phoenix endpoint with mix phx.server or inside IEx with iex -S mix phx.server

Now you can visit localhost:4000 from your browser.

Learn more

About

A grayjay plugin for playing media from your jellyfin media server

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors