jellyfin / jellyfin-web

Web Client for Jellyfin
https://jellyfin.org
GNU General Public License v2.0
2.27k stars 1.2k forks source link

Book Position Not Remembered #2582

Open shortspider opened 3 years ago

shortspider commented 3 years ago

Describe The Bug When I open a book and scroll through the position isn't remembered. When the book is opened again it is at the start of the book.

Media Information N/A

Screenshots

System (please complete the following information):

Additional Context So the book player plugin seems to have support for restoring the position: image The problem is that startPositionTicks is never populated. I'm not sure if this is a web issue or there just isn't support for it on the server side (both maybe?). If this is a server side issue please let me know and I'll open an issue there. Willing to work on this just need a bit of guidance on what exactly needs to be done.

shortspider commented 3 years ago

Digging into this a bit more the books are calling Sessions/Playing/Progress and sending the current position in the book. This is tested on 10.7.2.

However, if you open a book and move a few pages in, wait for the Progress call to be made and complete, close the book, and then open it again it doesn't start from the position where you left off at. If you repeat the above and refresh the page it still doesn't work, you need to let some time go by before you will get the correct position on open.

I'm not sure if this is a caching issue on the client or something on the server at this point.

Also, is anyone else seeing this or just me?

shortspider commented 3 years ago

Just to add to my last comment, here you can see that a Progress call is made with the position at not 0: image But when we reload the book the position is still 0: image

tariq7t commented 3 years ago

I can confirm the same issue is happening to me where the book position is not being remembered.

carif commented 3 years ago

I can confirm that this issue is still present with the following server/clients:

Digging more into it:

Neither of the implementations seem to do this in a reliable way as sometimes an epub and a pdf still started at the beginning of the book despite finishing off at the chapters end.

RemoteMedia commented 3 years ago

Just discovered the same issue here during setup on docker.

Server is container based but hosted on a Ubuntu machine. This then replicates to the iOS app and the Brave, Chrome and Safari browsers for me.

Glad I checked before running a calibre-web setup. Hopefully this is resolved soon, as the Jellyfin all in one access is great. I dont like having to switch between 8,000 apps for my content. Jellyfin has done it right.

Edited to call OP @shortspider

jellyfin-bot commented 2 years ago

This issue has gone 120 days without comment. To avoid abandoned issues, it will be closed in 21 days if there are no new comments.

If you're the original submitter of this issue, please comment confirming if this issue still affects you in the latest release or master branch, or close the issue if it has been fixed. If you're another user also affected by this bug, please comment confirming so. Either action will remove the stale label.

This bot exists to prevent issues from becoming stale and forgotten. Jellyfin is always moving forward, and bugs are often fixed as side effects of other changes. We therefore ask that bug report authors remain vigilant about their issues to ensure they are closed if fixed, or re-confirmed - perhaps with fresh logs or reproduction examples - regularly. If you have any questions you can reach us on Matrix or Social Media.

xnklerEd commented 2 years ago

same here issue report

RemcoSchrijver commented 2 years ago

Looking into this it seems that the PositionTicks value is also arbitrarly updated (or per chapter) in the Progress call. So somewhere this value is only updated per chapter. Making that jellyfin only roughly saves where you are, and skips you ahead to the next chapter or back to the beginning.

rourien commented 2 years ago

Comics suffers from this bug as well sometimes. I have also noticed that large comics, ~1gb, always jump back to the beginning. I’m unsure if it’s because of the large number of pages, large file size, or something else entirely.

I wonder if it would be possible to add the save page event to when the viewer gets closed.

RemcoSchrijver commented 2 years ago

Do comics also use epubjs? Because epub's are in fact saved every page flip and on exit. So the problem is not that the state is not saved, the problem is that epubjs progress reporting is on a chapter-by-chapter basis. Atleast when it comes to percentage or any other form of progress reporting that is not epubcfi format. More on that discussion in epubjs here.

So I proposed the following fix in #3791 so instead of saving a number for progress saving a string would fix these issues. But I am not sure if there is a field we can repurpose for that.

The other option I could do is actually fixing the progress methods in epubjs, but it has over 400 open issues. And the latest PR to be merged dates back to february, so that would mean jellyfin would have to make it's own fork. That way we can save a number in the progress section like it expects.

carif commented 2 years ago

Do comics also use epubjs? Because epub's are in fact saved every page flip and on exit.

It depends. Some comics come with their own format (cbz / cbr) but most large publishers I’ve seen use ePub as a format. Everything that is ePub will be parsed by epubjs, as far as I know.

But comics do have a lot more problems when they come in the ePub format #3345 . For the ePub comics I have, saving progress would be the least of problems. Xd

CallMeYuuuu commented 1 year ago

Same issue for me while reading pdf files

aeriessy commented 1 year ago

Same issue when reading epub files. It works perfectly in Firefox (Windows, Desktop) for me, but does not work on Android (Galaxy S20, neither the browser or the app).

EDIT: So, Android app does remember the place when I click the PLAY button on the base image (on the homepage) rather than going into the page summary and clicking the image. It's like with the episodes as well so it's probably intended (where it starts anew). I'll change the way I interact with the interface.