Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

unable to display the button #10

Closed
MaitrePacha opened this issue Mar 6, 2024 · 49 comments
Closed

unable to display the button #10

MaitrePacha opened this issue Mar 6, 2024 · 49 comments
Labels
bug Something isn't working

Comments

@MaitrePacha
Copy link

Hello, great new idea to navigate faster on jellyfin. At the moment I can't get the button to appear, any ideas? Thanks

@nechodom
Copy link

Same problem... +1

@franciscomfcmaia
Copy link

Same problem! +1

@Namo2
Copy link
Owner

Namo2 commented Mar 15, 2024

Hey guys, I am sorry that you have an issue with the program.
Currently i don't really have the capacity to work at the project right now.
I will try to get some stuff done next week.

It would be nice if you guys could share a little bit more information to track down the problem.
For example, which client are you using, JMP Client or Web version?
If you are using the Web version, could you open up the Browser Console and check if there are any lines that start with [InPlayerEpisodePreview], or any errors (marked red).
In which version of the program did the error occur (V1.0.0.0 or V1.0.1.0).
Does the bug also happen on the previews version?
Are you using the Intro Skipper plugin by any chance?

@Namo2 Namo2 added the bug Something isn't working label Mar 15, 2024
@MaitrePacha
Copy link
Author

MaitrePacha commented Mar 18, 2024 via email

@MakD
Copy link

MakD commented Apr 16, 2024

Same here. No button on the web player

@Gauvino
Copy link

Gauvino commented Apr 27, 2024

Hey, thanks for the reply. I'm using the web interface but I'm currently not home for another week, I'll send you the logs then. I'm using the latest version of IPEP, 1.0.1.0, and yes, I'm using the Intro Skipper plugin.

Same as him and also I'm seeing that the plugin is still stuck on version 1.0.0.0 in extensions tabs but won't download the 1.0.1.0 and also by forcing it and doing it manually it's still marked as 1.0.0.0

@Namo2
Copy link
Owner

Namo2 commented May 12, 2024

Hey guys,

I made some changes for the new Jellyfin version.
Would be nice if you guys could give me an update on the appearnce of the button for the new version.

If you are still unable to see the button please check inside the browser console if you can see some messages with the prefix [InPlayerEpisodePreview]

@Gauvino
Copy link

Gauvino commented May 12, 2024

after testing the new update on 10.9 on docker, i finally see the the boutton and the console logs of docker show me this

chrome_jy859TINZm
chrome_PWk0Hn55rf

but nothing in the chrome 124 console logs

@Namo2
Copy link
Owner

Namo2 commented May 12, 2024

Ha that is weird that you don't have anything in the chrome logs.
Well glad it works for you now 👍

@MakD
Copy link

MakD commented May 12, 2024

No luck for me. Chrome still doesn't show logs or button on the latest 10.9

@Namo2
Copy link
Owner

Namo2 commented May 12, 2024

Does it show anything for you in the jellyfin/docker logs?

@MakD
Copy link

MakD commented May 12, 2024

I am not on docker. It's windows installation

@Namo2
Copy link
Owner

Namo2 commented May 12, 2024

You can check your log files in jellyfin under Home -> Dashboard -> Logs
Have a look if anything comes up if you search for Loaded assembly "Namo.Plugin.InPlayerEpisodePreview, Version=1.1.0.0

@MakD
Copy link

MakD commented May 12, 2024

Damn here I see the issue

Namo.Plugin.InPlayerEpisodePreview.InPlayerEpisodePreviewPlugin: Attempting to inject preview script code in "C:\Program Files\Jellyfin\Server\jellyfin-web\index.html"
[2024-05-13 00:19:08.336 +05:30] [ERR] [104] Namo.Plugin.InPlayerEpisodePreview.InPlayerEpisodePreviewPlugin: Encountered exception while writing to "C:\Program Files\Jellyfin\Server\jellyfin-web\index.html": "System.UnauthorizedAccessException: Access to the path 'C:\Program Files\Jellyfin\Server\jellyfin-web\index.html' is denied.

@MakD
Copy link

