Podcast Migration Checker
Pricing
$0.25 / podcast migration comparison
Podcast Migration Checker
Compare old and new podcast RSS feeds for lost episodes, changed GUIDs, and migration redirect mistakes. Get actionable findings before or after switching hosts.
Pricing
$0.25 / podcast migration comparison
Rating
0.0
(0)
Developer
Jacob Fritz
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Moving a podcast between hosts? Compare the old and new public RSS feeds before cutover, then check the redirect after cutover. The report identifies episodes missing from the new feed, likely changed GUIDs, duplicate GUIDs, and missing audio enclosure URLs. It gives you a row for each finding, a suggested fix, and a summary you can export as JSON, CSV, or Excel.
Apple warns that changing episode GUIDs can create duplicate episodes and disrupt analytics. For a self-hosted migration, Apple calls for an HTTP 301 redirect from the old feed and an <itunes:new-feed-url> tag in the new feed, kept for at least four weeks. This Actor checks those signals; it is not affiliated with Apple and cannot guarantee directory acceptance. Apple's migration guidance.
Before moving
- Enter the current and planned public RSS 2.0 feed URLs.
- Leave Migration already switched on off.
- Review missing episodes and GUID findings. Preserve the old GUID for each existing episode, even when its title or audio URL changes.
- Save a copy of the old feed XML before switching hosts. You can paste it into Old feed XML snapshot later if the old URL starts redirecting.
After moving
- Enter the same two URLs and switch Migration already switched on on.
- If the old URL redirects to the new feed, paste the saved old-feed XML snapshot. A redirect makes the old catalog unavailable at that URL, so the snapshot is necessary to compare episode identities.
- Check the old URL's first HTTP response, final destination, the new-feed tag, and episode findings. Keep the redirect and tag for at least four weeks, according to Apple's guidance.
If the old URL is broken but you have its XML snapshot, the episode comparison still runs and reports the redirect failure. The Actor does not store the snapshot in its output.
Sample and pricing
The prefilled NASA URLs are intentionally identical: they demonstrate the report and are not a real migration. With the snapshot empty and the migration switch off, this sample has no custom comparison charge. For an actual migration, enter the old and new public feeds for the same show. A run with a supplied old-feed XML snapshot is a completed comparison and triggers the custom event, even if the two URL fields match. The Store Pricing tab shows the live pay-per-completed-comparison price. A failed fetch, malformed feed, or comparison blocked before a report does not trigger the custom event. Platform usage is included in the event price.
Output
The first dataset row summarizes preserved, likely changed, missing, and unverifiable episode GUIDs. Later rows contain actionable findings such as GUID_CHANGED, EPISODE_MISSING, NEW_GUID_DUPLICATE, OLD_FEED_301_MISSING, and NEW_FEED_TAG_WRONG. A title and publish-day match is only evidence of a likely GUID change; review it against the original show records. An old episode without a GUID cannot be verified automatically.
Limits
- Public, unauthenticated HTTP(S) RSS 2.0 feeds only. No login, proxy, paid API, or audio download.
- Each feed is limited to 5 MB and three redirects, and each comparison to 2,000 episodes per feed. Oversized or unreadable feeds stop without a custom comparison charge.
- The report shows at most 300 finding rows, while summary counts include all findings.
- The checker reads published feed metadata. It does not confirm that an audio file plays, that every podcast app has updated its cache, or that a directory has accepted the move.
- Private addresses, embedded credentials, common tokenized URLs, and custom ports are rejected. Feed query strings and pasted XML are omitted from output and logs.
For a questionable finding, open an Actor issue with the Apify run ID and public feed URLs. Do not include private feeds, credentials, or customer data.