| name | scribd-document |
| description | Download all pages from a Scribd document as images. Use when the user shares a scribd.com URL and wants to save, download, archive, or extract the pages/images of a Scribd document. |
Download Scribd Document
Download all page images from a Scribd document via its embed view.
Browser — always gstack, never headless
Browser work goes through the gstack browser, which holds the user's logged-in
sessions. A fresh Playwright instance is logged out: it silently returns login walls
or truncated content that looks like a successful capture.
B="$HOME/.claude/skills/gstack/browse/dist/browse"
"$B" connect
"$B" goto "<url>"
"$B" js '<expression>'
Do NOT disconnect when done. browse disconnect tears down the daemon and
the logged-in sessions with it. Leave it running — the daemon is a shared user
resource, connect is safe to call again, and only whoever started it should
close it.
Never launch a headless browser. Not headless=True, not --headless, not a
fresh chromium.launch(). If gstack is unavailable, stop and say so rather than
falling back — a logged-out capture is worse than no capture, because it looks fine.
Arguments
$ARGUMENTS should contain: <url> [output_dir]
Instructions
Run the Scribd extractor script with a 10-minute timeout (large documents can take several minutes to scroll and download):
python3 ${CLAUDE_PLUGIN_ROOT}/scripts/scribd_extractor.py $ARGUMENTS
IMPORTANT: When running this via the Bash tool, set timeout: 600000 (10 minutes).
If httpx or playwright are not installed, install them first:
pip3 install httpx playwright
python3 -m playwright install chromium
The script handles everything:
- Converts the Scribd URL to its embed form (
/embeds/{id}/content)
- Drives the gstack browser (headed, via
_browse.py) to the embed — never a headless instance, which would return a login wall for any gated document
- Reads the toolbar to detect total page count
- Scrolls through the document to trigger lazy loading of all pages
- Runs targeted scrolling passes for any pages that didn't load
- Downloads all page images as zero-padded
.jpg files
Verification
After the script finishes:
- Count the
.jpg files in the output directory
- Compare against the total page count reported by the script
- Report any gaps to the user
Notes
- The script is idempotent — re-running skips already-downloaded pages
- Filenames are zero-padded (
page_0001.jpg) for correct sort order
- Output directory defaults to
./scribd_output if not specified
- The script prints status to stderr and the output directory path to stdout
Example Usage
/fetch:scribd-document https://www.scribd.com/document/123456789/Sample-Document-Title
/fetch:scribd-document https://www.scribd.com/document/123456789/Sample-Document-Title ./my-book