MakD commented May 12, 2024

Here as well

2024-05-13 00:42:49.440 +05:30] [INF] [1] Emby.Server.Implementations.Plugins.PluginManager: Loaded assembly "Namo.Plugin.InPlayerEpisodePreview, Version=1.1.0.0, Culture=neutral, PublicKeyToken=null" from "C:\ProgramData\Jellyfin\Server\plugins\InPlayerEpisodePreview_1.1.0.0\Namo.Plugin.InPlayerEpisodePreview.dll

@Namo2
Copy link
Owner

Namo2 commented May 12, 2024

Okay yeah seems like the script doesn't have the right permissions.
What you could try to do is editing the index.html yourself.

Check your jellyfin installation for the file.
Inside the file look for a section where <script tags are (near the bottom of the file) and add the following line:
<script plugin="InPlayerEpisodePreview" version="1.1.0.0" src="/InPlayerPreview/ClientScript"></script>

If that doesn't work you may have to find a solution for the write permissions to the file on your system.
I don't think i can change anything about that on the plugin side

@MakD
Copy link

MakD commented May 14, 2024

[2024-05-14 22:45:48.931 +05:30] [INF] [24] Emby.Server.Implementations.Plugins.PluginManager: Loaded assembly "Namo.Plugin.InPlayerEpisodePreview, Version=1.1.0.0, Culture=neutral, PublicKeyToken=null" from "C:\ProgramData\Jellyfin\Server\plugins\InPlayerEpisodePreview_1.1.0.0\Namo.Plugin.InPlayerEpisodePreview.dll"

Did as suggested. Even disabled the custom css, thinking it might be creating issues. No help

@Namo2
Copy link
Owner

Namo2 commented May 15, 2024

Have you checked again if you see anything in the chrome logs (Press F12 -> Go to console, and then start an episode)

If you are using the Web version, could you open up the Browser Console and check if there are any lines that start with [InPlayerEpisodePreview], or any errors (marked red).

@MakD
Copy link

MakD commented May 15, 2024

Have you checked again if you see anything in the chrome logs (Press F12 -> Go to console, and then start an episode)

If you are using the Web version, could you open up the Browser Console and check if there are any lines that start with [InPlayerEpisodePreview], or any errors (marked red).

