Clean and dedupe an OPML podcast list

Paste or upload OPML, review duplicate subscriptions, flag missing or invalid feed links, and export a cleaner file. Everything runs locally in your browser.

Drop an OPML file here or click to browse .opml, .xml, or .txt
or paste OPML
What transfers

OPML is a subscription list

OPML moves supported podcast subscription lists between apps. Playback history, progress, downloads, queue order, account data, private app state, and app-specific settings may not transfer.

FAQ

OPML cleanup notes

How are duplicates detected?

The tool compares normalized RSS feed URLs first. If a feed URL is missing or unusable, it falls back to a normalized podcast title so you can review likely duplicates manually.

Does my OPML leave this page?

No. Parsing, duplicate detection, preview, copy, and download all run in the browser. The tool does not upload your OPML to a server.

What is excluded from the cleaned export?

Removed subscriptions and entries without a valid http or https RSS feed URL are excluded. Entries with an invalid website URL are kept if the feed URL itself is valid, but the invalid website field is omitted from export.

App connection

Clean the portable subscription layer before switching apps.

The cleanup tool supports the same OPML boundary as The Podcast App: subscriptions can move, but progress, downloads, queue order, account data, and private app state usually do not. Cleaning duplicates before import keeps the first app session easier to review and prevents stale feeds from making a new podcast library feel broken on day one.