Download slide images from a public SlidesLive presentation or from a page that embeds one. The downloader discovers the presentation ID, reads the current JSON manifest when available, and falls back to the legacy XML manifest format.
It preserves the image format supplied by SlidesLive. Although many older presentations use JPG, current talks can use PNG.
python3 -m pip install -r requirements.txt
yt-dlp is optional and is only needed for --video:
python3 -m pip install -U yt-dlp
python3 slide_download.py <presentation-or-embedding-page-url> --output ./slides --acknowledge-rights
The command downloads all available slide images and writes:
slides/
├── metadata.json # talk, manifest, image URLs, and timecodes
├── slides.json # raw JSON or XML index returned by SlidesLive
└── slides/
├── 001.png
├── 002.png
└── ...
# Inspect the manifest only; do not write images.
python3 slide_download.py <url> --dry-run
# Also create slides.pdf after every image downloads successfully.
python3 slide_download.py <url> --pdf --acknowledge-rights
# Also hand the public video download to yt-dlp.
python3 slide_download.py <url> --video --acknowledge-rights
# Change download parallelism, retry count, or HTTP timeout.
python3 slide_download.py <url> --workers 2 --retries 3 --timeout 30
The tool does not delete downloaded images after producing a PDF. If any slide fails, it reports a non-zero exit code and does not generate a partial PDF.
- Current player-provided JSON manifests.
- Older JSON endpoints.
- Legacy XML manifests containing orderId, timeSec, and slideName.
The public SlidesLive player is consulted first so the tool does not rely only on a historical hard-coded endpoint.
python3 -m unittest discover -s tests -v
Tests are offline and mock both direct SlidesLive URLs and generic embedding pages.
本工具仅供个人学习与研究使用。请仅下载您有权保存的公开材料,并遵守版权法、 演讲者/发布者的权利及平台服务条款。工具不尝试绕过登录、付费墙、DRM 或其他访问 控制;实际下载需要显式传入 --acknowledge-rights。
MIT. See LICENSE.