Local Folder: Corner case - unplayed count not updated for new file

App version: 2.6.1 via Google Play

Android version: 12

Device model: Pixel 5

Expected behaviour:

New episodes are counted as unplayed

Current behaviour:

In a very specific corner case, a new episode is not counted as unplayed for purposes of filters.

There is a show that I listen to which does not have an RSS feed, but does publish its episodes using a specific date/time format. I use Tasker to download the episode each day, and place it into a specific folder, which I have configured AntennaPod to use as a Local Folder source.

Within the last week, the people who produce this show started adding ID3 tags to the MP3 when they had not done so before. The problem with this (i.e. what is triggering this bug in AntennaPod) is that the ID3 title is always the same.

Here is the very specific set of circumstances that trigger this bug:

  1. The “Subscription Counter” in User Interface settings is set to “Number of unplayed episodes”
  2. Local folder with folder.jpg and a single MP3 file, with an ID3 tag containing a Title
  3. Listen to or mark this file as played
  4. Remove the original file
  5. A new file is downloaded. It has a different filename (because Tasker is writing the filename with the date in it, to ensure uniqueness), but the Title field in the ID3 tag is the same as the previous day’s episode. By design, AntennaPod does not update the DB for the local folder if no files are present, so the entry from the previous day’s episode is still there.
  6. The episode is marked both New and Unplayed (as expected), but it is not counted as unplayed in the subscription list. This means that when subscriptions are filtered to show only ones with unplayed episodes, this local folder is not shown, despite having an unplayed episode.

Some additional info: If you add the episode to the queue, its unplayed counter is updated.

I tried leaving the old episode in place tonight when the new one downloaded, and the new episode has a different title than the last several days’ episodes all shared. Nevertheless, the same problem happened. The episode still isn’t counted as unplayed for the purposes of filters. So the ID3 tag doesn’t appear to be causing the problem as I originally thought.

It shows as new in the subscription view, but the podcast “feed” doesn’t show a number of unplayed episodes and thus this local folder doesn’t show up when subscriptions are filtered to those with unplayed episodes. However, the second I add the episode to the queue, it shows up in the filtered subscription list with a number “1”.

Episodes are either “new” or “unplayed”. Not both. You can configure the counter to show “new and unplayed”. If you set it to just “unplayed”, it doesn’t show new ones.

That worked, thanks! However, I do have some feedback:

Episodes are either “new” or “unplayed”. Not both.

While I realize (now) this is true for AntennaPod, it is both factually incorrect and unintuitive. A new episode is by definition also unplayed.

Furthermore, AntennaPod’s UI in at least 2 places suggests that an episode can be unplayed while still being new:

  1. When viewing a subscription, long-pressing a “new” episode shows both “remove new” and “mark as played” options. If you can mark something as played, separate from it’s “new” status, that suggests the opposite of an either/or relationship between “new” and “unplayed”.

  2. When configuring the counter, the expression “new and unplayed” is boolean. New and unplayed. If these are separate, mutually-exclusive states, the option should be “new or unplayed”.

I agree. I’ve made a proposal to change the ‘new’ status to something more intuitive here: 'Refactor' episode statuses & introduce 'Ignored' status · Issue #5237 · AntennaPod/AntennaPod · GitHub (in short: New should be completely separate from an episode’s status and it should not be possible to manipulate manually)