# OPML Converter & Editor (OPML Studio)

Paste OPML (the RSS subscription list format) or choose a file to see feed and folder counts, duplicate feed URLs and broken URLs. After removing duplicates or flattening folders, convert to CSV, JSON or Markdown, or save as OPML. Feed contents are never fetched.

- URL: https://tools.itlibra.com/en/opml-studio
- On-device・No upload
- Last updated: 2026-10-26

## How to use

1. Paste OPML, or choose a .opml or .xml file. A CSV or a list of URLs (one per line) also works and is turned into OPML.
2. Press Load to see feed and folder counts, duplicates and broken URLs. Try a sample first if you like.
3. Tick the feeds to remove and press Remove selected, or use Remove duplicates, Flatten folders and Sort by title.
4. Paste a second OPML into Merge to combine both lists and drop duplicates.
5. Open Convert to check CSV, JSON or Markdown, then copy or save. To keep the result as OPML, use Save OPML.

## Use cases

- Reduce duplicates and broken URLs before moving to another RSS reader
- Check a list of RSS subscriptions in a spreadsheet
- Combine the subscription lists from two devices
- Turn a feed list into Markdown for a note or blog post

## What it does

### Reads OPML 2.0 as specified

Nested outlines become folders, and an outline with xmlUrl becomes a feed (opml.org, OPML 2.0). Attributes such as title, text and htmlUrl are written back in the order they were read.

### Duplicates found by feed URL

Feeds with the same xmlUrl are duplicates. Surrounding spaces, the case of the host name, a trailing slash and anything after # do not make a difference. Different titles with the same URL are still duplicates.

### Edited on your device

Remove duplicates, flatten folders, sort by title, remove selected feeds and merge two OPML files, all in your browser. Nothing is uploaded.

### Safe reading

Files that contain a DOCTYPE or ENTITY declaration are refused. External entities are never resolved, and the text is never drawn as HTML.

### Spreadsheet and Markdown output

CSV has title, feed URL, site URL and folder columns. Values that begin with = or + get a leading apostrophe so that a spreadsheet does not run them as formulas.


## Capability matrix

| Feature | Support | Notes |
| --- | --- | --- |
| Reading OPML (1.0 and 2.0 style files) | Supported | Any version value is read: outlines in the body are used |
| List and counts of folders and feeds | Supported | — |
| Detection of duplicates, missing xmlUrl and malformed URLs | Supported | — |
| Remove duplicates, flatten folders, sort, merge | Supported | — |
| Conversion to CSV, JSON and Markdown | Supported | — |
| Saving as OPML 2.0 | Supported | Attributes that were read are written back as they were |
| Creating OPML from a CSV or a list of URLs | Partial | Without a title column the URL is used as the title |
| Fetching feed contents (articles, update dates) | Not supported | No network access. Check articles in your reader |
| Checking whether a feed URL is reachable or still active | Not supported | Not possible without connecting |
| OPML containing a DOCTYPE or ENTITY | Not supported | Refused for safety |
| Single Atom files, JSON Feed, or importing from a site | Not supported | Only OPML and CSV or URL lists are supported |

## Limits & notes

- Input is limited to 2 MB, and to 5,000 feeds.
- The table shows up to 300 feeds (the counts cover every feed).
- When merging, the title and format come from the first OPML.
- CSV headers are recognised by words such as URL, title, site and folder. If none is found, each line is read as one URL.

## Privacy & safety

OPML content is handled only in your browser and never sent anywhere. The tool does not connect to feed URLs.

## FAQ

### What is OPML?

OPML is an XML format that stores a list of RSS subscriptions, including nested folders. Many RSS readers can export and import it. This tool reads OPML, tidies it, and converts it to CSV and other formats.

### How do I convert OPML to CSV?

Paste or open the OPML, choose CSV under Convert, then copy or save it. The columns are title, feed URL, site URL and folder.

### Can I make OPML from a list of URLs?

Yes. Paste one URL per line, or a CSV with headers such as URL, title and folder. Only http and https URLs are used; other lines are counted and skipped.

### How are duplicate feeds found?

Feeds with the same xmlUrl (the feed address) are duplicates, even when their titles differ. A trailing slash or anything after # is not treated as a difference.

### Can I check new articles here?

No. The tool never fetches feeds; it works only with the list. Check new articles in your RSS reader.
