Campus EZProxy¶
Publisher sites (Elsevier ScienceDirect, Springer Nature, Wiley, JSTOR, …) normally require a subscription. If your university or research library offers EZProxy (or a similar “login?url=” redirector), paperful can download those PDFs using your existing library entitlement.
What EZProxy will try¶
The campus proxy is only used where a library stanza can actually return a PDF:
Item has… |
EZProxy? |
|---|---|
A DOI |
Yes — target is |
A URL on a known publisher host, and no DOI |
Yes — the URL is wrapped in |
Only a YouTube / |
No |
Only an NGO, UN, or government page (FAO, High Seas Alliance, G77, …) |
No — public sites are not in EZProxy databases. |
Known publisher hosts (suffix match) include ScienceDirect / Elsevier, Springer Nature, Wiley, JSTOR, Taylor & Francis, Sage, Oxford, Cambridge, IEEE, ACM, Science, Cell, Lancet, NEJM, BMJ, PNAS, Annual Reviews, IOP, APS, RSC, ACS, AIP, Frontiers, MDPI, PLOS, Hindawi, De Gruyter, Brill, Emerald, SSRN, Ingenta, ProQuest, EBSCO, OECD / UN iLibrary, Project MUSE, HeinOnline, Westlaw, LexisNexis, Cairn, Érudit, OpenEdition, Persée, Dalloz, JAMA, World Scientific, MIT Press Direct, Chicago journals, Cochrane, Ovid, and BioOne.
The canonical list is _EZPROXY_PUBLISHER_HOSTS in paperful/routing.py.
--try-all does not wrap YouTube or other non-publisher URLs.
The tool never asks for or stores your institutional password. You log in
once in headed Chromium (paperful session login ezproxy); run reuses that
vault and exported cookies until the campus session expires.
1. Find your library’s EZProxy base URL¶
Ask your library website for “EZProxy”, “off-campus access”, or “proxy bookmarklet”, or try the pattern many OCLC sites use:
https://<your-prefix>.idm.oclc.org/login?url=
Examples (illustrative only — use your institution’s URL):
Institution (example) |
Typical |
|---|---|
Sciences Po |
|
Other OCLC EZProxy |
|
The value must be the prefix that, when a target URL is appended, starts login. A quick check in the browser: open
https://<your-prefix>.idm.oclc.org/login?url=https://www.sciencedirect.com/
You should land on your university’s single sign-on (CAS, Shibboleth, Microsoft, etc.). After login you should reach ScienceDirect (or an error from the publisher if your library does not subscribe — the login itself still proves the proxy URL is correct).
Some libraries use a hostname-rewriting proxy without login?url= (e.g.
www-sciencedirect-com.proxy.example.edu). This tool expects the
login?url= form. If your library only offers rewriting, ask them for the
“start URL” / bookmarklet form, or leave EZProxy disabled.
2. Put the URL in config.toml¶
ezproxy_base = "https://YOUR-PREFIX.idm.oclc.org/login?url="
# optional — default is already state/ezproxy-cookies.txt under state_dir:
# ezproxy_cookies = "state/ezproxy-cookies.txt"
sources = [
"unpaywall", "openalex", "arxiv", "biorxiv", "europepmc", "semanticscholar",
"core", "scholar", "direct", "ezproxy", "htmlpdf",
]
If you later opt in to Sci-Hub, keep ezproxy before "scihub" so
institutional access is preferred when both could work.
3. Log in (session vault)¶
uv sync --extra htmlpdf
uv run playwright install chromium # or: playwright install chrome
uv run paperful session login ezproxy
paperful ezproxy does the same when Playwright is installed. Complete campus
SSO in the window that opens, then press Enter in the terminal. Cookies are
written under state/sessions/ (and compat state/ezproxy-cookies.txt).
Never commit that directory.
4. Verify the session¶
uv run paperful ezproxy --no-open
Success looks like Session OK. If not, run session login ezproxy again.
5. Run (or retry) downloads¶
New runs pick up EZProxy when ezproxy is in sources and the session is
valid:
uv run paperful run --collection YOUR_COLLECTION
Items already marked not_found from an earlier run are not retried
unless you ask:
uv run paperful run --collection YOUR_COLLECTION --retry-failed
6. When the session expires¶
Library SSO typically lasts hours to a few days. When EZProxy starts failing
you will see ezproxy:error(ezproxy session expired…) in paperful report.
Fix: paperful session login ezproxy, then --retry-failed if needed.
Alternatives and limits¶
Campus VPN: if VPN alone gives you full publisher access without EZProxy, you can leave
ezproxy_baseempty and still use OA sources (and Sci-Hub only if you opt in); VPN does not replace a session for this tool’s EZProxy source.No subscription: EZProxy cannot unlock journals your library does not license.
Non-publisher URLs: YouTube, Zotero, FAO, and similar pages are never proxied — see What EZProxy will try. Public UN / process PDFs go through
direct(URL rewrites) thenhtmlpdf.Google Scholar: solve CAPTCHA in
paperful session login scholar(same Chromium profile used duringrun). Cookie-only export is often not enough.arXiv: already in the default list (by arXiv id,
10.48550/arxiv.…DOI, or strict title match).bioRxiv / medRxiv:
10.1101/…DOIs via the Cold Spring Harbor details API; PDF URL built from the latest version.Europe PMC: OA PDF links (including
?pdf=render) for PubMed Central deposits, by DOI.