Skip to main content

Blogpack

Blog → Book!

Download entire blogs for offline reading. Generates PDF, EPUB, and HTML with working internal links and embedded images.

Absolutely ideal for long flights, distraction free reading, digital detoxes, or pretending you'll finally catch up on that Substack.

Works with Substack, Ghost and Wordpress blogs.

Installation

pip install blogpack

Note: PDF export requires additional system libraries. If PDF generation fails:

  • Ubuntu/Debian: sudo apt install libpango-1.0-0 libpangocairo-1.0-0
  • macOS: brew install pango
  • Windows: Install GTK3 from MSYS2

EPUB and HTML exports work without these dependencies.

Usage

blogpack https://www.cold-takes.com/

Downloads the blog to ./cold-takes/ with HTML, EPUB, and PDF formats.

Options

blogpack https://example.com/ -o ./my-folder   # Custom output directory
blogpack https://example.com/ -f epub          # Only generate EPUB
blogpack https://example.com/ -n 50            # Limit to 50 posts
blogpack https://example.com/ --no-images      # Skip images
blogpack https://example.com/ --no-verify-ssl  # Disable SSL verification

Web App

A browser-based interface is included in blogpack-web/.

Run Locally

cd blogpack-web
pip install -r requirements.txt
uvicorn app:app --reload
# Open http://localhost:8000

Deploy with Docker

docker build -t blogpack-web .
docker run -p 8000:8000 blogpack-web

Output Structure

<blog-name>/                  # Derived from blog URL
├── html/
│   ├── index.html           # Table of contents
│   ├── post-slug.html       # Individual posts
│   └── images/              # Downloaded images
├── <blog-name>-archive.epub # For e-readers
└── <blog-name>-archive.pdf  # Single PDF

License

GPL-3.0 - See LICENSE for details.

Metadata

Release files for blogpack 0.1.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for blogpack 0.1.4
File Size Uploaded
blogpack-0.1.4.tar.gz 68.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for blogpack 0.1.4
File Interpreter ABI Platform
blogpack-0.1.4-py3-none-any.whl Python 3 none any Details

Total release size: 96.7 kB

Release files / blogpack-0.1.4.tar.gz

Download URL blogpack-0.1.4.tar.gz
Size 68.0 kB
Tags Source
SHA-256 checksum
How to use checksums
df596a21ef2ad96e8e0aa1e13e500779509aa90f8c5b432a69120d3496647077
BLAKE2b-256 checksum
How to use checksums
48033ef66e8529af4f7655b90fa5de4a5d23ebaab66e3b822a2ff2df258e711e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.6

Release files / blogpack-0.1.4-py3-none-any.whl

Download URL blogpack-0.1.4-py3-none-any.whl
Size 28.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ede9ae2e7cb10b1d6a4bee319c0bc6f501792450f90b218e33388b32c05dd335
BLAKE2b-256 checksum
How to use checksums
afcfd3504e1a58bc3d8572e060cd03e33a675731da46c5f4610c95f4fda91933
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.6

Release history Release notifications | RSS feed

This release

0.1.4 This release

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page