Small, explicit CLI tool that converts Chrome bookmarks.html (or a plain
list of domains/URLs) into an OPML file with detected RSS/Atom feeds.
- Parse Chrome bookmarks HTML
- Or use a plain list of domains/URLs (one per line)
- Optional cleaning: strip
www,app,docs, and subdomains - Optional homepage simplification
- RSS/Atom discovery via
<link rel="alternate">+ fallback guesses - Multi-threaded fetching with progress output
- Export to OPML for NetNewsWire and other readers
- Python 3.9+
-
Export Chrome bookmarks as
bookmarks.html -
Run:
python3 bookmarks_to_rss.py \
--bookmarks /path/to/bookmarks.html \
--out feeds.opml \
--workers 10 \
--verbosepython3 bookmarks_to_rss.py \
--bookmarks /path/to/bookmarks.html \
--out feeds.opmlpython3 bookmarks_to_rss.py \
--domains-file /path/to/domains_or_urls.txt \
--out feeds.opmlStrip www, app, docs and optionally remove subdomains, then save the
resulting list.
python3 bookmarks_to_rss.py \
--bookmarks /path/to/bookmarks.html \
--clean-domains-out clean_domains.txt \
--strip-subdomains \
--list-onlyIf you already have a list, you can still clean it:
python3 bookmarks_to_rss.py \
--domains-file /path/to/domains_or_urls.txt \
--clean-domains-out clean_domains.txt \
--strip-subdomains \
--list-only--bookmarksPath to Chromebookmarks.html--domains-filePath to domain/URL list (one per line)--outOutput OPML path--workersConcurrent workers (default: 1)--timeoutHTTP timeout seconds (default: 8)--sleepDelay between requests (default: 0)--homepageSimplify URLs to homepage before discovery--strip-subdomainsKeep last two labels only (example:a.b.c.com->c.com)--clean-domains-outWrite cleaned domains to a file--list-onlyOutput URL list and exit--list-outWrite URL list to a file--verboseShow per-URL status
- This tool is intentionally minimal and explicit (no hidden side effects).
- OPML can be imported into NetNewsWire or any RSS reader.