Originally created by @bjhiggins on GitHub (Oct 27, 2024).
Describe the Feature/Enhancement
I listen to audiobooks everywhere and make sure I have a local copy on my Android device. I usually start in the house - same network as my Audiobookshelf server. I then move to the car and continue the book in the car - my server is unavailable via the Internet so the progress is kept on the app. When I return to the house and restart the book, all progress from the car was lost.
I would like a feature so that the progress on the mobile app is preferred over the server. As this would likely be specific to this use case, perhaps an option in the app to enable/disable the feature.
This could be implemented so that if the progress on the mobile app is further than the server, use the apps progress. Of the other way around, use the servers progress.
In the Audible app, if you are listening from multiple devices - if the progress is not in sync, there is a pop up box explaining the two different positions and asks the user which to use
Why would this be helpful?
A feature allowing the user to determine whether the mobile app or server is the preferred point of progress would prevent users from losing their place in the book when changing locations.
Future Implementation (Screenshot)
Likely would be a Boolean checkbox in Settings to enable/disable the feature. Perhaps a more advanced implementation would have a pop up message indicating the difference with two buttons "Use Server Progress" and "Use Device Progress"
Audiobookshelf App Version
Android App - 0.9.76
Current Implementation (Screenshot)
No response
Originally created by @bjhiggins on GitHub (Oct 27, 2024).
### Describe the Feature/Enhancement
I listen to audiobooks everywhere and make sure I have a local copy on my Android device. I usually start in the house - same network as my Audiobookshelf server. I then move to the car and continue the book in the car - my server is unavailable via the Internet so the progress is kept on the app. When I return to the house and restart the book, all progress from the car was lost.
I would like a feature so that the progress on the mobile app is preferred over the server. As this would likely be specific to this use case, perhaps an option in the app to enable/disable the feature.
This could be implemented so that if the progress on the mobile app is further than the server, use the apps progress. Of the other way around, use the servers progress.
In the Audible app, if you are listening from multiple devices - if the progress is not in sync, there is a pop up box explaining the two different positions and asks the user which to use
### Why would this be helpful?
A feature allowing the user to determine whether the mobile app or server is the preferred point of progress would prevent users from losing their place in the book when changing locations.
### Future Implementation (Screenshot)
Likely would be a Boolean checkbox in Settings to enable/disable the feature. Perhaps a more advanced implementation would have a pop up message indicating the difference with two buttons "Use Server Progress" and "Use Device Progress"
### Audiobookshelf App Version
Android App - 0.9.76
### Current Implementation (Screenshot)
_No response_
I have the same issue where progress offline is lost when reconnecting. I was thinking a solution could be using the most recent listened to device. So if you listened a bit on the phone offline but say only 5 mins, then went to a PC connected to the server and listened for a few hours. Which ever device had the most recent listening entry would then sync to the other device.
I however prefer your idea of a popup box giving you the choice in that situation as it could be different from time to time. Maybe it says you are at 2:53:23 on this device but 1:05:14 on the server which one would you like to keep.
@mattheys commented on GitHub (Oct 29, 2024):
I have the same issue where progress offline is lost when reconnecting. I was thinking a solution could be using the most recent listened to device. So if you listened a bit on the phone offline but say only 5 mins, then went to a PC connected to the server and listened for a few hours. Which ever device had the most recent listening entry would then sync to the other device.
I however prefer your idea of a popup box giving you the choice in that situation as it could be different from time to time. Maybe it says you are at 2:53:23 on this device but 1:05:14 on the server which one would you like to keep.
After thinking about this - for my use case - the popup would need to work in Android Auto as well as natively in the app. With (what I assume) limitations of AA - not sure if it would be possible ...
@bjhiggins commented on GitHub (Nov 3, 2024):
After thinking about this - for my use case - the popup would need to work in Android Auto as well as natively in the app. With (what I assume) limitations of AA - not sure if it would be possible ...
I have a similar workflow. I would very much like the implementation where the most recently updated listen status is respected. Right now it's basically like I have two different databases, one with the network on and one with the network off.
@nintendoeats commented on GitHub (Nov 8, 2024):
I have a similar workflow. I would very much like the implementation where the most recently updated listen status is respected. Right now it's basically like I have two different databases, one with the network on and one with the network off.
I'm having the same issue .. Listened offline for 9 hours and when connected to the server, it got reseted: (had to manually reset the time to the 9+ hours)
@Doublemyst commented on GitHub (Nov 11, 2024):
I'm having the same issue .. Listened offline for 9 hours and when connected to the server, it got reseted: (had to manually reset the time to the 9+ hours)

