fetch-slides

Installation
SKILL.md

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/... or https://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
  • For RevealJS presentations: Playwright browsers must be installed
    • uv run playwright install chromium

How it works

  1. The script makes an HTTP HEAD request to detect the content type
  2. 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-pdf appended, renders to PDF. Also parses the HTML to extract slide text content and links.
Related skills
Installs
14
GitHub Stars
70
First Seen
11 days ago