Skip to content

Releases: snapsynapse/substack2md

v1.1.0 — Initial Release

27 Feb 23:51

Choose a tag to compare

What is substack2md?

Convert any Substack post to clean, Obsidian-friendly Markdown — using your own authenticated browser session via Chrome DevTools Protocol (CDP). No API keys, no passwords stored, no scraping hacks.

Features

  • Authenticated via CDP — uses your already-logged-in browser, so paywalled posts just work
    • Batch processing — pass a single URL or a text file with hundreds of URLs
    • Obsidian wikilinks — internal cross-references are automatically rewritten as [[slug]] links
    • Rich frontmatter — title, author, publication, dates, tags, canonical URL, and more
    • Publication folders — output is organized by publication with configurable name mappings
    • Transcript cleaning — strips timestamps and speaker labels from podcast transcripts
    • Polite by default — configurable sleep between requests

Supported Browsers

  • Brave (recommended)
    • Chrome (Intel & Apple Silicon)

Requirements

  • Python 3.8+
    • Dependencies: websocket-client, beautifulsoup4, readability-lxml, markdownify

Quick Start

git clone https://github.com/snapsynapse/substack2md.git
cd substack2md
pip install -r requirements.txt
python substack2md.py https://example.substack.com/p/some-post

See the README for full setup instructions including how to launch your browser with remote debugging enabled.