Came here to report this exact same issue. It seems a little odd behaviour but hopefully the devs can resolve or at least give a rationale for why it's working this way.
I'd prefer the app to just keep track of the current position and offline history, then report it when it comes back online. If the last offline event is after the last online event then that should take precedent and get merged into the history (with an appropriate merge event to show what happened). Likewise if the same thing happens in reverse.
I guess the case when the server is accessed via an alternative method (eg web app) and the android app never connects the app should just be oblivious to those online events until such time as it reconnects. I don't really see any alternative to that.
@kanine commented on GitHub (Nov 20, 2024):
Came here to report this exact same issue. It seems a little odd behaviour but hopefully the devs can resolve or at least give a rationale for why it's working this way.
I'd prefer the app to just keep track of the current position and offline history, then report it when it comes back online. If the last offline event is after the last online event then that should take precedent and get merged into the history (with an appropriate merge event to show what happened). Likewise if the same thing happens in reverse.
I guess the case when the server is accessed via an alternative method (eg web app) and the android app never connects the app should just be oblivious to those online events until such time as it reconnects. I don't really see any alternative to that.
Same issue happens on my Android client. Progress gets overwritten when I connect to the server. I have attempted to circumvent this issue by always staying connected via Tailscale, but whenever I listen offline and then reconnect the progress resets back and I have to use the history screen to find my location.
@gamendorf commented on GitHub (Jan 24, 2025):
Same issue happens on my Android client. Progress gets overwritten when I connect to the server. I have attempted to circumvent this issue by always staying connected via Tailscale, but whenever I listen offline and then reconnect the progress resets back and I have to use the history screen to find my location.

Same issue happens on my Android client. Progress gets overwritten when I connect to the server. I have attempted to circumvent this issue by always staying connected via Tailscale, but whenever I listen offline and then reconnect the progress resets back and I have to use the history screen to find my location.
@gamendorf & @Doublemyst how do I get to that listen state history view in the app? It would be useful while this sync issue still exists to be able to easily go back to where I actually left off.
@WillGunn commented on GitHub (Mar 18, 2025):
> Same issue happens on my Android client. Progress gets overwritten when I connect to the server. I have attempted to circumvent this issue by always staying connected via Tailscale, but whenever I listen offline and then reconnect the progress resets back and I have to use the history screen to find my location.
>
> 
@gamendorf & @Doublemyst how do I get to that listen state history view in the app? It would be useful while this sync issue still exists to be able to easily go back to where I actually left off.
Same issue as well, even when actively listening on android. For me the only time I've notice it happen was when I manually told it to reconnect though. I leave the house and return often (without external access configured) and haven't had it lose its place if it reconnects automatically. Using ABS server v2.20.0 windows and ABS android 0.9.79.
@WillGunn to see listen history in app, click the three dot icon next to big green play button and select History.
@neurolizer commented on GitHub (Apr 5, 2025):
Same issue as well, even when actively listening on android. For me the only time I've notice it happen was when I manually told it to reconnect though. I leave the house and return often (without external access configured) and haven't had it lose its place if it reconnects automatically. Using ABS server v2.20.0 windows and ABS android 0.9.79.

