Communitygithub.com

paperdown2md — 論文PDFダウンロード + MinerU変換Markdown

Agentスキル:学術論文(arXiv/DOI/タイトル)をダウンロードし、MinerU抽出によりMarkdownに変換します。

paperdown2md — 論文PDFダウンロード + MinerU変換Markdown とは?

このAgentスキルは、ユーザーが指定した論文識別子(arXiv ID、DOI、タイトル、PDF直リンク、さらには微信公衆号や小紅書の投稿リンク)から論文PDFをダウンロードし、MinerUの`extract`(Token版)を使って全文Markdownと画像リソースに変換するためのものです。出力先ディレクトリには、PDF、full.md、images/フォルダが整理された標準構造が自動生成されます。複数論文の一括処理にも対応し、各論文は個別のサブフォルダに格納されます。特に、微信公衆号や小紅書の投稿から論文を特定する機能は、中国のソーシャルメディアで論文を探す際に有用です。このスキールはClaude CodeやCursorなどのAIエージェント上で動作し、`run.sh`スクリプトを推奨エントリポイントとして使用します。論文を読んで精読記録を作成する下流スキル(例:aiforbio-paper-reading)と連携することで、論文の取得から深い理解までをシームレスに行えます。

対応✓Claude Code~Codex CLI✓Cursor
npx skills add Iayce/paperdown2md

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

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

プレビュー

スキル README より

paperdown2md — 論文PDFダウンロード + MinerU変換Markdown preview

ドキュメント

paperdown2md — 論文PDFダウンロード + MinerU変換Markdown は何をしますか?

ユーザーから指定された1つ以上の論文識別子を、指定された出力ディレクトリに次の標準構造で保存します:

<output-dir>/
└── <論文フォルダ名>/
    ├── <論文名>.pdf      # フォルダと同じ名前、またはユーザー指定の短縮名
    ├── full.md           # MinerU extractによる全文Markdown
    └── images/           # 文中の画像リソース

参考例:paperdown2md/example/CIDD: Collaborative Intelligence for Structure-Based Drug Design Empowered by LLMs/(フォルダ名には CIDD のような代表的な短縮名、または完全なタイトルを使用できます)。

いつトリガーするか

  • ユーザーが論文のタイトル、arXiv/DOI/リンク、微信公衆号/小紅書の投稿リンク、または直接 PDF URL を指定した場合(複数可)
  • ユーザーがターゲットディレクトリを指定した場合(例:paperdown2md/example/、~/papers/)
  • PDF + full.md + images の三点セットが必要で、解析が MinerU extract(Token) を使用する場合(flash-extract で大きな論文を代替してはいけません)

コアフロー(各論文ごと)

1. 出力ディレクトリの確認

  • ユーザーは必ず --output-dir / ターゲットパスを指定する必要があります。指定がない場合はまず質問し、推測しないでください。
  • パスが存在しない場合は作成します。既に同名のフォルダが存在する場合は、上書きするかスキップするかを先に説明します。

2. フォルダ名とPDFファイル名の決定

以下の優先順位でフォルダ名(同時にデフォルトのPDFベース名、拡張子 .pdf)を決定します:

論文タイプ命名提案例
新しいモデル/手法を提案する論文モデル/手法の略称または固有名CIDD、TargetDiff
Benchmark 論文benchmark名CrossDocked2020
データセット 論文データセット名ImageNet
その他論文タイトル(120文字程度に切り詰め可)PDF原題と同じ

ルール:

  • ファイルシステムで使用できない文字 \ / : * ? " < > | を除去します。
  • ユーザーが「フォルダ名をCIDDにして」と明示した場合は、ユーザーの指定を優先します。
  • 複数論文を一括処理する場合、各論文を個別のフォルダに保存し、1つのディレクトリに混在させないでください。

3. 識別子の解析とPDFのダウンロード

バンドルされたスクリプトを優先して使用します(arXiv、DOI、直リンクPDF、微信公衆号/小紅書の投稿、OpenAlex/arXivのタイトル検索を解析)。

Pythonはskillsplace環境で実行する必要があります——scripts/run.sh(skillsplaceのPythonを自動的に見つける)を使用し、直接 python3 を実行しないでください:

bash paperdown2md/scripts/run.sh \
  -o "<出力ディレクトリ>" \
  --name "<フォルダ名>" \
  "<識別子>"

または、インタプリタを明示的に指定(macOS本機):

/Users/jaycexu/anaconda3/envs/skillsplace/bin/python paperdown2md/scripts/paperdown2md.py \
  -o "<出力ディレクトリ>" --name "<フォルダ名>" "<識別子>"
