OPML to CSV
BetaTurn an OPML export from Feedly, Inoreader, NetNewsWire or a podcast app into a CSV with one row per feed: title, feed URL, site URL and folder. Feeds are never fetched and nothing is uploaded.
- Free, no sign-up
- REST + MCP
- Updated
- Reviewed by Olgun Ozoktas
Adds a UTF-8 byte order mark so Excel shows accented feed titles correctly. Turn it off if a script reads the file.
One row per feed will appear here..
Why Use Our OPML to CSV Converter?
OPML, the Outline Processor Markup Language, is an XML format for outlines that feed readers adopted as the common way to export and import subscriptions. A subscription list is a body of outline elements: an outline with an xmlUrl attribute is a feed, and an outline that contains other outlines is a folder. The name lives in the text attribute, sometimes repeated in title, and the website address in htmlUrl.
OPML to CSV reads OPML 1.0 and 2.0 without a DOM. It walks the outline tree once, carries the folder path down to every feed, decodes XML entities in titles, and matches attribute names without regard to letter case, because exports write xmlUrl, xmlurl and XMLURL. A file that is not well-formed XML is refused with the parser's message instead of being half-converted; a syntax error such as an unescaped ampersand names its line number.
The CSV has six columns: title, xml_url, html_url, folder_path, description and type. By default only feeds become rows, and Include folder rows adds a row for each folder with the type folder. Nothing in the file is fetched, so no feed server learns which feeds you follow.
How it compares
Many online OPML converters take the file as an upload. OPML to CSV keeps the subscription list in the tab, fetches nothing, and keeps the folder structure in its own column instead of flattening it away.
OPML Conversion Tips
- xml_url is the feed address a reader subscribes to; html_url is the website the feed belongs to. They are different addresses and both are kept.
- Folders become a folder_path joined with a slash and spaces, such as Tech / Web, so nested folders survive in a single column.
- An outline with a url attribute instead of xmlUrl, which OPML uses for plain links, is written with that address in html_url and its type, usually link, in the type column.
- Feed URLs are copied, not checked. A dead feed stays in the list, which is what you want when auditing.
- Keep Excel BOM on when the CSV will open in Excel, so accented feed titles display correctly.