Home

Awesome

JellyRoller - The CLI Jellyfin Controller Utility for Linux and Windows

JellyRoller is an open source CLI Jellyfin Controller written in Rust that works on Windows and Linux. Its primary purpose is to allow administration of a Jellyfin application from the command line.

How it works

On the first execution, JellyRoller prompts for information to authenticate as an admin user. Once this authentication has succeeded, an API key is created and stored within the JellyrRoller configuration. JellyRoller then uses the Jellyfin API to manage the server.

Any previous user auth tokens will be converted to an API key upon next execution when upgrading from JellyRoller < 0.3.

Usage Information

jellyroller 0.5.0
A CLI controller for managing Jellyfin

Usage: jellyroller.exe <COMMAND>

Commands:
  add-user                   Creates a new user
  delete-user                Deletes an existing user
  list-users                 Lists the current users with basic information
  reset-password             Resets a user's password
  server-info                Displays the server information
  list-logs                  Displays the available system logs
  show-log                   Displays the requested logfile
  reconfigure                Reconfigure the connection information
  get-devices                Show all devices
  remove-device-by-username  Removes all devices associated with the specified user
  get-scheduled-tasks        Show all scheduled tasks and their status
  execute-task-by-name       Executes a scheduled task by name
  scan-library               Start a library scan
  disable-user               Disable a user
  enable-user                Enable a user
  grant-admin                Grants the specified user admin rights
  revoke-admin               Revokes admin rights from the specified user
  restart-jellyfin           Restarts Jellyfin
  shutdown-jellyfin          Shuts down Jellyfin
  get-libraries              Gets the libraries available to the configured user
  get-plugins                Returns a list of installed plugins
  add-users                  Uses the supplied file to mass create new users
  update-users               Mass update users in the supplied file
  create-report              Creates a report of either activity or available movie items
  search-media               Executes a search of your media
  update-image-by-name       Updates image of specified file by name
  update-image-by-id         Updates image of specified file by id
  generate-report            Generate a report for an issue
  update-metadata            Updates metadata of specified id with metadata provided by specified file
  register-library           Registers a new library
  help                       Print this message or the help of the given subcommand(s)

Options:
  -h, --help     Print help
  -V, --version  Print version

Installation

Note: All installation instructions assume the end-user can handle adding the application to their user's PATH.

Building From Source

Currently built with rustc 1.83.0. If building on a Linux machine, you may need to install openssl-devel.

git clone <git location>
cd jellyroller
cargo build

Initial Configuration

When running JellyRoller for the first time, you will be prompted to configure against your Jellyfin instance. You will be prompted for various items which are described below.

PromptDescription
Please enter your Jellyfin URL:The URL to your Jellyfin instance. Depending on your setup, you may need to provide the port. Examples include http://myjellyfin.lab or http://localhost:8096.
Please enter your Jellyfin username:Username with admin rights that JellyRoller will use to execute commands.
Please enter your Jellyfin password:Password associated with the username being used.

Custom Configuration

As of 0.5.0, it is possible to keep your configuration file alongside of the JellyRoller executable. Simply save your configuration in the same directory with the name "jellyroller.config" and it will be used automatically. Keep in mind that this configurtion file will contain your API key, so secure the file as needed.

Downloading Release

See Releases for binaries. I can currently supply builds for x86_64 Windows and x86_64 Linux. Please open an issue if you would like to request an additional format.

Roadmap

Please open issues for feature requests or enhancements.