Requesting http://192.168.0.159:8096/Shows/e38c4dc4516450468b384699526531f2/Episodes?IsVirtualUnaired=false&IsMissing=false&UserId=f872ba95204d43319dc9981c6760e436&Fields=Chapters%2CTrickplay
node_modules.jellyfin-apiclient.bundle.js?a32cc7cf54b43478bbe4:2 Requesting http://192.168.0.159:8096/Users/f872ba95204d43319dc9981c6760e436/Items/e212a381f20e0ff4cfee6c61d7f27c39/Intros
node_modules.jellyfin-apiclient.bundle.js?a32cc7cf54b43478bbe4:2 Requesting url without automatic networking: http://192.168.0.159:8096/Items/e212a381f20e0ff4cfee6c61d7f27c39/PlaybackInfo?UserId=f872ba95204d43319dc9981c6760e436&StartTimeTicks=0&IsPlayback=true&AutoOpenLiveStream=true&AudioStreamIndex=1&SubtitleStreamIndex=15&MediaSourceId=e212a381f20e0ff4cfee6c61d7f27c39&MaxStreamingBitrate=1414945928
main.jellyfin.bundle.js?a32cc7cf54b43478bbe4:2 HLS Error: Type: otherError Details: internalException Fatal: false
(anonymous) @ main.jellyfin.bundle.js?a32cc7cf54b43478bbe4:2
o.emit @ node_modules.hls.js.970a5cb5618e7282c138.chunk.js:1
e.emit @ node_modules.hls.js.970a5cb5618e7282c138.chunk.js:1
e.trigger @ node_modules.hls.js.970a5cb5618e7282c138.chunk.js:1
v.onerror @ node_modules.hls.js.970a5cb5618e7282c138.chunk.js:1
error (async)
t @ node_modules.hls.js.970a5cb5618e7282c138.chunk.js:1
r._handleFragmentLoadProgress @ node_modules.hls.js.970a5cb5618e7282c138.chunk.js:1
(anonymous) @ node_modules.hls.js.970a5cb5618e7282c138.chunk.js:1
(anonymous) @ node_modules.hls.js.970a5cb5618e7282c138.chunk.js:1
Promise.then (async)
r._doFragLoad @ node_modules.hls.js.970a5cb5618e7282c138.chunk.js:1
r._loadFragForPlayback @ node_modules.hls.js.970a5cb5618e7282c138.chunk.js:1
r.loadFragment @ node_modules.hls.js.970a5cb5618e7282c138.chunk.js:1
r.loadFragment @ node_modules.hls.js.970a5cb5618e7282c138.chunk.js:1
r.doTickIdle @ node_modules.hls.js.970a5cb5618e7282c138.chunk.js:1
r.doTick @ node_modules.hls.js.970a5cb5618e7282c138.chunk.js:1
e.tick @ node_modules.hls.js.970a5cb5618e7282c138.chunk.js:1
r.completeInitSegmentLoad @ node_modules.hls.js.970a5cb5618e7282c138.chunk.js:1
(anonymous) @ node_modules.hls.js.970a5cb5618e7282c138.chunk.js:1
Promise.then (async)
r._loadInitSegment @ node_modules.hls.js.970a5cb5618e7282c138.chunk.js:1
r.loadFragment @ node_modules.hls.js.970a5cb5618e7282c138.chunk.js:1
r.doTickIdle @ node_modules.hls.js.970a5cb5618e7282c138.chunk.js:1
r.doTick @ node_modules.hls.js.970a5cb5618e7282c138.chunk.js:1
e.tick @ node_modules.hls.js.970a5cb5618e7282c138.chunk.js:1
r.onLevelLoaded @ node_modules.hls.js.970a5cb5618e7282c138.chunk.js:1
o.emit @ node_modules.hls.js.970a5cb5618e7282c138.chunk.js:1
e.emit @ node_modules.hls.js.970a5cb5618e7282c138.chunk.js:1
e.trigger @ node_modules.hls.js.970a5cb5618e7282c138.chunk.js:1
e.handlePlaylistLoaded @ node_modules.hls.js.970a5cb5618e7282c138.chunk.js:1
e.handleTrackOrLevelPlaylist @ node_modules.hls.js.970a5cb5618e7282c138.chunk.js:1
onSuccess @ node_modules.hls.js.970a5cb5618e7282c138.chunk.js:1
e.readystatechange @ node_modules.hls.js.970a5cb5618e7282c138.chunk.js:1
XMLHttpRequest.send (async)
e.openAndSendXhr @ node_modules.hls.js.970a5cb5618e7282c138.chunk.js:1
(anonymous) @ node_modules.hls.js.970a5cb5618e7282c138.chunk.js:1
Promise.then (async)
e.loadInternal @ node_modules.hls.js.970a5cb5618e7282c138.chunk.js:1
e.load @ node_modules.hls.js.970a5cb5618e7282c138.chunk.js:1
e.load @ node_modules.hls.js.970a5cb5618e7282c138.chunk.js:1
e.onLevelLoading @ node_modules.hls.js.970a5cb5618e7282c138.chunk.js:1
o.emit @ node_modules.hls.js.970a5cb5618e7282c138.chunk.js:1
e.emit @ node_modules.hls.js.970a5cb5618e7282c138.chunk.js:1
e.trigger @ node_modules.hls.js.970a5cb5618e7282c138.chunk.js:1
r.loadPlaylist @ node_modules.hls.js.970a5cb5618e7282c138.chunk.js:1
set @ node_modules.hls.js.970a5cb5618e7282c138.chunk.js:1
set @ node_modules.hls.js.970a5cb5618e7282c138.chunk.js:1
set @ node_modules.hls.js.970a5cb5618e7282c138.chunk.js:1
r.startLoad @ node_modules.hls.js.970a5cb5618e7282c138.chunk.js:1
(anonymous) @ node_modules.hls.js.970a5cb5618e7282c138.chunk.js:1
e.startLoad @ node_modules.hls.js.970a5cb5618e7282c138.chunk.js:1
r.filterAndSortMediaOptions @ node_modules.hls.js.970a5cb5618e7282c138.chunk.js:1
r.onManifestLoaded @ node_modules.hls.js.970a5cb5618e7282c138.chunk.js:1
o.emit @ node_modules.hls.js.970a5cb5618e7282c138.chunk.js:1
e.emit @ node_modules.hls.js.970a5cb5618e7282c138.chunk.js:1
e.trigger @ node_modules.hls.js.970a5cb5618e7282c138.chunk.js:1
e.handleMasterPlaylist @ node_modules.hls.js.970a5cb5618e7282c138.chunk.js:1
onSuccess @ node_modules.hls.js.970a5cb5618e7282c138.chunk.js:1
e.readystatechange @ node_modules.hls.js.970a5cb5618e7282c138.chunk.js:1
XMLHttpRequest.send (async)
e.openAndSendXhr @ node_modules.hls.js.970a5cb5618e7282c138.chunk.js:1
(anonymous) @ node_modules.hls.js.970a5cb5618e7282c138.chunk.js:1
Promise.then (async)
e.loadInternal @ node_modules.hls.js.970a5cb5618e7282c138.chunk.js:1
e.load @ node_modules.hls.js.970a5cb5618e7282c138.chunk.js:1
e.load @ node_modules.hls.js.970a5cb5618e7282c138.chunk.js:1
e.onManifestLoading @ node_modules.hls.js.970a5cb5618e7282c138.chunk.js:1
o.emit @ node_modules.hls.js.970a5cb5618e7282c138.chunk.js:1
e.emit @ node_modules.hls.js.970a5cb5618e7282c138.chunk.js:1
e.trigger @ node_modules.hls.js.970a5cb5618e7282c138.chunk.js:1
e.loadSource @ node_modules.hls.js.970a5cb5618e7282c138.chunk.js:1
(anonymous) @ htmlVideoPlayer-plugin.f87c183ee5ae587347d1.chunk.js:2
d @ htmlVideoPlayer-plugin.f87c183ee5ae587347d1.chunk.js:2
(anonymous) @ htmlVideoPlayer-plugin.f87c183ee5ae587347d1.chunk.js:2
(anonymous) @ htmlVideoPlayer-plugin.f87c183ee5ae587347d1.chunk.js:2
M @ htmlVideoPlayer-plugin.f87c183ee5ae587347d1.chunk.js:2
o @ htmlVideoPlayer-plugin.f87c183ee5ae587347d1.chunk.js:2
Promise.then (async)
M @ htmlVideoPlayer-plugin.f87c183ee5ae587347d1.chunk.js:2
o @ htmlVideoPlayer-plugin.f87c183ee5ae587347d1.chunk.js:2
(anonymous) @ htmlVideoPlayer-plugin.f87c183ee5ae587347d1.chunk.js:2
(anonymous) @ htmlVideoPlayer-plugin.f87c183ee5ae587347d1.chunk.js:2
(anonymous) @ htmlVideoPlayer-plugin.f87c183ee5ae587347d1.chunk.js:2
Promise.then (async)
(anonymous) @ htmlVideoPlayer-plugin.f87c183ee5ae587347d1.chunk.js:2
value @ htmlVideoPlayer-plugin.f87c183ee5ae587347d1.chunk.js:2
(anonymous) @ htmlVideoPlayer-plugin.f87c183ee5ae587347d1.chunk.js:2
d @ htmlVideoPlayer-plugin.f87c183ee5ae587347d1.chunk.js:2
(anonymous) @ htmlVideoPlayer-plugin.f87c183ee5ae587347d1.chunk.js:2
(anonymous) @ htmlVideoPlayer-plugin.f87c183ee5ae587347d1.chunk.js:2
M @ htmlVideoPlayer-plugin.f87c183ee5ae587347d1.chunk.js:2
o @ htmlVideoPlayer-plugin.f87c183ee5ae587347d1.chunk.js:2
(anonymous) @ htmlVideoPlayer-plugin.f87c183ee5ae587347d1.chunk.js:2
(anonymous) @ htmlVideoPlayer-plugin.f87c183ee5ae587347d1.chunk.js:2
(anonymous) @ htmlVideoPlayer-plugin.f87c183ee5ae587347d1.chunk.js:2
(anonymous) @ htmlVideoPlayer-plugin.f87c183ee5ae587347d1.chunk.js:2
Promise.then (async)
(anonymous) @ htmlVideoPlayer-plugin.f87c183ee5ae587347d1.chunk.js:2
Promise.then (async)
value @ htmlVideoPlayer-plugin.f87c183ee5ae587347d1.chunk.js:2
(anonymous) @ main.jellyfin.bundle.js?a32cc7cf54b43478bbe4:2
d @ main.jellyfin.bundle.js?a32cc7cf54b43478bbe4:2
(anonymous) @ main.jellyfin.bundle.js?a32cc7cf54b43478bbe4:2
(anonymous) @ main.jellyfin.bundle.js?a32cc7cf54b43478bbe4:2
F @ main.jellyfin.bundle.js?a32cc7cf54b43478bbe4:2
a @ main.jellyfin.bundle.js?a32cc7cf54b43478bbe4:2
Promise.then (async)
F @ main.jellyfin.bundle.js?a32cc7cf54b43478bbe4:2
a @ main.jellyfin.bundle.js?a32cc7cf54b43478bbe4:2
(anonymous) @ main.jellyfin.bundle.js?a32cc7cf54b43478bbe4:2
(anonymous) @ main.jellyfin.bundle.js?a32cc7cf54b43478bbe4:2
(anonymous) @ main.jellyfin.bundle.js?a32cc7cf54b43478bbe4:2
Promise.then (async)
(anonymous) @ main.jellyfin.bundle.js?a32cc7cf54b43478bbe4:2
Promise.then (async)
(anonymous) @ main.jellyfin.bundle.js?a32cc7cf54b43478bbe4:2
(anonymous) @ main.jellyfin.bundle.js?a32cc7cf54b43478bbe4:2
Promise.then (async)
oe @ main.jellyfin.bundle.js?a32cc7cf54b43478bbe4:2
(anonymous) @ main.jellyfin.bundle.js?a32cc7cf54b43478bbe4:2
Promise.then (async)
re @ main.jellyfin.bundle.js?a32cc7cf54b43478bbe4:2
(anonymous) @ main.jellyfin.bundle.js?a32cc7cf54b43478bbe4:2
Promise.then (async)
r.play @ main.jellyfin.bundle.js?a32cc7cf54b43478bbe4:2
(anonymous) @ itemDetails.0a2a7534c917d71cf406.chunk.js:2
(anonymous) @ itemDetails.0a2a7534c917d71cf406.chunk.js:2
a @ itemDetails.0a2a7534c917d71cf406.chunk.js:2Understand this error
node_modules.jellyfin-apiclient.bundle.js?a32cc7cf54b43478bbe4:2 Requesting url without automatic networking: http://192.168.0.159:8096/Sessions/Playing
node_modules.jellyfin-apiclient.bundle.js?a32cc7cf54b43478bbe4:2 Requesting url without automatic networking: http://192.168.0.159:8096/Sessions/Playing/Progress
node_modules.jellyfin-apiclient.bundle.js?a32cc7cf54b43478bbe4:2 Sending web socket message: KeepAlive
3node_modules.jellyfin-apiclient.bundle.js?a32cc7cf54b43478bbe4:2 Requesting url without automatic networking: http://192.168.0.159:8096/Sessions/Playing/Progress
node_modules.jellyfin-apiclient.bundle.js?a32cc7cf54b43478bbe4:2 Sending web socket message: KeepAlive
node_modules.jellyfin-apiclient.bundle.js?a32cc7cf54b43478bbe4:2 Requesting url without automatic networking: http://192.168.0.159:8096/Sessions/Playing/Progress