環境skillsplaceパス
macOS本機/Users/jaycexu/anaconda3/envs/skillsplace
WindowsノートパソコンD:\Anaconda\envs\skillsplace
jumphost-inner~/xsjenv/miniconda3/envs/skillsplace

識別子 には次のものが使用できます:

  • arXiv:https://arxiv.org/abs/xxxx.xxxxx または xxxx.xxxxx
  • DOI:10.1038/... または https://doi.org/...
  • 直接PDF:https://....pdf
  • 微信公衆号記事:https://mp.weixin.qq.com/s/...
  • 小紅書投稿:https://www.xiaohongshu.com/explore/...(共有リンクの xsec_token などのパラメータは保持することを推奨)
  • 英字タイトル:スクリプトがOpenAlex経由で検索し、最適なオープンアクセスPDFを取得します

ソーシャルメディア投稿(公衆号 / 小紅書、v1.1+)

公衆号や小紅書の投稿を起点とする場合、スクリプトは以下の処理を行います:

  1. 公衆号:最初にHTTPでHTMLを取得します。小紅書:デフォルトでブラウザCDPを経由します(コンテンツは主にJSレンダリング)
  2. HTTPが失敗した場合、またはアンチスクレイピングに遭遇した場合(例:「環境異常」、ノートが閲覧不可)→ 自動的にブラウザCDPに切り替えます(web-access のChrome Proxy、localhost:3456)
  3. 本文からarXiv / DOI / PDF直リンクを抽出します。直リンクがない場合 → 投稿タイトルと本文のキーワードを使用してOpenAlex + arXiv APIによる文献検索を実行します(関連性フィルタリングを含む)
  4. 投稿タイトルをフォルダ名として使用します(--name で上書き可)。その後、既存のフローに従ってPDFをダウンロードし、MinerUで処理します。
# 公衆号
bash paperdown2md/scripts/run.sh -o "<出力ディレクトリ>" \
  "https://mp.weixin.qq.com/s/jMW2lbgiHDka8CASFtQ81w"

# 小紅書(完全な共有URLを保持)
bash paperdown2md/scripts/run.sh -o "<出力ディレクトリ>" \
  "https://www.xiaohongshu.com/explore/6a1c2d75000000000603739b?xsec_token=..."

ブラウザフォールバックの前提条件:Chromeがリモートデバッグを有効にしていること(chrome://inspect/#remote-debugging)、および次のコマンドが実行可能であること:

node ~/.cursor/skills/web-access/scripts/check-deps.mjs

検索しても結果がない場合、Agentはさらに lr search、web-access、またはWebSearchを使用して論文を特定し、arXiv/DOIリンクを run.sh に渡すことができます。

スクリプトが対応できない場合は、次のようにします:

  1. lr search arxiv "<英字タイトル>" --format json または lr search "<タイトル>" --format json を使用して url を探し、arXiv PDFを取得します。
  2. web-access に従って出版社のページを確認します(著作権に注意;OA / arXivを優先)。
  3. それでもPDFがない場合 → ユーザーに通知し、手動でフォルダに配置してもらい、既存のPDFに対してのみMinerUを実行します。

ダウンロード後のPDFファイル名:--name CIDD → CIDD.pdf;--name が指定されていない場合は、解析されたタイトルを使用します。

4. MinerU extract → full.md + images/

必ずToken版の extract を使用します(テーブル/数式/大容量ファイル)。操作前:

export MINERU_TOKEN="$(tr -d '\n' < "$HOME/.cursor/skills/mineru/key")"
mineru-open-api auth --verify
  • Tokenがない場合:ユーザーに明確に伝え、~/.cursor/skills/mineru/key または MINERU_TOKEN を設定するよう指示します。flash-extract で大きなPDFをごまかしてはいけません。
  • PDFが10MBを超える、またはページ数が多い場合:--model vlm、--timeout 3600(学術論文のデフォルト)
  • スキャン文書:--ocr を追加

スクリプトにはextractと整理の手順が含まれています。手動で実行する場合:

mineru-open-api extract "<paper-dir>/<name>.pdf" \
  -o "<paper-dir>/_mineru_out" -f md --model vlm --timeout 3600

# _mineru_out/*.md → full.md、_mineru_out/images → images/、_mineru_outを削除

整理後、full.md 内の ![](images/...) パスがローカルに存在することを確認します。

5. 複数論文の一括処理

各識別子に対してステップ2〜4を繰り返します。複数のソースを一度に渡せます(同一の --name が適用できない場合は個別に実行):

bash paperdown2md/scripts/run.sh -o "<出力ディレクトリ>" \
  "https://arxiv.org/abs/2301.00001" \
  "10.1038/s41586-020-00000" \
  "Another Paper Title In English"

一括処理の場合、各論文に個別の --name を指定します:スクリプトを複数回呼び出すか、事前にタイトルに基づいて短縮名を決定してから実行します。

完了基準(ユーザーへの報告)

各論文について報告:

  • フォルダパス
  • PDFファイル名とサイズ
  • full.md の行数/サイズ、images/ の画像数
  • 失敗した場合:理由(OA PDFなし、Tokenなし、MinerUタイムアウトなど)と推奨される次のステップ

依存関係とトラブルシューティング

問題対処
no API token foundMinerU Tokenを設定します。mineru を参照
mineru-open-api: command not foundMinerU CLIをインストールします(mineru skillインストールスクリプト)
OpenAlexにPDFがないarXivリンク、lr search、またはユーザーにPDFを提供してもらう
公衆号「環境異常」スクリプトは自動的にCDPブラウザを試みます。それでも失敗する場合は、ユーザーに検証を完了してもらうか、arXiv/DOIを直接提供してもらいます
小紅書ノートが閲覧不可アプリの共有完全URL(xsec_token を含む)を使用する。またはarXiv/DOIを直接提供
投稿に論文直リンクがないスクリプトはタイトル/キーワードでOpenAlex + arXivを検索します。それでも失敗する場合は lr search / web-access を使用
extractがタイムアウト--timeout を増やすか、ユーザーに再試行を説明
ユーザーがPDFのみでMarkdown不要paperdown2md.py --skip-extract

例

単一論文(CIDD、代表的なフォルダ名):

bash paperdown2md/scripts/run.sh \
  -o "paperdown2md/example" \
  --name "CIDD: Collaborative Intelligence for Structure-Based Drug Design Empowered by LLMs" \
  "CIDD Collaborative Intelligence Structure-Based Drug Design LLMs"

微信公衆号記事から開始(HTTP失敗時に自動的にブラウザCDPに切り替え):

bash paperdown2md/scripts/run.sh \
  -o "paperdown2md/example" \
  "https://mp.weixin.qq.com/s/jMW2lbgiHDka8CASFtQ81w"

小紅書投稿から開始(直リンクがない場合、自動的にarXiv/OpenAlexを検索):

bash paperdown2md/scripts/run.sh \
  -o "paperdown2md/example" \
  "https://www.xiaohongshu.com/explore/6a1c2d75000000000603739b?xsec_token=..."

または既存のPDFをMinerUに渡すのみ(PDFがすでにフォルダ内にある場合):

export MINERU_TOKEN="$(tr -d '\n' < "$HOME/.cursor/skills/mineru/key")"
mineru-open-api extract "paperdown2md/example/CIDD.../CIDD....pdf" \
  -o "paperdown2md/example/CIDD.../_mineru_out" -f md --model vlm --timeout 3600
# その後、full.md + images/ に整理

他のskillとの役割分担

  • mineru:既存のPDF/ファイルのみを変換 → mineru skillを参照
  • lightread-cli:LightRead資料庫、ノート、レビュー → ローカルのpaperdown2mdディレクトリ構造ではない
  • web-access:ウェブ検索、非構造化ダウンロード
  • paperdown2md(本skill):ローカルディレクトリ + PDF + full.md + images のオールインワン
  • aiforbio-paper-reading(下流):full.md + images/ が準備できた後、同じ論文ディレクトリに {ModelName}record.md を書き込み、生物医学の精読(数式の要素ごとの導出 + サンプルデータフロー)を行います。aiforbio-paper-reading を参照

aiforbio-paper-readingとの連携(推奨パイプライン)

本skillは取得と変換を担当します。精読記録は aiforbio-paper-reading に委ねます:

paperdown2md  -o <文献ディレクトリ> "<識別子>"
    →  <文献ディレクトリ>/<論文名>/{pdf, full.md, images/}
aiforbio-paper-reading
    →  <文献ディレクトリ>/<論文名>/{ModelName}record.md

full.md + images/ が生成された後、ユーザーが「論文を読む / recordを書く / 精読 / 数式導出 / データフロー例」を希望する場合、aiforbio-paper-readingを促して連携し、本skill内で長い読書ノートを書かないでください。

スクリプト説明

  • scripts/run.sh:唯一推奨されるエントリポイント。skillsplace内のPythonを自動的に選択します。
  • scripts/paperdown2md.py:stdlibのみ。起動時にskillsplaceにいるか確認。resolve → ダウンロード → mineru-open-api extract → full.md / images/。

Agentが本skillを実行する場合:まず run.sh を実行し、python3 paperdown2md.py を直接実行しないでください。

Cursorのグローバルskillsにインストール:

git clone https://github.com/Iayce/paperdown2md.git ~/.cursor/skills/paperdown2md

またはローカルチェックアウトをシンボリックリンク:ln -s /path/to/paperdown2md ~/.cursor/skills/paperdown2md

関連スキル