jellyfin-smart-playlist/README.md

2.4 KiB

Jellyfin SmartPlaylist Plugin

Smart playlists with Lisp filter engine.

How to use

After installing the plugin and restarting Jellyfin create a file in config/data/smartplaylists like this:

$ echo '{}' > config/data/smartplaylists/a.json

Afterwards run the Task (re)generate Smart Playlists, this will rename the json file and populate it with some default values. You can now adjust the file to your liking. Go here to see more examples.

Example file

{
  "Id": "a1d02dee-f1da-4472-bee3-f568c15c8360",
  "Playlists": [
    {
      "PlaylistId": "24f12e1e-3278-d6d6-0ca4-066e93296c95",
      "UserId": "6eec632a-ff0d-4d09-aad0-bf9e90b14bc6"
    }
  ],
  "Name": "a1d02dee-f1da-4472-bee3-f568c15c8360",
  "Program": "(begin (invoke item 'IsFavoriteOrLiked' (user)))",
  "Filename": "/config/data/smartplaylists/a1d02dee-f1da-4472-bee3-f568c15c8360.json",
  "Enabled": true
}

Id

Arbitrary Id assigned to this playlist, can usually be left alone. The filename is derived from this.

Playlists

A list of Playlist/User mappings. By default all users get an entry.

The ids must have the dashes in them as of now. To convert a id from without dashes to the canonical form run this command:

echo '<your id here>' | python3 -c 'import uuid; import sys; print(uuid.UUID(sys.stdin.read().strip()))'

To get your user id navigate to your user profile and copy the part after userId in the address bar.

PlaylistId

The id of the playlist that should be managed, must be owned by the corresponding user.

UserId

The user associated with this playlist.

Name

The name of the generated playlists, this is just a default value. If the user changes the name of their playlist the plugin will work as usual

Program

A lisp program to decide on a per item basis if it should be included in the playlist, return nil to not include items, return t to include them.

Filename

The path to this file.

Enabled

Enable this playlist, currently ignored.

Installation

Add the plugin repository to Jellyfin: https://gitea.redxef.at/redxef/jellyfin-smart-playlist/raw/branch/manifest/manifest.json

Go to Dashboard>Catalog>(Gear)>(Plus) and paste the provided link into the field labeled Repository URL, give the plugin a descriptive name too.