Dont see anything with the lines

@Namo2
Copy link
Owner

Namo2 commented May 15, 2024

Okay, when you are watching a video, could you right click and select "View Page Source".
Then search with Ctrl+F for /InPlayerPreview/ClientScript.

In theory you should finde the line you added to your index.html

@Namo2
Copy link
Owner

Namo2 commented May 15, 2024

So normally that line should download the scriptfile from the plugin.
Next thing you could try would be:

  • uninstall the plugin (just to be sure)
  • download the web-client-script
  • copy the js file inside into the folder where your index.html is
  • replace the old script line from the plugin with this one:
<script plugin="InPlayerEpisodePreview" version="1.1.0.0" src="web-client-script.js"></script>

If that isn't working try this line:

<script src="web-client-script.js"></script>

Remember to restart your jellyfin server in between

@MakD
Copy link

MakD commented May 15, 2024

image
my page source. Trying the second step

@MakD
Copy link

MakD commented May 15, 2024

I guess mine is an isolated issue. Tried both lines, after uninstalling and multiple restarts. Could'nt get it to show up.

image
image

@Namo2
Copy link
Owner

Namo2 commented May 15, 2024

Oh man i am out of ideas right now, i am sorry.
If something comes to my mind i will hit you up.

Is there a reason why you are using the webclient?
Maybe you could switch to the desktop client. At least for me it works way better and also supports directplay for H265.
You could try it out, check if the plugin works there (you have to install it seperatly, check the Readme section for JMP)
Here is the link to the latest release, if you wanna try it out
https://github.com/jellyfin/jellyfin-media-player/releases

