A publisher may replace an episode's audio file or move it to another delivery address. A saved resume position should remain associated with the episode record, rather than with a string copy of yesterday's enclosure URL.
That does not mean every replacement file is identical. An updated intro, removed advertisement, or corrected edit can shift where a saved second lands.
Refresh media details before playback
Use the current catalog record to obtain the media address your integration supports. Keep the saved position tied to the provider's episode ID. If the current duration differs, clamp an out-of-range position according to a visible product rule rather than sending the player beyond the file.
Avoid rewriting a signed or parameterized URL in an attempt to make it look stable. Store identity and delivery metadata in separate fields. A URL can be temporary even when an episode is long-lived.
If loading fails, explain that the current audio could not be opened. Do not immediately erase the listener's history or mark the episode finished. A delivery failure is not evidence that their earlier progress is invalid.
Check a replacement scenario
Prepare one test episode with a stable record ID and two media versions. Resume first with the same duration, then with a shorter file. Verify that the app opens the updated address and keeps a sensible progress value.
For substantial edits, give the listener an easy way to restart or adjust their place. Your app cannot infer exactly how every spoken sentence moved between versions.
Separating record identity from the playable address gives you a stable foundation while still acknowledging that publisher-controlled audio can change.