Skip to content

holgerkrupp/PodcastClient

Repository files navigation

PodcastClient

Open Source Podcast Client

I started developing an open source podcast client in 2023 with the goal of building something that doesn’t rely on a central server. By 2024 I had a working alpha that already included features like transcripts, accidental skip detection, and other improvements I felt were missing from existing podcast apps.

This isn’t my first attempt at building a podcast app — I actually released my first client, One Trick Pony, about nine years ago. Life took me in other directions for a while, but now I’m back at it—this time starting almost from scratch. I’m targeting iOS 26, adopting Swift 6, and following its strict concurrency rules to avoid race conditions. Some parts of the old codebase will be reused, but the foundation is fresh.

The goal of this project is simple: give back to the community. I’ve enjoyed countless free podcasts over the last 20 years, and I also use free tools like Podlove Publisher and Ultraschall to publish my own. This app is my way of helping preserve podcasting as an open, independent medium—resisting efforts by companies to lock it down.

Key principles of the project:

  • Built on the community-driven podcast catalog fyyd
  • Independent of proprietary servers (all refreshes run locally on-device)
  • 100% open source and free to use
  • No locked features or restrictions

Next Steps

  • Integrate Settings (Per Podcasts and global)

  • Use Notification Center to send notification to the player if settings are changed.

  • [?] fix Skip Chapters (validate skip to and skip last)

  • Refactor mp3ChapterReader to send a custom object (concurrency)

  • mp3ChapterReader work with remote files

Alpha min Requiremets

Subscription Management

  • add podcast via URL

Refresh and Downloads

  • refresh podcast content via Button
  • refresh all with pull to refresh
  • download episodes
    • show download progress
    • delete files
    • implement automatic background downloads
  • remove all files when one episode is archived
  • if Playlist contains episode, move it to the front/end instead of adding another copy

Player

  • play / pause
  • skip forward / backward
    • make time adjustable
  • jump to chapter
  • Chapter marks
    • PSC
    • m4a
    • mp3
    • extracted from shownotes
    • Update Chapter View more snappy
  • include chapter art for mp3/m4a
  • include chapter links for mp3/m4a
  • postprocess chapters to find duration/end if no value is given ( chapter[n].end = chapter[n+1].start ? episode.end)
  • save last played episode and reload when opening the app

Beta min Requirement

Subscription Management

  • OPML import
    • to be validated with big file
    • Show import progress
    • Handle no longer existing feeds (HTTP Status 404, 500, 410 oder 200 but HTML and no XML)
  • podcast directory search
    • iTunes Directory Search (basic)
    • Fyyd Directory Search
    • Fyyd recomendations

Refresh and Downloads

  • auto download/refresh feeds

Player

  • skip manually selected chapters
  • sleep timer
  • play next queue
  • set playbackspeed
    • [?] (per podcast)

1.0 min requirements

Miscellaneous

  • nice UI
  • nice Logo
  • nice name - Up Next
  • CarPlay

Subscription Management

  • OPML export

Refresh and Downloads

  • Automatic deletion of files
    • Based on last x files
    • Based on time passed since release
  • Notification after refresh

Player

  • skip detection
  • share Episode
    • from play now screen
    • from episode view screen
    • (including Playposition if possible)

##1.1 min requirements

Subscription Management

  • Sideloads via iCloud Drive

  • Downloads of Episodes withouth subscribing to a feed

  • accept opml from share sheet

  • accept rss / xml from share sheet

  •  accept any URL that could be a feed

Refresh and Downloads

Player

  • custom playlists

##1.x requirements

About

An Open Source Podcast client.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages