Communityコーディング&開発github.com

Agents365-ai/paper-fetch

DOIからPDFを解決する7つのフォールバックソース(Unpaywall、S2、arXiv、PMC、bioRxiv、出版社、Sci-Hub)を備えたマルチエージェント、ゼロ依存Pythonツール。

paper-fetch とは?

Agents365-ai/paper-fetchは、学術論文のDOI(デジタルオブジェクト識別子)から対応するPDFを効率的に取得するためのマルチエージェントスキルです。このツールは、Unpaywall、Semantic Scholar、arXiv、PubMed Central(PMC)、bioRxiv、出版社ウェブサイト、Sci-Hubの7つの異なるソースを順次試行するフォールバック機構を備えており、単一のソースが失敗しても他のソースからPDFを取得できる高い信頼性を提供します。完全にPythonで書かれており、外部依存関係がゼロであるため、様々な開発環境やCI/CDパイプラインに容易に統合できます。このスキルは、AIエージェント(Claude Code、Cursor、Codexなど)が学術文献を自動的に収集・分析する際に特に有用で、研究の効率化やナレッジベースの構築に貢献します。各ソースへのアクセスには公開APIやスクレイピング技術を利用し、セットアップや設定は最小限で済むように設計されています。

対応~Claude Code~Codex CLI~Cursor
npx skills add Agents365-ai/paper-fetch

Installed? Explore more コーディング&開発 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

paper-fetch は何をしますか?

DOI → PDFリゾルバ(7つのフォールバックソース:Unpaywall、S2、arXiv、PMC、bioRxiv、出版社、Sci-Hub)。マルチエージェント、ゼロ依存Python。

概要

paper-fetchは、学術論文のDOIからPDFを取得するための軽量なPythonスクリプトです。7つの異なるソースを順番に試行することで、高い成功率を実現します。AIエージェントによる自動化に最適化されており、外部ライブラリのインストールは不要です。

特徴

  • 7つのフォールバックソース: Unpaywall、Semantic Scholar、arXiv、PubMed Central、bioRxiv、出版社、Sci-Hub
  • マルチエージェント対応: Claude Code、Cursor、CodexなどのAIエージェントと連携可能
  • ゼロ依存: 標準ライブラリのみで動作(Python 3.7+)
  • シンプルなインターフェース: コマンドラインまたはPythonモジュールとして使用可能

インストール

git clone https://github.com/Agents365-ai/paper-fetch.git
cd paper-fetch

使用方法

コマンドライン

python fetch.py <DOI>

例:

python fetch.py 10.1038/nature12373

Pythonモジュールとして

from fetch import resolve_doi

pdf_path = resolve_doi("10.1038/nature12373")
if pdf_path:
    print(f"PDF saved at: {pdf_path}")
else:
    print("PDF not found")

ソースの優先順位

  1. Unpaywall: 最も信頼性の高いオープンアクセスソース
  2. Semantic Scholar: 学術検索エンジン
  3. arXiv: プレプリントリポジトリ
  4. PubMed Central: 生命科学・医学文献
  5. bioRxiv: 生物学プレプリント
  6. 出版社: DOIの公式発行元
  7. Sci-Hub: 最終手段のフォールバック

設定

環境変数または設定ファイルで動作をカスタマイズできます。

変数説明デフォルト
UNPAYWALL_EMAILUnpaywall APIのメールアドレスなし(匿名アクセス)
S2_API_KEYSemantic Scholar APIキーなし
OUTPUT_DIRPDFの出力ディレクトリ./pdfs
TIMEOUT各リクエストのタイムアウト(秒)30

アーキテクチャ

入力: DOI
  ↓
Try 1: Unpaywall → 成功 → PDF出力
  ↓ (失敗)
Try 2: Semantic Scholar → 成功 → PDF出力
  ↓ (失敗)
...
Try 7: Sci-Hub → 成功 → PDF出力
  ↓ (全て失敗)
エラー: 見つかりませんでした

開発

# テストの実行
python -m unittest tests/*.py

ライセンス

MIT License

関連プロジェクト

関連スキル