Also the desktop client has the extra feature for starting episodes directly from the list

@MakD
Copy link

MakD commented May 19, 2024

@Namo2 finally got an error log in the console, hoping this can be a help. BTW the plugin works awesome in the JMP

image

@Namo2
Copy link
Owner

Namo2 commented May 19, 2024

Quickly patched this up.

The dll is the complete plugin. You would need to go in your jellyfin folder then to plugins and open "InPlayerEpisodePreview_1.1.0.0". Just replace the dll inside there with the one from the zip.

If that works hit me up. I would make the changes public then

inPlayerEpisodePreview-1.1.1.0-beta-server.zip

@MakD
Copy link

MakD commented May 19, 2024

Works as intended now 🔥

@MakD
Copy link

MakD commented May 19, 2024

Just a query. Even though on your suggestion, I am using JMP, but some of my users use phone to watch my library. Is changing episode from the prompt on web (since the Android app is a web wrapper) totally not possible and is a code limitation, out just currently not implemented?

@Namo2
Copy link
Owner

Namo2 commented May 19, 2024

I will check how hard it would be to implement but my main focus for the future will be to get this feature/plugin into the official jellyfin version

@Gauvino
Copy link

Gauvino commented May 24, 2024

I will check how hard it would be to implement but my main focus for the future will be to get this feature/plugin into the official jellyfin version

