pp-nasa-images について
pp-nasa-images は、NASA の画像・動画ライブラリを検索、整理する CLI スキルです。公開メディアを構造化して扱うエージェント、ジャーナリスト、教育関係者向けで、ローカル SQLite ミラー、再開可能なアルバム一括ダウンロード、字幕・メタデータ・引用の取得機能を備えています。
主な機能
- 01NASA の画像と動画の検索
- 02ローカル全文検索と時系列分析
- 03再開可能なアルバム一括ダウンロード
- 04字幕とアセットメタデータの取得
- 05画像バリエーションの選択と引用生成
活用シーン
- 01プレゼン用の NASA アルバム保存
- 02トピック別の最新画像検索
- 03動画字幕テキストの取得
- 04画像の形式に沿った引用作成
MCP 対応
MCP インターフェースは Claude エージェント向けに、API エンドポイントと組み合わせコマンドの型付きツールを提供します。画像バリエーションの選択、字幕・メタデータの取得、引用生成などを利用できます。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ mvanhorn/ printing-press-library --skill pp-nasa-imagesインストール後、Claude Code で/pp-nasa-imagesを入力して読み込まれたか確認します。
詳細
NASA Image and Video Library — Printing Press CLI
前提条件:CLI をインストールする
このスキルは nasa-images-pp-cli バイナリを使用します。**このスキルのコマンドを実行する前に、CLI がインストールされていることを必ず確認してください。**インストールされていない場合は、先にインストールします。
- Printing Press インストーラーでインストールします。バイナリのインストール先は、macOS/Linux では
$HOME/.local/bin、Windows では%LOCALAPPDATA%\Programs\PrintingPress\binがデフォルトです。npx -y @mvanhorn/printing-press-library install nasa-images --cli-only - 確認します:
nasa-images-pp-cli --version - スキルを実行するエージェント/ランタイムから、表示されたインストール先ディレクトリに
$PATHでアクセスできることを確認します。
npx によるインストールに失敗した場合(Node がない、オフラインなど)は、Go を直接インストールしてください(Go 1.26.6 以降が必要です)。
go install github.com/mvanhorn/printing-press-library/library/media-and-entertainment/nasa-images/cmd/nasa-images-pp-cli@latest
インストール後に --version が「command not found」と表示する場合、ランタイムからバイナリのディレクトリに $PATH 経由でアクセスできません。確認が成功するまで、スキルのコマンドを実行しないでください。
この CLI を使用する場面
エージェントやワークフローが、文章を解析することなく、NASA のパブリックドメインのメディアアーカイブに確実にアクセスする必要がある場合に、この CLI を使用してください。画像検索、アセットの表示形式の選択、キャプションの抽出、アルバムの一括アーカイブなどに利用できます。ローカルの SQLite ミラーを使えば、繰り返しのクエリが無料になるほか、上流 API では対応していない年代順/トピック別のタイムライン分析も可能になります。MCP インターフェイスでは、すべてのエンドポイントに対応する型付きツールに加え、新しい複合コマンド(assets best、captions fetch text、citation など)を Claude エージェントに提供します。
この CLI を使用しない場面
作成、更新、削除、公開、コメント、賛成票の投票、招待、注文、メッセージ送信、予約、購入、またはリモート状態の変更が必要なリクエストには、この CLI を使用しないでください。この Printing Press CLI が提供するのは、確認、エクスポート、同期、分析のための読み取り専用コマンドです。
独自の機能
この API 用の他のツールにはない機能です。
積み重ねて活用できるローカル状態
-
download album— 厳選された NASA アルバム内のすべてのアセットを、バイト範囲による再開機能付きで一括ダウンロードします。再実行すると、最後に転送が失敗した箇所から正確に再開します。プレゼン資料やアーカイブ用に NASA の画像が 200 枚必要な場合、最後まで完了できるのはこのコマンドです。不安定な Wi-Fi、スリープからの復帰、実行途中のキャンセルも問題になりません。
nasa-images-pp-cli download album Apollo-at-50 --variant orig --resume --out ./apollo -
recent— 同期済みのローカルミラーを対象に、タイトル、説明、description_508、キーワード、アルバムを FTS5 で検索します。上流 API では利用できない年代順の並べ替えにも対応しています。速報が出たとき、何十年分ものアーカイブ結果をページ送りで確認することなく、トピックに関する最新の NASA 画像を数ミリ秒で取得できます。
nasa-images-pp-cli recent --q "perseverance" --sort date-desc --limit 20 --json -
center profile— 同期済みキャッシュをローカルで集計し、NASA の 11 の各センターについて、media_type 別の件数、年ごとのヒストグラム、上位キーワード、上位の写真家を表示します。ジャーナリストは検索前に「この種の画像を公開しているのはどのセンターか」を把握できます。センターが明らかな情報源となる記事では、検索時間を節約できます。
nasa-images-pp-cli center profile JPL --json -
unused-in— 厳選されたアルバムに含まれる nasa_id のうち、まだローカルにダウンロードされていないものを一覧表示します。ダウンロード記録との反結合を行います。すでに使った nasa_id を手作業でリストに記録することなく、同じ画像を二度選ばずに来週のスライドを準備できます。
nasa-images-pp-cli unused-in Apollo-at-50 --json -
timeline— FTS で一致した行を対象に、strftime('%Y-%m', date_created) でローカルに GROUP BY します。トピックがいつ取り上げられたかを示す、月ごとの件数を出力します。注目度の低い月や新作公開の集中といった公開傾向を見つけられます。キーワード検索では見えない記事の切り口を発掘できます。
nasa-images-pp-cli timeline --q "perseverance" --bucket month --json
API の中継処理はこちらで行います
-
captions fetch— URL だけでなく、字幕ファイルの内容(.srt または .vtt)を返します。読みやすいトランスクリプトを取得できる、キュー番号とタイムコードを取り除く任意の--format textモードもあります。分析、検索、引用箇所の特定のために NASA の動画字幕を取得するエージェントは、HTTP 呼び出しと解析の手順をそれぞれ 1 回省略できます。
nasa-images-pp-cli captions fetch jsc2022m000123 --format text --agent -
metadata fetch— /metadata/{id} の中継処理をたどって metadata.json サイドカーを取得し、AVAIL:* フィールドと EXIF フィールドをフラット化して、内部パスの漏えいにつながるフィールド(SourceFile、File:Directory、AVAIL:Owner)を除外します。ジャーナリストや教育関係者は、不要なフィールドを手作業で取り除かなくても、クレジット付きの写真情報(撮影者+センター+日付)を取得できます。
nasa-images-pp-cli metadata fetch PIA24439 --json --select AVAIL:Title,AVAIL:Photographer,AVAIL:DateCreated
エージェント向けの基盤機能
-
assets best— アセットのレンディションマニフェストを解析し、各ファイルをバリアント(orig/large/medium/small/thumb)ごとに分類します。呼び出し元の優先順位を任意のバイト数上限とともに適用し、URL を 1 つだけ出力します。MCP 内の Claude エージェントは、「nasa_id X の 5 MB 以下で最適なバージョン」のように指定するだけで、ファイル名を解析するトークンを消費せず、URL を 1 つだけ取得できます。
nasa-images-pp-cli assets best as11-40-5874 --prefer orig,large,medium --max-bytes 5000000
分野別のショートカット
-
citation— キャッシュされたメタデータ(撮影者、日付、センター、nasa_id、URL)から、そのまま貼り付けられる引用文字列(APA/MLA/Chicago)を生成します。NASA の画像を記事に掲載したら、その下に引用を貼り付けるだけです。手作業で書式を整える必要はありません。
nasa-images-pp-cli citation PIA24439 --style apa
コマンドリファレンス
albums — 厳選された NASA アルバム(例:Apollo-at-50、Mars-Perseverance)の内容を取得します。
nasa-images-pp-cli albums <album_name>— 厳選されたアルバムのアセット一覧をページ分割して返します。アルバム名では大文字と小文字が区別されます(Apollo-at-50 は使用できますが、apollo-at-50...
assets — アセットのレンディションマニフェストを取得します(画像の場合はオリジナル/large/medium/small/thumb、動画の場合は mp4 の各バリアント、音声の場合は mp3/m4a のすべてのファイル URL)。
nasa-images-pp-cli assets <nasa_id>— アセットのすべてのファイル URL の一覧を返します。
captions — 動画アセットの字幕ファイル(.srt または .vtt)の場所を示す URL を取得します。
nasa-images-pp-cli captions <nasa_id>— 字幕ファイルの場所を示す URL を返します。動画アセットのみ対応しており、画像の場合は 400、字幕のない動画の場合は 404 を返します。...
media — フリーテキストとフィルターを使って、NASA Image and Video Library のカタログを検索します。
nasa-images-pp-cli media— フリーテキストまたはフィルターを使ってカタログを検索します。少なくとも 1 つのクエリパラメーターが必要です。
metadata — アセットの metadata.json サイドカーの場所を示す URL を取得します(AVAIL の編集情報と ExifTool フィールド)。
nasa-images-pp-cli metadata <nasa_id>— アセットの metadata.json サイドカーの場所を示す URL を返します。中継処理をたどるにはmetadata fetch(新しいコマンド)を使用してください...
適切なコマンドを探す
何をしたいかは分かっていても、どのコマンドを使えばよいか分からない場合は、CLI に直接尋ねてください。
nasa-images-pp-cli which "<capability in your own words>"
which は、自然言語による機能の問い合わせを、この CLI の厳選された機能インデックスから最適なコマンドに対応付けます。終了コード 0 は少なくとも 1 件の候補が見つかったことを意味し、終了コード 2 は確信できる候補がないことを意味します。その場合は --help にフォールバックするか、より絞り込んだ問い合わせを使用してください。
手書きの拡張機能
これらのコマンドは仕様の作成者によって宣言され、別途手書きで配線する必要があります。ジェネレーターはこれらの Cobra 登録を出力しません。見つけやすいようにここに記載しています。また、verify-skill の不明なコマンドのチェックでジェネレーターが管理するパスとして扱われないよう、意図的に ## Command Reference の外に置いています。
nasa-images-pp-cli download album <album_name>— キュレーションされたアルバム内のすべてのアセットを、バイト範囲による再開に対応して一括ダウンロードします。再実行すると、前回の続きから正確に再開します...nasa-images-pp-cli captions fetch <nasa_id>— 動画アセットのキャプションファイルの内容(.srt または .vtt)を取得します。URL だけではありません。--format text を指定すると、キュー番号を削除します...nasa-images-pp-cli metadata fetch <nasa_id>— アセットの完全なメタデータサイドカーの内容をフラット化して取得します(AVAIL:* フィールドと EXIF フィールド)。漏えいフィールド(SourceFile,...)を削除します。nasa-images-pp-cli assets best <nasa_id>— 決定論的な最適バリアント選択ツールです。アセットのレンディションマニフェストを解析し、優先順位を適用して、...を出力します。nasa-images-pp-cli recent— ローカル同期ミラーを対象とした FTS5 全文検索です。時系列順(date_created の降順)で並べ替えます。...nasa-images-pp-cli center profile <center_code>— NASA センターごとのローカル集計です(メディアタイプ別件数、年ごとのヒストグラム、上位キーワード、上位撮影者)。対象は...nasa-images-pp-cli unused-in <album_name>— キュレーションされたアルバムのうち、まだローカルにダウンロードされていない nasa_id を一覧表示します(ダウンロード台帳との反結合)。nasa-images-pp-cli timeline— トピックのタイムラインヒストグラムです。FTS で一致した行を年・月ごとにローカルで GROUP BY し、トピックがいつ取り上げられたかを表示します。nasa-images-pp-cli citation <nasa_id>— キャッシュ済みまたは取得済みのメタデータから、そのまま貼り付けられる引用文字列(APA、MLA、または Chicago)を生成します。
レシピ
最近の火星画像を探し、最適なバリアントを選ぶ
nasa-images-pp-cli media --q "mars rover" --year-start 2024 --media-type image --page-size 5 --json --select 'collection.items.data.nasa_id,collection.items.data.title' | jq -r '.collection.items[0].data[0].nasa_id' | xargs -I {} nasa-images-pp-cli assets best {} --prefer orig,large
2 段階のパターンです。検索で nasa_id が返され、assets best で選んだ項目を単一の URL に解決します。
キュレーションされたアルバム全体をアーカイブする
nasa-images-pp-cli download album Webb-Telescope-First-Images --variant large --resume --out ./webb-firsts
アルバムのすべてのページをたどり、各項目のアセットマニフェストを取得してから、各バリアントのダウンロードをバイト範囲で再開します。
動画のトランスクリプトを取得する
nasa-images-pp-cli captions fetch jsc2022m000123 --format text > webb-deployment.txt
キャプションの参照先をたどるには GET が 2 回必要です。--format text を指定すると、SRT のキュー番号を削除し、読みやすいトランスクリプトを生成します。
オフラインの FTS 検索インデックスを構築する
nasa-images-pp-cli mirror search --q "apollo" --year-start 1968 --year-end 1975 && nasa-images-pp-cli recent --q "bootprint" --sort date-desc --json --select 'nasa_id,title,date_created'
mirror search は SQLite ミラーにデータを取り込みます。recent は FTS5 を使用して時系列順の並べ替えを追加します。NASA の上流検索ではこの並べ替えを指定できません。
APA 形式の引用を生成する
nasa-images-pp-cli citation PIA24439 --style apa
メタデータサイドカーを取得し(キャッシュ済みまたはライブ)、そのまま貼り付けられる引用文字列に整形します。
認証の設定
認証は不要です。
nasa-images-pp-cli doctor を実行して、セットアップを確認してください。
エージェントモード
任意のコマンドに --agent を追加します。次のオプションに展開されます:--json --compact --no-input --no-color --yes。
-
パイプ可能 — JSON は stdout に、エラーは stderr に出力されます
-
フィルタリング可能 —
--selectでフィールドの一部を選択します。ドット区切りのパスはネストした構造をたどり、配列では各要素を走査します。詳細な API のコンテキストを小さく保つうえで重要です。nasa-images-pp-cli albums mock-value --agent --select id,name,status -
プレビュー可能 —
--dry-runで、リクエストを送信せずに内容を表示します -
オフライン対応 — 同期/検索コマンドは、利用可能な場合にローカルの SQLite ストアを使用できます
-
非インタラクティブ — プロンプトは表示されず、すべての入力はフラグで指定します
-
読み取り専用 — 作成、更新、削除、公開、コメント、賛成票、招待、注文、送信など、状態を変更するリクエストにはこの CLI を使用しないでください
レスポンスエンベロープ
ローカルストアまたは API から読み取るコマンドは、出力を来歴エンベロープでラップします。
{
"meta": {"source": "live" | "local", "synced_at": "...", "reason": "..."},
"results": <data>
}
データには .results を解析し、ライブデータかローカルデータかを確認するには .meta.source を解析してください。人間向けの N results (live) という概要は、stdout がターミナルで、かつ機械形式のフラグ(--json、--csv、--compact、--quiet、--plain、--select)が設定されていない場合に限り、stderr のみに出力されます。パイプ/エージェントの利用者と、形式を明示した実行では、stdout に JSON のみが出力されます。
エージェントからのフィードバック
この CLI について気になる点があれば、(あなたまたはエージェントが)記録してください。
nasa-images-pp-cli feedback "the --since flag is inclusive but docs say exclusive"
nasa-images-pp-cli feedback --stdin < notes.txt
nasa-images-pp-cli feedback list --json --limit 10
記録はローカルの ~/.nasa-images-pp-cli/feedback.jsonl に保存されます。NASA_IMAGES_FEEDBACK_ENDPOINT が設定され、かつ --send が渡された場合、または NASA_IMAGES_FEEDBACK_AUTO_SEND=true が設定された場合を除き、POST されることはありません。デフォルトではローカルにのみ保存されます。
バグ報告ではなく、意外に感じたことを書いてください。短く、具体的に、1 行で書きます。積み重なるのはそうした記録です。
出力の送信先
すべてのコマンドは --deliver <sink> を受け付けます。出力は標準出力に加えて(または標準出力の代わりに)指定した送信先に出力されるため、エージェントはコマンド結果を手動でパイプせずに送信できます。サポートされている送信先は 3 種類です。
| 送信先 | 動作 |
|---|---|
stdout | デフォルト。標準出力にのみ書き込みます |
file:<path> | 出力を <path> にアトミックに書き込みます(tmp + rename) |
webhook:<url> | 出力本文を URL に POST します(--compact の場合は application/json または application/x-ndjson) |
未対応のスキームは、サポートされているスキームを示す構造化エラーとともに拒否されます。Webhook の失敗時はゼロ以外の終了コードを返し、URL と HTTP ステータスを stderr に記録します。
名前付きプロファイル
プロファイルは保存済みのフラグ値のセットで、複数の実行で再利用できます。スケジュールされたエージェントが、同じ設定で同じコマンドを毎回呼び出す場合に使用します。これは HeyGen の「Beacon」パターンです。
nasa-images-pp-cli profile save briefing --json
nasa-images-pp-cli --profile briefing albums mock-value
nasa-images-pp-cli profile list --json
nasa-images-pp-cli profile show briefing
nasa-images-pp-cli profile delete briefing --yes
明示的なフラグは常にプロファイルの値より優先され、プロファイルの値はデフォルトより優先されます。agent-context は、すべての利用可能なプロファイルを available_profiles の下に一覧表示するため、情報を取得するエージェントは実行時にそれらを検出できます。
終了コード
| コード | 意味 |
|---|---|
| 0 | 成功 |
| 2 | 使用方法のエラー(引数が正しくありません) |
| 3 | リソースが見つかりません |
| 5 | API エラー(上流の問題) |
| 7 | レート制限中(待ってから再試行してください) |
| 10 | 設定エラー |
引数の解析
$ARGUMENTS を解析します。
- 空、
help、または--help→nasa-images-pp-cli --helpの出力を表示します installで始まる場合 →mcpで終わる場合は MCP のインストール、それ以外の場合は上記の「前提条件」を参照してください- その他の場合 → 直接使用(
--agentを付けて CLI コマンドとして実行します)
MCP サーバーのインストール
この CLI の公開済みパブリックライブラリエントリーまたはビルド済みリリースから MCP バイナリをインストールし、登録します。
claude mcp add nasa-images-pp-mcp -- nasa-images-pp-mcp
確認します:claude mcp list
直接使用
- インストール済みか確認します:
which nasa-images-pp-cli見つからない場合は、インストールを提案します(このスキルの冒頭にある「前提条件」を参照してください)。 - ユーザーのクエリに最適なコマンドを、上記の「独自の機能」と「コマンドリファレンス」から選びます。
--agentフラグを付けて実行します。nasa-images-pp-cli <command> [subcommand] [args] --agent- 曖昧な場合は、サブコマンドのヘルプを確認します:
nasa-images-pp-cli <command> --help。