github ttlequals0/MinusPod v2.83.3
2.83.3

pre-release2 hours ago

Added

  • Episodes now show their own cover art in the episode list and on the
    episode page, falling back to the feed cover when an episode does not
    declare one.

Fixed

  • Channel metadata is now read from the raw <channel> children instead of
    the parsed feed dictionary (#596). The parser folds channel-level elements
    it does not recognise into the channel itself, so a feed carrying a
    Podcasting 2.0 <podcast:liveItem> reported the live episode's blurb as
    the show description, its chat link as the show website, and its author
    and categories as the show's, both in the web UI and in the feed served to
    podcast apps. This also separates <description> from <itunes:summary>,
    which the parser had aliased onto each other: a feed whose two differ now
    publishes the <description> it actually declares, so some stored
    descriptions change on the next refresh.
  • A feed that changed its cover art kept serving the old image (#596). The
    refresh writes the new artwork URL to the podcast row before the download
    step re-reads that row to decide whether the cover is already cached, so
    the check compared the new URL against itself, always matched, and skipped
    the fetch. A changed URL now forces the download, and the cache flag is
    cleared with the URL so a failed download is retried. Feeds already stuck
    cannot be repaired by change detection alone, since the stored URL is the
    new one while the image on disk is the old one, so upgrading also queues a
    single artwork re-download for every feed.
  • "Refresh artwork" re-pulls the cover again. It read the stored URL back off
    the row and passed it to the same guard that compares against that row, so
    the check always matched and only the badge variant was rebuilt.
  • The feed API handed back the publisher's own artwork URL whenever the cover
    was not cached, so an http:// cover arrived inside an https page and the
    browser blocked it, leaving a placeholder. It now uses the proxied endpoint
    whenever the file is on disk, and falls back to the publisher's URL only
    over https, which keeps covers that were rejected at cache time rendering.
  • Feed title, description, and artwork only refreshed when the publisher's
    body changed, so a steady feed answering 304 kept whatever it had when it
    was added, including descriptions stored under the old 500-character cap.
    A feed whose metadata has not yet been read this way now does one full
    fetch the next time it answers 304, spread across normal refresh cycles.
    Changes are logged, so a title, description, artwork, or website edit
    upstream is visible in the refresh log. A publisher who replaces the image
    at an unchanged URL is still not picked up, since nothing revalidates the
    bytes behind a URL that did not change.
  • Feeds declaring an encoding they do not actually use no longer store
    mojibake. The body is decoded once on fetch, and the channel read no
    longer re-applies the declared encoding on top of that.
  • The episode API no longer returns a cover URL that is not https. There is
    no episode artwork proxy to fall back to, so an insecure URL would only be
    blocked by the browser; clients use the feed cover instead.

Don't miss a new MinusPod release

NewReleases is sending notifications on new releases.