Skip to content

2023 07 11

Georg Krause edited this page Nov 24, 2024 · 1 revision

2023-07-11 20:00

Episode identification

Possible way forward for selecting ideal 'identification' (ID) for episodes: write up test cases (examples of data gaps) > what satisfies all our test cases?

  • rss feed without episode guids
  • rss feed with 2 duplicate guids
  • guid changes for a given episode in the rss feed
  • ...

Then make table.

We should probably add a warning, reminding that these cannot be used as the only indices in database in multi-user environment (users have different playback positions).

Data

  1. The episode's Podcast GUID (most recent)
  2. The episode's GUID (sent by the client if found in the RSS feed, or generated by the server if not): String (not necessarily GUID/URL formatted).`
  3. A boolean played field / or a field(e.g. nested json) state containing information about the state this episode currently in (like played, in_queue, ignored, ...) a. What is 'played' differs between clients (e.g. in AntennaPod you can set as played even if 20 seconds at end is skipped) b. Interaction with other potential states? (e.g. 'ignored') E.g. 'notified' (to avoid getting notifications on multiple devices). Need a list of statuses (& combinations) to keep track of, and then see which options (boolean, integer, nested booleans, etc) are best. c. Solution: define a set of states and explain those well
  4. Liked/Favourited
  5. A Playback position marker, updated by a PUT request
  6. A time_played counter, containing the total amount of seconds this episode was played
  7. A timestamp of the last time the episode was played/paused
  8. To resolve sync conflicts: dedocated timestamp for each of the fields? Or single timestamp for whole episode. a. Two timestamps: last_played (for conflict resolution on the playback position) and metadata_changed (for conflict resolution on all other episode information) b. One timestamp for everything c. Separate timestamps for each field [too complicated]
  9. Episode length? (gpodder.net had this) TBD (cases with media files shorter like 30 sec when abroad, or when media files have ads removed after x-thousand downloads because podcaster gets paid only for first 10k)
  10. Any other markers (e.g. bookmarked playback positions; timed annotations)
  11. Ratings/Reviews (probably better as separate endpoint, referencing the episode)
tags: project-management meeting-notes OpenPodcastAPI
Clone this wiki locally