Podcast Import/Export via OPML

What is OPML and how does it work?

Author's picture

Ilya Bezdelev

Co-Founder / CEOPodcasting


Import your favorite podcasts to Metacast

While self-service import of podcasts from other apps isn't available in Metacast yet, we're happy to manually import OPML files for Metacast Premium subscribers. Simply email your OPML file and Metacast User ID to support@metacast.app.

Your Metacast User ID can be found in Settings under Diagnostics Mode.

What is OPML?

If you tried to guess what OPML stands for, you probably got it wrong. No, the "P" is not for "podcasts."

OPML stands for "Outline Processor Markup Language" and is defined by Wikipedia as "a hierarchical, ordered list of arbitrary elements." OPML is the standard format that the podcasting industry has adopted to help users move their podcast subscriptions between apps.

Why is this important?

When Google shut down Google Podcasts, millions of users needed to find a new home for their podcasts. Google offered an option to take out podcast subscriptions in an OPML file. Independent apps, such as Overcast and Pocket Casts, offer an OPML import and export functionality, so that they can easily onboard new users and give them a peace of mind that they aren't locked into a particular app.

Here's a sample OPML file generated in Overcast.

<?xml version="1.0" encoding="utf-8"?>
<opml version="1.0">
  <head>
    <title>Podcast Feeds</title>
  </head>
  <body>
    <outline text="feeds">
 
      <outline type="rss" overcastId="3989321" text="Metacast: Behind the scenes" title="Metacast: Behind the scenes" xmlUrl="https://feeds.transistor.fm/metacast-behind-the-scenes" htmlUrl="https://metacastpodcast.com/" overcastAddedDate="Tue, 14 May 2024 16:11:03 +0000"/>
      <outline type="rss" overcastId="4601664" text="Builders Gonna Build" title="Builders Gonna Build" xmlUrl="https://feeds.transistor.fm/builders-gonna-build" htmlUrl="https://www.buildersgonnabuild.com/" overcastAddedDate="Mon, 30 Sep 2024 10:28:37 +0000"/>
 
    </outline>
  </body>
</opml>

The OPML file is simply a structured list of URLs. Each URL points to an RSS feed, an XML file that contains all the information about a podcast:

  • Podcast metadata — title, description, author, cover image URL, etc.
  • Episode details — episode title, description, and the URL of the audio file.

Podcast apps subscribe to podcasts by storing their RSS feed URL, periodically checking it for updates, and displaying podcast episodes to the user. When a user plays an episode, the podcast app streams or downloads an audio file from the URL provided by the RSS feed.

Coming back to the OPML file...

The most most important field is xmlUrl that contains the URL to a podcast's RSS feed. The RSS feed is all any podcast app needs to get you listening.

The title and htmlUrl (podcast's website URL) fields are not useful for import, because that information can be found in the RSS feed. But they can be helpful in case the RSS feed URL is broken. That may happen if you subscribed to a podcast a long time ago and the feed has become defunct without you noticing. If you know the title or the website, you can search for a podcast manually in your new podcast app.

How to export your podcasts to an OPML file?

Export OPML from Overcast

As of September 2024, Overcast removed OPML export from the Settings screen in the app. To export OPML from Overcast, you'll need to log in on the web, then download your OPML file via Account => Export Your Data => OPML.

Export OPML from Pocket Casts

See this help page for step-by-step instructions for exporting OPML from Pocket Casts.

Export OPML from Apple Podcasts

Apple Podcasts does not have a native way to export your podcast subscriptions via OPML. However, you can get an OPML file quite easily using the Podcasts exporter tool. I tested it with my podcast subscriptions on MacOS Sequoia 15.0 and it worked.

Here's what you do:

  1. On your Mac, open Terminal and run this command to copy the contents of PodcastsDB.plist to your Downloads folder. Alternatively, you can find the PodcastsDB.plist file yourself using Finder but I found it to be too much effort.
cat ~/Library/Containers/com.apple.podcasts/Data/Documents/PodcastsDB.plist > ~/Downloads/apple-podcasts.plist
  1. Go to the Podcasts exporter tool and upload apple-podcasts.plist from your Downloads folder.

  2. The tool will convert the file to OPML.

Export OPML from Google Podcasts

Unfortunately, if you haven't exported your podcasts from Google Podcasts before Google shut it down, you're out of luck.

Export OPML from Spotify

As of September 2024, Spotify does not offer an option to export podcasts to an OPML file.

Export OPML from YouTube Music

As of September 2024, YouTube Music does not offer an option to export podcasts to an OPML file.

How to import your podcasts from an OPML file?

Typically, podcast apps will have an OPML Import button/option in their Settings or Profile screen. Note that the biggest podcast apps — Apple Podcasts, Spotify and YouTube Music do not have an option to import OPML files.

For information on importing your podcasts to Metacast, see the section at the top of the post.

P.S. Why are we importing OPML manually?

A few people have asked us to import their podcasts via OPML, but we have been heads down working on other features, like playlists and transcripts.

We didn't want to upset our Premium users, so we tried importing OPML manually for a few users. After doing that, we realized just how complex the actual feature would be within our app's architecture.

There would have to be significant return on investment for the automated feature to be worth the time, so we decided to continue with the "Wizard of Oz" approach for a little longer.

Wizard of Oz is a "vaporware" technique that helps you learn about demand and technical complexity of a feature without actually implementing it. A canonical example is a chatbot that's manned by a human on the back office rather than an AI backend. You "manually" chat with users, learn what they want, identify key features and then build out the feature that meets customer needs.

We've created a set of command line scripts, a SQL query, a few lines of code that write to the production database, and a runbook.

Importing a file this way is tedious, but it helped us to:

  • Learn about the OPML format and weird edge cases
  • Identify a bug in the Metacast backend
  • Invent a new, unrelated feature
  • Satisfy early adopters

If you're ready to move your podcasts to Metacast, start a Premium trial and follow these instructions to get started.