Skip to content

feat(providers): add NASA Image Library provider - #19

Merged
gitadityakumar merged 3 commits into
mainfrom
feat/nasa-provider
Sep 2, 2026
Merged

gitadityakumar merged 3 commits into
mainfrom
feat/nasa-provider

Conversation

@gitadityakumar

Copy link
Copy Markdown
Owner

Description

Adds NASA Image and Video Library (images-api.nasa.gov) as a supported asset provider in ast. NASA's library contains hundreds of thousands of public domain astronomical, planetary, aerospace, and historic mission imagery.

Features

  • Search: Queries the official NASA Image and Video Library REST API (https://images-api.nasa.gov/search?q={query}&media_type=image).
  • Direct Master Full-Resolution Media Downloads: Resolves direct high-resolution images from images-assets.nasa.gov (prefers master original ~orig.jpg/~orig.png up to 8400x5200+, with smart fallback to ~large.jpg or ~medium.jpg when original is an uncompressed TIFF).
  • URL Sanitization: Automatically escapes spaces and special characters in asset download links.
  • Metadata: Preserves sanitized IDs (nasa-{nasa_id}), mission titles, attribution (e.g. NASA / JPL, NASA / HQ), and source metadata.
  • Integration: Fully wired into registry, CLI search commands (ast s nasa ...), and interactive mode.

Verification

  • Tested search via ast s nasa "apollo" --limit 2 --json
  • Verified direct master download via ast s nasa "apollo" --first --download -o /tmp/downloads-test (downloaded 4.5 MB master PNG @ 8400x5225)
  • Verified photo download via ast s nasa "earth" --first --download -o /tmp/downloads-test (downloaded 261 KB JPEG @ 1700x2164)
  • Verified all unit and integration tests pass with zig build && zig build test.

@gitadityakumar
gitadityakumar merged commit 1815838 into main Sep 2, 2026
1 check passed
@gitadityakumar
gitadityakumar deleted the feat/nasa-provider branch September 2, 2026 17:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant