Fetch slides from a URL
Run the fetch_slides.py script to download and convert slides:
uv run .agents/skills/fetch-slides/fetch_slides.py <url> <output_dir>
Arguments
url(required): URL of the slides. Supported formats:- Direct PDF URL (e.g., https://example.com/slides.pdf)
- PPTX URL (auto-detected via Content-Type header)
- OneDrive sharing link (e.g.,
https://onedrive.live.com/:p:/g/personal/...orhttps://1drv.ms/...) - RevealJS HTML presentation URL (e.g.,
https://example.com/slides/)
output_dir(required): Directory to save output files. Created if it doesn't exist.
Outputs
- slides.pdf — Always produced. The presentation as a PDF file.
- slides_content.md — Only for RevealJS presentations. Contains extracted text content and links from each slide, with section headings marked.
Prerequisites
- For PPTX conversion: LibreOffice must be installed
- macOS:
brew install --cask libreoffice - Ubuntu:
apt-get install libreoffice
- macOS:
- For RevealJS presentations: Playwright browsers must be installed
uv run playwright install chromium
How it works
- The script makes an HTTP HEAD request to detect the content type
- Based on the content type:
- PDF: Downloads directly
- PPTX: Downloads the file, then converts to PDF using LibreOffice (headless mode)
- OneDrive: Converts the sharing URL to a direct download URL (appends
?download=1), then handles as PDF or PPTX - RevealJS HTML: Uses Playwright to open the presentation with
?print-pdfappended, renders to PDF. Also parses the HTML to extract slide text content and links.