Paper PDF Download
Use the paper-pdf CLI to retrieve papers independently and silently. Do not invoke or require InstSci.
If the console-script directory is not on PATH, replace paper-pdf in the examples with python -m paper_pdf.
Default workflow
Collect DOI values from the request, text file, BibTeX, CSV, Markdown, or prior search result.
Run paper-pdf doctor. If CloakBrowser is missing, explain the browser-extra installation instead of substituting an unverified generic scraper.
Start with the silent resumable route:
paper-pdf download --file dois.txt --output ./library --workers 1
Treat only success and skipped_existing as PDF completion. A file named unverified.pdf is evidence for review, not success.
Report the completion count, status count, and absolute output directory. Name any challenge_required, auth_required, blocked, session_limit, or unverified_pdf items explicitly.
If Markdown was requested, invoke the paper-pdf-to-markdown skill only after retrieval has produced verified paper.pdf files.
Silent and interactive modes
- Default mode is headless. It never operates CAPTCHA controls and continues to the next DOI when a challenge persists.
- Add
--interactive only when the user explicitly permits a visible manual handoff. The user personally completes CAPTCHA, SSO, or OTP; then the persistent publisher profile resumes.
- Do not loop challenges, claim universal bypass, or call an unverified response a PDF.
Batch and publisher behavior
- The downloader first tries eligible silent HTTP, OA, and configured publisher-API routes, then reuses one persistent CloakBrowser profile per publisher.
--workers controls concurrent publisher sessions. Keep 1 unless the local CloakBrowser license and the institution's policy allow more sessions.
- The downloader isolates publishers so cookies, anti-bot state, and institutional sessions do not leak across unrelated sites.
- Mixed DOI files are accepted directly; the CLI performs publisher grouping.
Read publisher-support.md when diagnosing a site or explaining coverage. Read configuration.md when institution routing, VPN interaction, Elsevier API, profiles, or private overrides are relevant.
Verification contract
A paper.pdf must:
- contain a structurally parseable PDF;
- match the requested DOI or a high-confidence expected title;
- not be labelled supplementary, supplemental, or supporting material;
- have its SHA-256, size, page count, route, and verification method recorded in
manifest.json.
Keep the user's authorized-access boundary. Do not request passwords, export cookies, redistribute subscription files, automate human verification, or describe the workflow as paywall breaking.
1---2name: paper-pdf-download3description: Silently batch-download research-paper PDFs by DOI from major publishers using authorized open, institutional, campus, library, or publisher-API access. Verifies the requested main article, rejects supplements, records challenge/auth states, resumes batches, and can hand verified PDFs to the optional paper-pdf-to-markdown skill. Use when the user asks to download, fetch, save, or batch-retrieve paper PDFs or DOI lists.4---56# Paper PDF Download78Use the `paper-pdf` CLI to retrieve papers independently and silently. Do not invoke or require InstSci.910If the console-script directory is not on `PATH`, replace `paper-pdf` in the examples with `python -m paper_pdf`.1112## Default workflow13141. Collect DOI values from the request, text file, BibTeX, CSV, Markdown, or prior search result.152. Run `paper-pdf doctor`. If CloakBrowser is missing, explain the browser-extra installation instead of substituting an unverified generic scraper.163. Start with the silent resumable route:1718 ```bash19 paper-pdf download --file dois.txt --output ./library --workers 120 ```21224. Treat only `success` and `skipped_existing` as PDF completion. A file named `unverified.pdf` is evidence for review, not success.235. Report the completion count, status count, and absolute output directory. Name any `challenge_required`, `auth_required`, `blocked`, `session_limit`, or `unverified_pdf` items explicitly.246. If Markdown was requested, invoke the `paper-pdf-to-markdown` skill only after retrieval has produced verified `paper.pdf` files.2526## Silent and interactive modes2728- Default mode is headless. It never operates CAPTCHA controls and continues to the next DOI when a challenge persists.29- Add `--interactive` only when the user explicitly permits a visible manual handoff. The user personally completes CAPTCHA, SSO, or OTP; then the persistent publisher profile resumes.30- Do not loop challenges, claim universal bypass, or call an unverified response a PDF.3132## Batch and publisher behavior3334- The downloader first tries eligible silent HTTP, OA, and configured publisher-API routes, then reuses one persistent CloakBrowser profile per publisher.35- `--workers` controls concurrent publisher sessions. Keep `1` unless the local CloakBrowser license and the institution's policy allow more sessions.36- The downloader isolates publishers so cookies, anti-bot state, and institutional sessions do not leak across unrelated sites.37- Mixed DOI files are accepted directly; the CLI performs publisher grouping.3839Read [publisher-support.md](references/publisher-support.md) when diagnosing a site or explaining coverage. Read [configuration.md](references/configuration.md) when institution routing, VPN interaction, Elsevier API, profiles, or private overrides are relevant.4041## Verification contract4243A `paper.pdf` must:4445- contain a structurally parseable PDF;46- match the requested DOI or a high-confidence expected title;47- not be labelled supplementary, supplemental, or supporting material;48- have its SHA-256, size, page count, route, and verification method recorded in `manifest.json`.4950Keep the user's authorized-access boundary. Do not request passwords, export cookies, redistribute subscription files, automate human verification, or describe the workflow as paywall breaking.