Does something to combine this PR and your plugin would be possibly cause to button for something similar would really make the UI messy and too much I think.

jellyfin/jellyfin-web#5011

@Namo2
Copy link
Owner

Namo2 commented May 24, 2024

I will check how hard it would be to implement but my main focus for the future will be to get this feature/plugin into the official jellyfin version

Does something to combine this PR and your plugin would be possibly cause to button for something similar would really make the UI messy and too much I think.

jellyfin/jellyfin-web#5011

Thanks for mentioning it.
The plan is to open a discussion for this feature anyway but before i want to rewrite the core of it, so it would be ready for merging. Changes for the UI etc can be discussed then

@inzsome
Copy link

inzsome commented May 28, 2024

Okay yeah seems like the script doesn't have the right permissions. What you could try to do is editing the index.html yourself.

Check your jellyfin installation for the file. Inside the file look for a section where <script tags are (near the bottom of the file) and add the following line: <script plugin="InPlayerEpisodePreview" version="1.1.0.0" src="/InPlayerPreview/ClientScript"></script>

If that doesn't work you may have to find a solution for the write permissions to the file on your system. I don't think i can change anything about that on the plugin side

Changing the write permisions of Jellyfin\Server\jellyfin-web worked for me. I granted read and write access to the group Users (<DOMAIN>\Users) and restarted the server. After that, I could see the button.