@WillGunn to see listen history in app, click the three dot icon next to big green play button and select History.
@advplyr - would not the be a high priority issue? :)
I don't set dev priorities, but as a user, it is a deal-breaker for me. I have stopped using the ABS client for playback and only use it to download to my device, then listen using Smart Audiobook Player.
@gamendorf commented on GitHub (Apr 7, 2025):
> [@advplyr](https://github.com/advplyr) - would not the be a high priority issue? :)
I don't set dev priorities, but as a user, it is a deal-breaker for me. I have stopped using the ABS client for playback and only use it to download to my device, then listen using Smart Audiobook Player.
Does waiting a brief amount of time (like 5-10 seconds) after establishing a server connection to allow the client to finish syncing before pressing play fix the issue? I experimented with this the other day while traveling (on airplane, so fully offline). After restarting the app, you can watch the progress bar update to the local playback time beneath the cover after a few seconds.
@nichwall commented on GitHub (Apr 7, 2025):
Does waiting a brief amount of time (like 5-10 seconds) after establishing a server connection to allow the client to finish syncing before pressing play fix the issue? I experimented with this the other day while traveling (on airplane, so fully offline). After restarting the app, you can watch the progress bar update to the local playback time beneath the cover after a few seconds.
Same issue as well, even when actively listening on android. For me the only time I've notice it happen was when I manually told it to reconnect though. I leave the house and return often (without external access configured) and haven't had it lose its place if it reconnects automatically. Using ABS server v2.20.0 windows and ABS android 0.9.79. @WillGunn to see listen history in app, click the three dot icon next to big green play button and select History.
@neurolizer There does not appear to be a History option on the iOS version of the app in that menu. I guess that particular feature is Android only?
@WillGunn commented on GitHub (Apr 18, 2025):
> Same issue as well, even when actively listening on android. For me the only time I've notice it happen was when I manually told it to reconnect though. I leave the house and return often (without external access configured) and haven't had it lose its place if it reconnects automatically. Using ABS server v2.20.0 windows and ABS android 0.9.79.  [@WillGunn](https://github.com/WillGunn) to see listen history in app, click the three dot icon next to big green play button and select History.
@neurolizer There does not appear to be a History option on the iOS version of the app in that menu. I guess that particular feature is Android only?
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Originally created by @bjhiggins on GitHub (Oct 27, 2024).
Describe the Feature/Enhancement
I listen to audiobooks everywhere and make sure I have a local copy on my Android device. I usually start in the house - same network as my Audiobookshelf server. I then move to the car and continue the book in the car - my server is unavailable via the Internet so the progress is kept on the app. When I return to the house and restart the book, all progress from the car was lost.
I would like a feature so that the progress on the mobile app is preferred over the server. As this would likely be specific to this use case, perhaps an option in the app to enable/disable the feature.
This could be implemented so that if the progress on the mobile app is further than the server, use the apps progress. Of the other way around, use the servers progress.
In the Audible app, if you are listening from multiple devices - if the progress is not in sync, there is a pop up box explaining the two different positions and asks the user which to use
Why would this be helpful?
A feature allowing the user to determine whether the mobile app or server is the preferred point of progress would prevent users from losing their place in the book when changing locations.
Future Implementation (Screenshot)
Likely would be a Boolean checkbox in Settings to enable/disable the feature. Perhaps a more advanced implementation would have a pop up message indicating the difference with two buttons "Use Server Progress" and "Use Device Progress"
Audiobookshelf App Version
Android App - 0.9.76
Current Implementation (Screenshot)
No response
@mattheys commented on GitHub (Oct 29, 2024):
I have the same issue where progress offline is lost when reconnecting. I was thinking a solution could be using the most recent listened to device. So if you listened a bit on the phone offline but say only 5 mins, then went to a PC connected to the server and listened for a few hours. Which ever device had the most recent listening entry would then sync to the other device.
I however prefer your idea of a popup box giving you the choice in that situation as it could be different from time to time. Maybe it says you are at 2:53:23 on this device but 1:05:14 on the server which one would you like to keep.
@bjhiggins commented on GitHub (Nov 3, 2024):
After thinking about this - for my use case - the popup would need to work in Android Auto as well as natively in the app. With (what I assume) limitations of AA - not sure if it would be possible ...
@nintendoeats commented on GitHub (Nov 8, 2024):
I have a similar workflow. I would very much like the implementation where the most recently updated listen status is respected. Right now it's basically like I have two different databases, one with the network on and one with the network off.
@Doublemyst commented on GitHub (Nov 11, 2024):
I'm having the same issue .. Listened offline for 9 hours and when connected to the server, it got reseted: (had to manually reset the time to the 9+ hours)

@kanine commented on GitHub (Nov 20, 2024):
Came here to report this exact same issue. It seems a little odd behaviour but hopefully the devs can resolve or at least give a rationale for why it's working this way.
I'd prefer the app to just keep track of the current position and offline history, then report it when it comes back online. If the last offline event is after the last online event then that should take precedent and get merged into the history (with an appropriate merge event to show what happened). Likewise if the same thing happens in reverse.
I guess the case when the server is accessed via an alternative method (eg web app) and the android app never connects the app should just be oblivious to those online events until such time as it reconnects. I don't really see any alternative to that.
@gamendorf commented on GitHub (Jan 24, 2025):
Same issue happens on my Android client. Progress gets overwritten when I connect to the server. I have attempted to circumvent this issue by always staying connected via Tailscale, but whenever I listen offline and then reconnect the progress resets back and I have to use the history screen to find my location.
@WillGunn commented on GitHub (Mar 18, 2025):
@gamendorf & @Doublemyst how do I get to that listen state history view in the app? It would be useful while this sync issue still exists to be able to easily go back to where I actually left off.
@neurolizer commented on GitHub (Apr 5, 2025):
Same issue as well, even when actively listening on android. For me the only time I've notice it happen was when I manually told it to reconnect though. I leave the house and return often (without external access configured) and haven't had it lose its place if it reconnects automatically. Using ABS server v2.20.0 windows and ABS android 0.9.79.

@WillGunn to see listen history in app, click the three dot icon next to big green play button and select History.
@foegra commented on GitHub (Apr 7, 2025):
@advplyr - would not the be a high priority issue? :)
@gamendorf commented on GitHub (Apr 7, 2025):
I don't set dev priorities, but as a user, it is a deal-breaker for me. I have stopped using the ABS client for playback and only use it to download to my device, then listen using Smart Audiobook Player.
@foegra commented on GitHub (Apr 7, 2025):
try this one:
https://github.com/GrakovNe/lissen-android
@nichwall commented on GitHub (Apr 7, 2025):
Does waiting a brief amount of time (like 5-10 seconds) after establishing a server connection to allow the client to finish syncing before pressing play fix the issue? I experimented with this the other day while traveling (on airplane, so fully offline). After restarting the app, you can watch the progress bar update to the local playback time beneath the cover after a few seconds.
@WillGunn commented on GitHub (Apr 18, 2025):
@neurolizer There does not appear to be a History option on the iOS version of the app in that menu. I guess that particular feature is Android only?