No description
Find a file
2024-10-28 04:07:11 +01:00
examples chore: Add readme and one example for now. 2024-10-27 19:49:14 +01:00
Jellyfin.Plugin.SmartPlaylist ci: add build script. 2024-10-28 01:44:23 +01:00
Test fix: always pull newest jellyfin version. 2024-10-27 20:07:25 +01:00
Tests feat: add default implementations of procedures. 2024-10-27 00:54:40 +02:00
.gitignore ci: add build script. 2024-10-28 01:44:23 +01:00
LICENSE chore: add license. 2024-10-27 19:58:32 +01:00
README.md docs: capitalize lisp in readme. 2024-10-28 02:31:20 +01:00
release.sh ci: allow output of version in release script. 2024-10-28 04:07:11 +01:00

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

Download the .dll in the releases section and place it in the plugins/jellyfin-smart-playlist/ directory (create it).