Foreword: I am a podcast lover, also an indie hacker. I have used Apple Podcasts, Overcast and Pocket Casts, but never totally content with them. So instead, I developed my own Podcast Player called Podventure. (If you are a podcast lover like me, maybe you would also love it, why not give it a try?)

1 What is OPML Format

OPML files are a universal format for saving podcast subscription lists used by podcast apps. It’s a text file that can be opened with any text editor, containing a list of URLs for podcast data retrieval.

Podcast apps can read OPML files to import information about the podcasts you’re subscribed to (RSS addresses).

2 Export Your Apple Podcast Subscription List into Other Podcast Apps

Firstly, open the iCloud Link for shortcuts, add it to your Shortcuts, and run this shortcut to save the subscription list to a file:

https://www.icloud.com/shortcuts/44009520675540d7945263e088f6e915

(This shortcut link is created and maintained by Harold, and the latest version can be obtained from https://haroldgao.com/post/opml)

Export Apple Podcast Subscription List to OPML

Then, choose your target podcast app and add the OPML file:

Import OPML into Podventure Podcast Player

3 Import OPML into your Apple Podcast

Firstly, export an OPML file from your third-part Podcasts app like OverCast;

Secondly, share the file and click Copy to get the text content of it to your clipboard;

Thirdly, start the shortcut command, which will read your clipboard and add all the podcasts to your Apple Podcasts app:

https://www.icloud.com/shortcuts/ebc8a7c9b31d4cada78b6600933e2e48

(This shortcut link is created and maintained by Harold, and the latest version can be obtained from https://haroldgao.com/post/opml)

Import OPML into Apple Podcasts

P.S. OPML Format Specification

OPML files are a simple XML format used for list management, widely used for RSS feed subscriptions. It can be understood as a multi-branched tree, where each node is called an outline. Each node can either be the end of a branch or can split into other branches.

Because podcast lists only need to provide a list node, they usually have only one layer of outline (used by Overcast) or two layers (used by Pocket Podcast).

The single-layer structure used by Overcast looks like this:

1
2
3
<outline showOneData/>
<outline showTwoData/>
<outline showThreeData/>

Pocket Podcast’s two-layer structure, which includes a root node outline, looks like this:

1
2
3
4
5
<outline>
  <outline showOneData/>
  <outline showTwoData/>
  <outline showThreeData/>
</outline>

The data format for a podcast is an RSS file. The most basic outline node in a generic OPML file contains a text field for the podcast show name and an xmlUrl field for the RSS file download URL of the podcast show.

All data for a podcast are stored in the RSS file, which includes the podcast’s introduction, images, categories, etc., and an item list that stores the title of each episode, show notes, images, duration, audio file download URL, etc.

Generic podcast apps can subscribe to a podcast show list or display all information for a single podcast show by parsing these generic OPML or RSS files. Podventure is one such generic podcast app.