@Namo2 Namo2 closed this as completed Jun 14, 2024
@Namo2
Copy link
Owner

Namo2 commented Jul 3, 2024

Just a query. Even though on your suggestion, I am using JMP, but some of my users use phone to watch my library. Is changing episode from the prompt on web (since the Android app is a web wrapper) totally not possible and is a code limitation, out just currently not implemented?

Just checked something on android and i saw that the plugin also works there for me (even the episode switching)

@FaNt4zMa
Copy link

Followed this ticket and now it works in Browser but not in JMP... Weird, maybe it just needs time to update?

@Namo2
Copy link
Owner

Namo2 commented Jul 15, 2024

You need to restart JMP for it to take effect

@sebschlicht
Copy link

sebschlicht commented Aug 24, 2024

Hey ye,

do I understand this correctly, the only way to get this plugin working is to manipulate the index.html of Jellyfin?

I'm hosting Jellyfin via Docker in the most common setup, i.e. with individual UID/GID.
In this setup, manipulating the file won't be allowed for the user running Jellyfin with the container's default file permissions.
I think this a reasonable security feature and I'd rather not change the permissions of files inside a readily provided container.

There is no configurable list of scripts that the Jellyfin frontend loads etc. or other means to inject this button?

@nado
Copy link

nado commented Aug 28, 2024

Same here, Jellyfin-web is installed from Gentoo ebuild (package) and I don’t wish to have to remember to modify the file for each update.

Edit: 5 weeks later
I played a bit with it, the index.html is owned by root on my system, I chown’d to jellyfin for the service restart and set it back to root ownership after the plugins update, the injections seemed to work from the logs, but I had the following runtime error and no button showed

[ERR] [33] Namo.Plugin.InPlayerEpisodePreview.Api.InPlayerPreviewController: InPlayerEpisodePreviewPlugin: "Namo.Plugin.InPlayerEpisodePreview.Web.InPlayerPreview.js"

I managed to make the SkipIntro plugin work with the same update flow so I may take some time to script a procedure update integrated with my service restart if I can get some form of audit regarding the sources of file updates in jellyfin.

Edit2: it works in browser now, but not in app, probably cache related or something.

@EsmailELBoBDev2
Copy link

EsmailELBoBDev2 commented Oct 11, 2024

so I have same issue I use latest version of jellyfin and I cant see that preview button in player (web)/desktop
I tried the web client script one and I get

InPlayerPreview.ts:48 Uncaught TypeError: Cannot read properties of undefined (reading 'route')
    at HTMLDocument.viewShowEventHandler (InPlayerPreview.ts:48:55)
    at d (main.jellyfin.bundle…2574bf99cf:2:209554)
    at main.jellyfin.bundle…2574bf99cf:2:211028

@Namo2
Copy link
Owner

Namo2 commented Oct 11, 2024

so I have same issue I use latest version of jellyfin and I cant see that preview button in player (web)/desktop I tried the web client script one and I get

InPlayerPreview.ts:48 Uncaught TypeError: Cannot read properties of undefined (reading 'route')
    at HTMLDocument.viewShowEventHandler (InPlayerPreview.ts:48:55)
    at d (main.jellyfin.bundle…2574bf99cf:2:209554)
    at main.jellyfin.bundle…2574bf99cf:2:211028

Hey, the error message looks like you would use Jellyfin 10.10.0 (from the unstable) release.
If so, you need to wait for the official 10.10.0 release which is tomorrow as far as i know

@EsmailELBoBDev2
Copy link

so I have same issue I use latest version of jellyfin and I cant see that preview button in player (web)/desktop I tried the web client script one and I get

InPlayerPreview.ts:48 Uncaught TypeError: Cannot read properties of undefined (reading 'route')
    at HTMLDocument.viewShowEventHandler (InPlayerPreview.ts:48:55)
    at d (main.jellyfin.bundle…2574bf99cf:2:209554)
    at main.jellyfin.bundle…2574bf99cf:2:211028

