RSS, Atom, OPML and M3U: The Small Formats That Keep the Open Web Working
Feeds and playlists are lists of links with a little structure, and they are how you leave a platform without leaving your subscriptions behind. What each holds and how to move them.
A handful of small formats quietly hold the open web together. RSS and Atom deliver articles and podcast episodes. OPML carries a list of subscriptions from one reader to another. M3U describes a playlist. None of them are complicated, and all of them exist so that a list you built is not trapped in the application you built it in.
RSS and Atom: the same job, twice#
RSS came first and won on adoption. Atom was designed later to fix its ambiguities and is the more rigorous specification. Every reader handles both, and the practical difference is mostly which one a publisher happened to choose. Convert Atom to RSS when something insists on the older shape, or convert RSS to JSON Feed when you would rather work with JSON than XML.
A feed is a snapshot rather than an archive. It holds the most recent items the publisher chose to include, typically ten to fifty. Converting one gives you those items, not the whole history of the site, and no converter can retrieve what the feed never carried.
OPML: the subscription list, and why it matters#
OPML is an outline format, and in practice it is used for one thing: exporting the list of feeds you subscribe to. Every serious feed reader imports and exports it, which is what makes switching readers possible at all. Convert OPML to JSON to see the list as data, or to fold it into something else.
M3U: a playlist is a list of paths#
An M3U file contains paths or URLs, one per line, optionally with duration and title metadata. M3U8 is the same thing in UTF-8, which matters the moment a track has a non-English character in its name. Convert M3U to JSON to work with a playlist as data.
The thing that surprises people is that a playlist contains no audio. It points at files. Copy a playlist to another machine without the files, or with the files in a different folder, and it points at nothing. Relative paths travel better than absolute ones for exactly this reason.
What they have in common#
- They are all plain text, so opening one in an editor to see what it holds costs nothing.
- They are all lists of references rather than content, so the thing they point at has to exist separately.
- They are all portable on purpose, which is what makes them worth using at all.
- None of them carry your reading or listening history; they carry the list, not the behaviour.
Once a feed or a playlist is JSON, the ordinary data guides apply: see CSV, JSON and Excel conversions for getting it into a spreadsheet, or the config formats guide for reshaping it.
Troubleshooting
A feed carries the most recent items the publisher chose to include, not an archive. The rest was never in the file.
It contains paths, not audio. The files have to exist at those paths; relative paths survive a move far better than absolute ones.
Plain M3U is not necessarily UTF-8. Use M3U8, which is, when names contain non-English characters.
Exports vary in how they nest folders. Flatten the outline or check the file in a text editor for an unexpected structure.
Frequently asked questions
What is the difference between RSS and Atom?
They do the same job. RSS came first and won on adoption; Atom was specified later and more rigorously. Every reader handles both, so the choice is usually the publisher's rather than yours.
What is OPML actually for?
In practice, exporting the list of feeds you subscribe to so you can move it to another reader. It is the reason switching feed readers is possible at all.
Does a playlist contain the music?
No. It contains paths or URLs pointing at files. Move the playlist without the files and it points at nothing.
Can I get a site's full archive from its feed?
No. A feed is a snapshot of recent items, typically ten to fifty. Anything older was never in the file for a converter to find.
Is my subscription list uploaded?
No. It is converted in your browser. What a person reads is a fair proxy for their politics, health and employer, so the list staying local is the point rather than a detail.