advplyr / audiobookshelf-app

Mobile application for Audiobookshelf
https://audiobookshelf.org
GNU General Public License v3.0
1.32k stars 173 forks source link

[Bug]: Podcasts downloading and marked as completed when not, AND starting at the incorrect place AND not being marked "finished" correctly. #1361

Open ShanDestromp opened 2 weeks ago

ShanDestromp commented 2 weeks ago

What was the Problem?

So I'm getting what are possibly unrelated bugs that I don't think are reported yet (at least, none of the existing reports seem to match my experiences). I don't know how the system actually works on a software level so I'm listing them together in case they're related but if they need to be split into separate bug reports we can do that then. They might not even be app bugs specifically even though (to me) that's where the problem is visible.

  1. Basically it seems as though every (podcast) file I download from my ABS server to the app, will get marked as "finished" and hidden as soon as I disconnect from said server (I don't have nor want "global" access to my network so it's only directly available on my home WiFi). I then have to switch the filter to "completed" and "unfinish" them one by one. The server will still show them unfinished, its only on the app when it's disconnected.

  2. as soon as I begin to play one of these episodes, playback will always start at 1:30 into the episode. It properly tracks progress when I pause / stop / resume but every new episode will start at 1:30.

  3. When I eventually re-connect to my ABS server, any episode I completed is no longer marked as finished; but has a negative play-time remaining (often a very large number as well). Almost like it thinks I've played more than 100% of the file and gets confused as to where it is in the file. This might be a server bug but it feels more like the app isn't reporting the playback time correctly in some way.

Problems 1 and 3 have been an issue for the last few months at least, probably since mid-summertime at a guess. At first it wasn't a big deal but I've recently been binging a particular (serialized) podcast so having to manually reflag the files twice (first on the app, then back on the server) on top of being forced to download them one at a time to my phone is really annoying (as an aside, being able to select multiple items at once would be appreciated).

Problem 2 only started in the last month-ish. At first I thought it was a new feature for skipping intros but I couldn't find any setting to configure it

Steps to Reproduce the Issue

Download a new, unplayed episode from server to app While connected, app properly shows as "incomplete" Disconnect from server (eg go mobile) and episode is erroneously marked as "finished" "Unfinish" episode(s) and start to play one, playback will start at 1:30 into the episode. Complete listen of an episode, reconnect to server and server shows incorrect (and impossible) playback time remaining.

What was Expected?

Phone Model

Pixel 7a

Phone OS

Android 14 and 15, stock.

Audiobookshelf App Version

Android App - 0.9.76

Installation Source

Google Play Store

Additional Notes

ABS server is presently 2.16.2 via docker. I keep the image fairly up to date, within a few days of a new release usually. App is updated whenever the play store pushes the update to me.

This is occurring with multiple podcasts (one Patreon feed and multiple "normal" feeds) and is consistent with all of them. All files downloaded to my mobile from the server are incorrectly marked finished, all of them start playback at exactly 1:30, and all of them (if I finish them when disconnected from the server) have incorrect "remaining" time when reconnecting.

I don't see anything unusual in the ABS server logs, mostly client connect /disconnect when I would expect, and matching downloads when I add them to my phone, and "Syncing local session" when I connect after listening on my phone when disconnected.

nichwall commented 2 weeks ago

I was able to partially recreate the issue using Android 0.9.76 and server 2.16.2.

  1. Download new episode from server (Consider This by NPR), has not been listened to at all
  2. Disconnect from server
  3. Progress bar incorrectly shows that episode has progress in Android app (progress matches what I saw in step 5)
  4. Play episode
  5. Episode incorrectly begins at exactly 3:00 into 7:14 minute episode. I listen at 1.7x speed, so this is actually starting at 5:07 into an episode of length 12:20.
  6. Skip to near end of episode (20 seconds remaining)
  7. Complete episode
  8. Close player
  9. Confirm episode shows as finished in app
  10. Connect to server
  11. Episode shows at 100% and says Finished, but can still be marked as finished and shows up in Continue Listening
  12. Completely close app, repeat step 11

Note that the "finish handling" being weird could be due to changes in server version 2.16.0 released a few weeks ago, but sounds like you have been having this problem for a lot longer. https://github.com/advplyr/audiobookshelf-app/issues/1356

Does changing your playback speed change where the episode starts with a downloaded podcast episode?

ShanDestromp commented 2 weeks ago

Note that the "finish handling" being weird could still be weird beginning in 2.16.0 released a few weeks ago, but sounds like you have been having this problem for a lot longer. #1356

Negative time remaining / continue listening has been a problem for many months but it's such a minor issue it didn't bother me.

Fresh downloads appearing as completed once I disconnect and having to be unfinished in the app is newer but still a "summertime-ish" development at least, and definitely well before 2.16.0. I tend to let episodes pile up and then binge them over the course of a few weeks so it's hard to remember exactly when the issue popped up since I'll add 20-30 episodes to my phone to listen to over the course of a few weeks, and it took a couple of times dealing with this bug to recognize what exactly was happening.

Does changing your playback speed change where the episode starts with a downloaded podcast episode?

I just tested by setting playback speed to 2.0x and started a new episode and it began exactly at 1:30 on the timer, same as when I play at 1x (which is my normal playback speed).