Hey, the error message looks like you would use Jellyfin 10.10.0 (from the unstable) release. If so, you need to wait for the official 10.10.0 release which is tomorrow as far as i know

I do! and alright thank you for the reply

@Namo2
Copy link
Owner

Namo2 commented Oct 12, 2024

I do! and alright thank you for the reply

Just heard that the official 10.10 release is delayed by ~2 weeks.
I will add a pre-release sometime this day, which could be manually installed

@EsmailELBoBDev2
Copy link

I do! and alright thank you for the reply

Just heard that the official 10.10 release is delayed by ~2 weeks. I will add a pre-release sometime this day, which could be manually installed

oh! thank you for the tip and yes it would be good. so it works on day one when it get released

@Namo2
Copy link
Owner

Namo2 commented Oct 12, 2024

I do! and alright thank you for the reply

Just heard that the official 10.10 release is delayed by ~2 weeks. I will add a pre-release sometime this day, which could be manually installed

oh! thank you for the tip and yes it would be good. so it works on day one when it get released

I don't think I can get it to work directly on release.
I need to add my github release to the manifest.json you guys are using
and if I do that beforehand, it will automatically update for everyone, even if they're still on 10.9.
So I guess I'll have to do it manually first, but it's usually done the same day.

@EsmailELBoBDev2
Copy link

EsmailELBoBDev2 commented Oct 12, 2024

I do! and alright thank you for the reply

Just heard that the official 10.10 release is delayed by ~2 weeks. I will add a pre-release sometime this day, which could be manually installed

oh! thank you for the tip and yes it would be good. so it works on day one when it get released

I don't think I can get it to work directly on release. I need to add my github release to the manifest.json you guys are using and if I do that beforehand, it will automatically update for everyone, even if they're still on 10.9. So I guess I'll have to do it manually first, but it's usually done the same day.

I think you can set* specific version for each one if I'm not mistake but yeah i can do the manual way no issue

@Namo2
Copy link
Owner

Namo2 commented Oct 12, 2024

I think you can set* specific version for each one if I'm not mistake but yeah i can do the manual way no issue

Oh yeah i think you are right. I never worked with these but maybe i will try it out

@EsmailELBoBDev2
Copy link

I think you can set* specific version for each one if I'm not mistake but yeah i can do the manual way no issue

Oh yeah i think you are right. I never worked with these but maybe i will try it out

here are other manifests i saw, https://raw.githubusercontent.com/ThePornDatabase/Jellyfin.Plugin.ThePornDB/main/manifest.json and https://raw.githubusercontent.com/Felitendo/jellyfin-lyrics-plugin/master/manifest.json and https://raw.githubusercontent.com/intro-skipper/intro-skipper/master/manifest.json so with help of chatgpt and me being patient zero im sure you can manage it so gl!

worst case, host new manifest on different url till it get officially released?

@XDark187
Copy link

XDark187 commented Nov 2, 2024

Plugin is working on the browser but not on JMP, from the logs I see this error:
[ERR] [33] Namo.Plugin.InPlayerEpisodePreview.Api.InPlayerPreviewController: InPlayerEpisodePreviewPlugin: "Namo.Plugin.InPlayerEpisodePreview.Web.InPlayerPreview.js"
I already modified my nativeshell.js as instructed in the readme, it used to work fine but not anymore, any ideas?

@Namo2
Copy link
Owner

Namo2 commented Nov 3, 2024

Hey, the way of modifing something for JMP is deprecated.
JMP is using the frontend from the server now.
If you can't see the button. Check if you have the newest version of JMP 1.11.1 and this plugin

@XDark187
Copy link

XDark187 commented Nov 3, 2024

Even though the button is displayed and working on the web browser, I can see an error on the console:
image

The amount of time this plugin takes to troubleshoot with every jellyfin update is not worth it for me anymore, all other plugins just migrate smoothly with every jellyfin update except this one, nothing have changed from the last time this plugin was working except for the jellyfin version.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests