Closed ghost closed 1 year ago
Could you paste any lines from the log that refer to script injection? The trickplay files are stored in the metadata folder by default.
Could you paste any lines from the log that refer to script injection? The trickplay files are stored in the metadata folder by default.
Ah. Should've looked at it a bit closer. Found this.
[2023-03-30 03:43:53.268 +00:00] [INF] [1] Nick.Plugin.Jellyscrub.JellyscrubPlugin: Attempting to inject trickplay script code in "/usr/share/jellyfin/web/index.html"
[2023-03-30 03:43:53.273 +00:00] [ERR] [1] Nick.Plugin.Jellyscrub.JellyscrubPlugin: Encountered exception while writing to "/usr/share/jellyfin/web/index.html": "System.UnauthorizedAccessException: Access to the path '/usr/share/jellyfin/web/index.html' is denied.
So it is a permission issue. Hmm I tried removing the PUID and PGID stuff and restarting the server but that didn't work.
How are you restarting the container? Are you doing a full docker compose down
/ docker compose up -d
or simply docker compose restart
?
I believe the latter does not apply changes made in the compose file.
Yeah I'm doing a full docker compose down
/ docker compose up -d
So I tried using this image instead and I got it working. The web path is different on this one. '/jellyfin/jellyfin-web' compared to the '/usr/local/jellyfin/web' in the other image. (Have no idea if that makes any difference)
I tried using the user:
option but it gave me the same access denied error.
Once I removed the user:
option the script was injected successfully.
Interesting...
Edit: Found this issue: https://github.com/linuxserver/docker-jellyfin/issues/182
Ok so following this guide for the first image. I added a custom script:
#!/bin/bash
chmod 666 /usr/share/jellyfin/web/index.html
And this seems to fix the problem.
How it looks like on the docker compose yaml:
jellyfin:
image: lscr.io/linuxserver/jellyfin:latest
container_name: jellyfin
environment:
- PUID=1000
- PGID=1000
- TZ=Etc/UTC
volumes:
- ./config/jellyfin:/config
- ./config/jellyfin/scripts:/custom-cont-init.d:ro
- ./data/media/tv:/data/media/tv
- ./data/media/anime:/data/media/anime
- ./data/media/movies:/data/media/movies
restart: unless-stopped
network_mode: service:gluetun
So I have jellyfin running in a docker container using this image. The jellyfin section in the compose yaml file looks like this:
Here are the steps I followed:
In Jellyfin I go to Dashboard -> Plugins -> Repositories and add the Jellyscrub repository (https://raw.githubusercontent.com/nicknsy/jellyscrub/main/manifest.json)
Go to Catalog and Install Jellyscrub
Restart the docker container
Enable the 'Save trickplay files within media folders' option
Go to Dashboard -> Scheduled Tasks and Run the 'Generate BIF Files'
I waited for the BIF files to generate, checked the media folders and I can see the BIF/Trickplay files are all there, but then when I go to play a video, nothing happens.
I tried removing the PUID and PGID environment variables, restarting the server/container, deleting cache/local storage, using a private window, etc...
I haven't tried manually inserting the script tag into the index.html because I'm not really sure where this index.html file even is. "If your Jellyfin's web path is set" what does this mean? I rather it be an automatic insertion, can you or anyone possibly guide me into what I'm doing wrong? Thank you!
Edit: Just wondering too...where are the trickplay files stored when the 'Save trickplay files within media folders' option is disabled?