Skip to content

Latest commit

 

History

History
93 lines (78 loc) · 2.32 KB

File metadata and controls

93 lines (78 loc) · 2.32 KB

Bookmarks to RSS (OPML)

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.

Features

  • 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

Requirements

  • Python 3.9+

Quick Start

  1. Export Chrome bookmarks as bookmarks.html

  2. Run:

python3 bookmarks_to_rss.py \
  --bookmarks /path/to/bookmarks.html \
  --out feeds.opml \
  --workers 10 \
  --verbose

Inputs

Bookmarks HTML

python3 bookmarks_to_rss.py \
  --bookmarks /path/to/bookmarks.html \
  --out feeds.opml

Domain/URL list

python3 bookmarks_to_rss.py \
  --domains-file /path/to/domains_or_urls.txt \
  --out feeds.opml

Cleaning domains before discovery

Strip 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-only

If 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

Options

  • --bookmarks Path to Chrome bookmarks.html
  • --domains-file Path to domain/URL list (one per line)
  • --out Output OPML path
  • --workers Concurrent workers (default: 1)
  • --timeout HTTP timeout seconds (default: 8)
  • --sleep Delay between requests (default: 0)
  • --homepage Simplify URLs to homepage before discovery
  • --strip-subdomains Keep last two labels only (example: a.b.c.com -> c.com)
  • --clean-domains-out Write cleaned domains to a file
  • --list-only Output URL list and exit
  • --list-out Write URL list to a file
  • --verbose Show per-URL status

Notes

  • This tool is intentionally minimal and explicit (no hidden side effects).
  • OPML can be imported into NetNewsWire or any RSS reader.