Download O'Reilly Learning video lessons as real mp4 files. Paste a lesson URL or a course-root URL — a course-root downloads every lesson in the course, in order; a single lesson downloads just that one file.
ffmpeg must be on PATH — it does the actual mux/remux of every
downloaded lesson. Install it with your OS package manager first (e.g.
apt install ffmpeg, brew install ffmpeg).
pip install -e ".[dev]"
playwright install chromium
oreilly-video <url> [<url>...] --out <dest-dir>
First run opens a browser window for an interactive O'Reilly login; the
session is saved to ~/.config/oreilly-video/storage_state.json (override
with --storage-state or $OREILLY_VIDEO_STORAGE_STATE) and reused on
every later run. That file is never part of this repo — it lives outside
the project tree by design.
A course-root URL produces <dest-dir>/<course-slug>/01-<lesson-slug>.mp4,
02-..., etc., in table-of-contents order. A single-lesson URL produces
<dest-dir>/<lesson-slug>.mp4 with no subfolder.
Always downloads the highest available quality (stream copy, no re-encode). No subtitles, no quality picker, no search — URL in, mp4(s) out. A course batch aborts on the first lesson failure rather than leaving a partial course on disk.
pytest