examples | ||
Jellyfin.Plugin.SmartPlaylist | ||
Test | ||
Tests | ||
.gitignore | ||
README.md |
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 your plugin
directory.