Comments (32)
Works as intended now 🔥
from inplayerepisodepreview.
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.
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
from inplayerepisodepreview.
Ha that is weird that you don't have anything in the chrome logs.
Well glad it works for you now 👍
from inplayerepisodepreview.
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
from inplayerepisodepreview.
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
from inplayerepisodepreview.
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.
from inplayerepisodepreview.
Same problem... +1
from inplayerepisodepreview.
Same problem! +1
from inplayerepisodepreview.
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?
from inplayerepisodepreview.
from inplayerepisodepreview.
Same here. No button on the web player
from inplayerepisodepreview.
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
from inplayerepisodepreview.
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]
from inplayerepisodepreview.
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
but nothing in the chrome 124 console logs
from inplayerepisodepreview.
No luck for me. Chrome still doesn't show logs or button on the latest 10.9
from inplayerepisodepreview.
Does it show anything for you in the jellyfin/docker logs?
from inplayerepisodepreview.
I am not on docker. It's windows installation
from inplayerepisodepreview.
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
from inplayerepisodepreview.
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.
from inplayerepisodepreview.
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
from inplayerepisodepreview.
[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
from inplayerepisodepreview.
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).
from inplayerepisodepreview.
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
from inplayerepisodepreview.
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
from inplayerepisodepreview.
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
from inplayerepisodepreview.
my page source. Trying the second step
from inplayerepisodepreview.
I guess mine is an isolated issue. Tried both lines, after uninstalling and multiple restarts. Could'nt get it to show up.
from inplayerepisodepreview.
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
from inplayerepisodepreview.
@Namo2 finally got an error log in the console, hoping this can be a help. BTW the plugin works awesome in the JMP
from inplayerepisodepreview.
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
from inplayerepisodepreview.
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?
from inplayerepisodepreview.
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.
from inplayerepisodepreview.
Related Issues (6)
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from inplayerepisodepreview.