Trickplay functionality has been upstreamed into Jellyfin 10.9.0, and as such, Jellyscrub's trickplay functionality will not be maintained after 10.9.0 is officially released. However, Jellyscrub has been updated to version 2.0.0 which only allows for the conversion of your already generated .bif files to Jellyfin's new native format.
All that is required to convert your old .bif files is to update the plugin to the latest version through Jellyfin, restart the server, and visit the plugin configuration page in the dashboard.
Jellyscrub is a plugin that generates "trickplay" (Roku .bif) files that are then interpreted by the client and used for bufferless scrubbing image previews.
The trickplay data for a 1:30hr movie with 320x180 thumbnails only takes about 6MB of data when generating an image every 10 seconds. Takes around one - four minutes to generate depending on computer hardware.
Abilities
Limitations
Jellyfin Default [SSL, Cloudflare Proxy] (Minimum of 5m Interval):
Jellyscrub [SSL, Cloudflare Proxy] (Default 10s Interval, 320px width):
Jellyscrub on iOS [Single Screenshot, Functions Same as Above]:
NOTE: The client script will fail to inject automatically into the jellyfin-web server if there is a difference in permission between the owner of the web files (root, or www-data, etc.) and the executor of the main jellyfin-server. This often happens because...
User: 1000:1000
, GUID:
, PID:
, etc. from the jellyfin docker compose file.jellyfin
user while the web files will be owned by root
, www-data
, etc. This can likely be fixed by adding the jellyfin
(or whichever user your main jellyfin server runs as) user to the same group the jellyfin-web folders are owned by. You should only do this if they are owned by a group other than root, and will have to lookup how to manage permissions on your specific distro.NOTE: If you manually injected the script tag, you will have to manually inject it on every jellyfin-web update, as the index.html file will get overwritten. However, for normal Jellyscrub updates the script tag will not need to be changed as the plugin will return the latest script from /ClientScript
<script plugin="Jellyscrub" version="1.0.0.0" src="https://github.com/nicknsy/jellyscrub/raw/main/Trickplay/ClientScript"></script>
will have to be added at the end of the body tag manually right before </body>
. If you have a base path set, change src="https://github.com/nicknsy/jellyscrub/raw/main/Trickplay/ClientScript"
to src="https://github.com/nicknsy/jellyscrub/raw/main/YOUR_BASE_PATH/Trickplay/ClientScript"
.