Reclaiming a Decade of Podcast Listening History
SubscribeSign in
Reclaiming a decade of podcast listening history<br>A guide to extracting your listening data from any podcast app
Dustin Bluck<br>Jul 16, 2026
Share
I’ve been listening to podcasts for a long time. Not as long as some I’m sure, but I discovered them in college and have been consuming them regularly since at least ~2010, starting with The Moth, This American Life, and Podcast Beyond. I suppose the first place I ever listened was iTunes on the Mac, but the first podcast app I actually used and cared about was DoggCatcher. This was years before most podcast apps we use today existed. Eventually, I graduated to PocketCasts when they were still an indie app. Then I wrote an Android app, Aurelian, and now run Castro.
What a great icon<br>So my history was scattered across a bunch of apps. I recently undertook a project to reconstruct as much of that listening history as I could in order to keep that data with me. Since podcasts are built on open frameworks, it just feels appropriate that none of this should be locked behind a proprietary app, even if I own the app.<br>Unfortunately, all my DoggCatcher listening is lost to history, like the app itself. For PocketCasts though, I was able to export actual listening history going back to 2018, and played episodes going back to 2015. So while I’d love to have a few more years, a decade of data feels pretty good. I started using Aurelian around 2022, and the last couple years I’ve been primarily using Castro. Using the method below, I was able to take the data from all three apps and build out one giant library over the past decade.1
Subscribe
Doing the extraction
So the first thing we’re going to want to do is extract all our data from all the podcast apps we’ve ever used. Depending on the app this is either very easy or a little involved. A podcast is really just a URL with a flat XML file. Within that file, for the purposes of this exercise, there are only a few things we care about:<br>Feed title
Feed artwork
Items<br>Item artwork
GUID
Title
Published date
Media URL (enclosure)
Because this is literally all a podcast is, any podcast app is going to store this information, either directly or indirectly. GUID is the most important attribute here. It’s the easiest way to keep track of episodes in the feed. Once I have the podcast URL and GUID from an episode, then it becomes trivial to map it from one app to another, and I know exactly what we’ve played, queued, etc. The first step is going to be going through all the apps you’re using and exporting each database:<br>Castro
Castro stores a backup file with the extension .castrobackup in your iCloud drive. This file is JSON, and lists only Castro public IDs. These look like the GUID above, but they’re actually internal UUIDs and don’t map onto the feed in the way we’d like. Luckily, Castro does expose this data, either through public REST APIs or Castro MCP. So you can access which Castro episode you’re looking at in either direction. If I have a Castro ID and I want the full episode data:<br>Input (episode)<br>"public_id": "0d6d1c14-23b4-4cbc-96b2-106c06942635"
Output
"public_id": "0d6d1c14-23b4-4cbc-96b2-106c06942635",<br>"feed_guid": "19263b9a-7ad2-11f1-aaed-3fa07ea54e9e",<br>"podcast_public_id": "3878bc03-96bc-4457-b29c-1b1bdbebccf6",<br>"short_id": "r7SxXj",<br>"title": "The Odyssey: Hero of the Trojan Horse (Part 1)",<br>"podcast_title": "The Rest Is History",<br>...
That public_id is what you’re going to see in the Castro backup, and mapping in the other direction is equally straightforward. This episode is also available here.<br>Podcast Republic
Open the app settings and go to “Backup & Restore”. You can export the full SQLite database, which contains feed URLs and GUIDs, giving you everything you need.<br>AntennaPod
Likewise, this has a Database export feature under “Backup & restore” and contains this information directly.<br>Apple Podcasts
If your iPhone and Mac are syncing, you may be able to find the database at $HOME/Library/Group Containers/243LU875E5.groups.com.apple.podcasts/Documents/MTLibrary.sqlite. Then you may be able to use the fact that Apple generates identifiers like md5(feed_url + guid)to get something useful out of this. But if you want a more comprehensive one-time data export, it’s easier to go to privacy.apple.com, export your data, and ensure you check “Apple Media Services Information”. That’s going to give you at least feed URLs, and it’ll likely be enough to reverse engineer your playback history.
PocketCasts
Go to Profile Tab → Help & Feedback, then in the menu “Export database”. Unfortunately, PocketCasts’ database does not list feed URLs or GUIDs, only their own public IDs. Mapping these IDs back to the feed URLs and GUIDs is not too difficult, and PocketCasts is open source so I’ll leave that bridge as an exercise for the reader. One trick to know: once you have a feed URL and an enclosure, you can simply pull the XML yourself and compare...