Skip to content

Latest commit

Β 

History

85 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

License: MIT Python uv GitHub stars GitHub forks GitHub contributors

O'Reilly Offline Downloader & Library

A powerful, high-performance Python CLI for downloading O'Reilly Learning courses, books, and audiobooks for offline personal use. It supports video courses, EPUB generation, audiobook downloads, interactive web readers, transcripts, and a premium offline library dashboard.

Architecture: The project is built as a modern Python package managed with uv, providing fast dependency management, clean installation, and cross-platform support.


✨ Features

Downloading

  • Download complete O'Reilly video courses
  • Download audiobooks as high-quality .m4a
  • Download books as standard .epub
  • Generate interactive offline HTML web readers
  • Extract timestamped video transcripts
  • Transcripts-only mode for fast text extraction

Offline Library

  • Premium Apple Books-inspired dashboard
  • Automatic library indexing
  • Fast search
  • Reading progress
  • Persistent custom tags
  • Keyboard navigation
  • Dark & Light themes
  • Automatic cover image detection

Downloader Engine

  • API-first resolver
  • Selenium fallback
  • Manual login mode
  • Persistent browser profiles
  • Parallel downloads
  • Dead Letter Queue logging
  • Detailed debug logging

πŸš€ Quick Start

Requirements

  • Python 3.12+
  • uv
  • ffmpeg

Install uv

# Windows
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

# Linux/macOS
curl -LsSf https://astral.sh/uv/install.sh | sh

Install ffmpeg

# Windows
choco install ffmpeg

# macOS
brew install ffmpeg

# Ubuntu/Debian
sudo apt install ffmpeg

Usage

Download a Course

uv run oreilly-dl "COURSE_URL"

Download an EPUB

uv run oreilly-dl "BOOK_URL"

Download with Interactive Web Reader

uv run oreilly-dl "BOOK_URL" --web-viewer

Books downloaded using --web-viewer are automatically registered inside the Offline Library Dashboard.

Download an Audiobook

uv run oreilly-dl "AUDIOBOOK_URL" --audiobook

Transcripts Only

uv run oreilly-dl "COURSE_URL" --transcripts-only

Manual Login

uv run oreilly-dl --manual-login

πŸ›οΈ Offline Library Dashboard

The Offline Library Dashboard provides a centralized interface for browsing, organizing, and reading downloaded books.

πŸ“Έ Screenshot Gallery

Unified Library Dashboard

Library Dashboard Overview

Metadata Inspector Drawer

Library Dashboard Inspector Drawer

Interactive Local eBook Reader

Interactive Local eBook Reader

Features

  • Apple Books-inspired design
  • Fast search
  • Metadata inspector
  • Custom tag editing
  • Keyboard shortcuts
  • Responsive layout
  • Automatic cover detection

Keyboard Shortcuts

Key Action


↑ / ↓ Navigate books Space Toggle details drawer Enter Open reader / or Ctrl+K Focus search ? Show keyboard shortcuts

πŸš€ Launching the Offline Library

After downloading one or more books with the --web-viewer option, the Offline Library Dashboard is generated under:

downloads/
└── books/
    β”œβ”€β”€ data/
    β”œβ”€β”€ index.html
    β”œβ”€β”€ library_state.json
    β”œβ”€β”€ serve_library.py
    β”œβ”€β”€ start_library.bat
    └── start_library.sh

To start the local library server:

  • Windows: Double-click start_library.bat
  • Linux/macOS: Run ./start_library.sh

The launcher starts a lightweight local web server and automatically opens the Offline Library Dashboard in your default browser.

Note: The dashboard is generated for books downloaded using the --web-viewer option.


πŸ“ Output Structure

downloads/
β”œβ”€β”€ books/
β”‚   β”œβ”€β”€ data/                    # Downloaded EPUBs & Web Reader assets
β”‚   β”œβ”€β”€ index.html               # Offline Library Dashboard
β”‚   β”œβ”€β”€ library_state.json       # Library metadata & custom tags
β”‚   β”œβ”€β”€ serve_library.py         # Local HTTP server
β”‚   β”œβ”€β”€ start_library.bat        # Windows launcher
β”‚   └── start_library.sh         # Linux/macOS launcher
β”œβ”€β”€ courses/                     # Video & audio course downloads
└── audiobooks/                  # Audiobook downloads (.m4a)

The launcher scripts provide the easiest way to start the Offline Library Dashboard:

  • Windows: start_library.bat
  • Linux/macOS: ./start_library.sh

πŸ§ͺ Running Tests

uv run pytest

βš™οΈ Command Line Help

uv run oreilly-dl --help

πŸ”§ Troubleshooting

Authentication Issues

uv run oreilly-dl --manual-login

Video Download Issues

Verify that ffmpeg is installed and available in your system PATH.

Debug Logging

uv run oreilly-dl "COURSE_URL" --debug

⚠️ Disclaimer

This project is intended for educational purposes and personal offline archiving. Users are responsible for complying with O'Reilly Media's Terms of Service and applicable copyright laws.


πŸ“„ License

MIT License.

About

Download complete O'Reilly courses with automatic organization - videos and transcripts

Topics

Resources

Stars

31 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages