An OPML file can help someone move a podcast list, but reading the file is only the first step. Its entries may contain duplicates, old feed addresses, folders, or values your catalog cannot resolve.

A preview lets the listener understand the result before hundreds of follows change at once.

Divide the result into clear groups

Show entries that can be matched, entries already followed, duplicates inside the file, and entries that need attention. Keep the original title and feed address available for review without treating either as a guaranteed catalog identity.

Do not silently discard unresolved feeds. An explicit “Could not match” group helps the user decide whether to try another address or keep a record for later. Avoid promising that every feed in a file will exist in every catalog.

Let the listener confirm the intended change. If your API supports a documented import operation, follow its response model and limits. If you perform several operations, show partial completion honestly and keep retry behavior attached to the items that remain.

Use a mixed fixture

Create a small test file containing one valid show, a repeated entry, a folder, an old address, and a malformed outline. The preview should explain each case in ordinary language.

Check file-size and entry-count limits before starting a long job. Treat XML input as untrusted and configure parsing safely. A useful import should not become an unlimited memory task or an external-resource fetch.

Keep the original file separate from any normalized result while the review is in progress. That makes it easier to explain a mismatch and avoids replacing the listener's input with a guess.