From antigravity-awesome-skills
Queries multiple free image/video/GIF APIs (stock, historical/archival, GIF engines) in one fan-out, returning normalized license-tagged results with optional top-K download and attribution sidecar.
How this skill is triggered — by the user, by Claude, or both
Slash command
/antigravity-awesome-skills:web-media-getterThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Use when a task needs a REAL or ARCHIVAL photo / clip (hero, texture, reference, historical footage) or a reaction / animated GIF, rather than a generated one — fan out across free image/video/GIF sources in one query and download license-tagged results.
Use when a task needs a REAL or ARCHIVAL photo / clip (hero, texture, reference, historical footage) or a reaction / animated GIF, rather than a generated one — fan out across free image/video/GIF sources in one query and download license-tagged results.
Source: connerkward/web-media-getter-skill (MIT).
Query many free image/video sources in one fan-out, get a normalized result list, optionally download top-K with an attribution sidecar. Zero-dep stdlib script.
Script: webmedia.py (in this dir). Keys: PEXELS_API_KEY, PIXABAY_API_KEY
in central/.env (optional — the 5 no-key sources work without them).
| Source | Key? | Best for | Media |
|---|---|---|---|
| openverse | none | CC web images (Flickr, museums) | image |
| wikimedia | none | factual / historical / landmark photos | image |
| internetarchive | none | historical/archival images + films | image, video |
| loc | none | historical US prints/photos | image |
| nasa | none | space imagery + video | image, video |
| pexels | free key | modern stock photos + short video clips | image, video |
| pixabay | free key | modern photos/illustrations + short clips | image, video |
| klipy | free key | GIFs — recommended (free, unlimited, Tenor drop-in) | gif |
| giphy | free key | GIFs — biggest library (prod key needs approval) | gif |
GIF sources fire only with --type gif. Keys: KLIPY_API_KEY, GIPHY_API_KEY
in central/.env. (tenor adapter removed — Google EOL'd the API 2026-06-30.)
klipy is the one to get (free + unlimited);
its adapter is unverified — assumes Tenor-compatible request/response;
verify against docs.klipy.com when you key it. webmedia.py "shrug" --type gif --count 6 --json
webmedia.py "1950s street scene" --type image --count 8 --json
webmedia.py "rocket launch" --type video --source nasa,internetarchive
webmedia.py "car factory 1930s" --source all --download --out /tmp/cars
--source all (default) | nokey (no-key only) | comma list (wikimedia,pexels)--type image|video · --count N · --json · --download --out DIR--download fetches each result's direct media URL and writes attribution.json
(source, author, license, url, page_url) alongside the files.{source, title, url, thumb, dl, page_url, author, license, w, h, type} —
dl is the directly-downloadable media URL (None when only a page exists).
Archival sources (Internet Archive, Europeana, LoC) host whole films/documentaries, not single shots. So:
pexels / pixabay (born as short clips, direct MP4). Done.muser skill. Fully offline.webmedia.py is image/video. For sound effects (real, CC-licensed) and for
judging audio (since Claude can't hear), two sibling scripts live in
central/scripts/:
freesound-fetch.py "<query>" [count] [max_sec] [out_dir] — searches freesound.org
and downloads short hq-mp3 previews. Prints one JSON line per file with
license/user for attribution. Key: FREESOUND_API_KEY in central/.env
(token-based read; full originals would need OAuth — previews suffice for SFX).audio-judge.py <file> "<target>" — sends the clip to OpenAI gpt-audio
(audio-native) and returns JSON {heard, score, matches, suggestion}, enabling a
generate/fetch → judge → iterate loop. Auto-sources a real sk- OPENAI_API_KEY
from .env (ignores a local lm-studio stub env var). Pads sub-2s clips so the
speech-tuned model doesn't refuse. Caveat: it reliably describes audio and
filters obvious mismatches, but it is NOT a trustworthy judge of subjective qualities
like "grating" — it labels nearly any beep "sharp/high-pitched". Use it to cull, not
to make the final aesthetic call; confirm by ear.This is the internet-retrieval capability — peer to muser (local semantic search)
and fal (generate). A future media router would fan out across all three and rank
candidates by relevance (CLIP), handing aesthetic spreads to lookdev. Don't build that
router until the model demonstrably mis-routes without it.
npx claudepluginhub sickn33/antigravity-awesome-skills --plugin antigravity-bundle-aas-mobile-app-builderGenerates a structured brief for sourcing stock or archive footage, with search terms, priority levels, and licensing notes for researchers.
Routes media search requests to connected sources (Salesforce CMS, Data Cloud). Prompts user to select a source before calling any search tool. Essential for teams with existing media libraries.
Searches and fetches high-quality free Unsplash photos for hero sections, backgrounds, product galleries, and UI/UX elements in websites and apps.