SuperAPI AI Directory

sci-download

Writing & research

View repository

Updated 10-16 03:25

About this skill

Sci-Download — Unified Paper Download Skill

Academic paper PDF download tool with intelligent DOI routing across 8 sources.

Trigger Phrases

  • "Download this paper 10.1038/s41586-023-06600-9"
  • "download paper by DOI"
  • "Download from arXiv 2301.07041"
  • "Download CNKI paper"

Capabilities

Source Type Auth Coverage
Elsevier/ScienceDirect API API Key Elsevier journals
Springer Nature API API Key Springer/Nature OA
IEEE Xplore API API Key IEEE/IET
arXiv Direct None Physics/CS/Math preprints
Unpaywall API Email only Any DOI → OA version
Semantic Scholar API None Cross-source OA aggregation
PubMed Central Direct None Biomedical OA
CNKI (CNKI) FSSO/WebVPN University account Chinese journals/theses

Auto-Routing

The CLI automatically selects the source based on identifier format:

10.1016/... → Elsevier
10.1038/... → Springer Nature
10.1007/... → Springer Nature
10.1109/... → IEEE Xplore
2301.07041  → arXiv
PMC1234567  → PubMed Central
12345678    → PubMed (PMID)
中文关键词   → CNKI
Other DOI   → Unpaywall → Semantic Scholar (waterfall)

Usage

Main script: ./sci_download.py

# Auto-route by DOI prefix
python skills/sci-download/sci_download.py "10.1038/s41586-023-06600-9"

# Download arXiv paper (auto-detected)
python skills/sci-download/sci_download.py "2301.07041"

# Force a specific source
python skills/sci-download/sci_download.py "10.1021/acs.nanolett.3c00123" --source unpaywall

# Search papers (requires --source)
python skills/sci-download/sci_download.py --search "perovskite solar cells" --source semantic_scholar --limit 5

# Search arXiv
python skills/sci-download/sci_download.py --search "large language model" --source arxiv --limit 5

# Show config and API key status
python skills/sci-download/sci_download.py --status

# Custom output directory
python skills/sci-download/sci_download.py "2301.07041" --output-dir ./papers

Configuration

API keys are stored in the unified ~/.aut_sci_write/.env (auto-created on first use). Non-secret settings (school, output_dir, proxy) are in ~/.aut_sci_write/sci-download/config.json.

Set API Keys

Edit ~/.aut_sci_write/.env directly or use the config helper:

cd skills/sci-download
python -c "from config import update_config; update_config('elsevier_api_key', 'YOUR_KEY')"
python -c "from config import update_config; update_config('springer_api_key', 'YOUR_KEY')"
python -c "from config import update_config; update_config('ieee_api_key', 'YOUR_KEY')"
python -c "from config import update_config; update_config('unpaywall_email', 'you@email.com')"

Key Sources

Service URL Notes
Elsevier https://dev.elsevier.com/ Free, Article Retrieval API
Springer https://dev.springernature.com/ Free, OA only
IEEE https://developer.ieee.org/ Free tier
Unpaywall N/A Just provide email

Free Sources (no key needed)

  • arXiv, Semantic Scholar, PubMed Central

CNKI Setup

python skills/sci-download/cnki_download.py set-mode fsso
python skills/sci-download/cnki_download.py status
# Login at https://fsso.cnki.net → export cookies → save to ~/.aut_sci_write/webvpn_cookies.json

Dependencies

requests, pycryptodome, beautifulsoup4

© License & Copyright

Aut_Sci_Write — Autonomous Scientific Writer

  • Author: Shuo Zhao
  • License: MIT License
  • Copyright: © 2026 Shuo Zhao. All rights reserved.