# Jellyfin SmartPlaylist Plugin Smart playlists with Lisp filter engine. ## How to use After [installing](#installation) 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](examples/index.md) to see more examples. Example file ```json { "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 '' | 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](https://jellyfin.org/docs/general/server/plugins/#catalog) 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.