In macOS Catalina the podcast fetcher was moved from iTunes to a dedicated Podcasts app which is now missing some of the functionality that was available in the previous version.
For example, the OPML import and export functionality is missing so I went looking for an SQLite database that Apple likes to use for this kind of storage (similar to highlight information for Books).
I found a plist file which lists all the podcast subscriptions under:
~/Library/Containers/com.apple.podcasts/Data/Documents/PodcastsDB.plist
with the relevant parts looking like this:
<array>
<dict>
<key>feedUrl</key>
<string>https://jasonbarnard.com/feed/podcast/</string>
<key>title</key>
<string>#SEOisAEO Digital Marketing Podcast - The most fun you'll ever have learning about digital from the experts</string>
<key>uuid</key>
<string>131C83A7-7244-4B9C-96CE-2847C84C9A06</string>
</dict>
<dict>
<key>feedUrl</key>
<string>http://feeds.soundcloud.com/users/soundcloud:users:130477445/sounds.rss</string>
<key>storeId</key>
<string>956912399</string>
<key>title</key>
<string>1 Day Business Breakthrough - Helping Entrepreneurs Discover Their Next Big Idea Today |1DayBB</string>
<key>uuid</key>
<string>B3D9254A-EF70-4B3E-8F10-6A811D54104D</string>
</dict>
</array>
I’m still now sure how the UUID is calculated.
Export as OPML
I created a PHP package to create an OPML export of all your subscriptions. Here is how to use it if you have PHP and Composer installed locally:
composer create-project kasparsd/podcasts-tools
cd podcasts-tools
composer export > opml.xml
which will install the package and export the feeds to opml.xml
in the same directory.