Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add connerkward/web-media-getter-skill --skill web-media-getter-skillgit clone --depth 1 https://github.com/connerkward/web-media-getter-skillWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/connerkward/web-media-getter-skill/web-media-getter-skill)<a href="https://agentmods.dev/skills/connerkward/web-media-getter-skill/web-media-getter-skill"><img src="https://agentmods.dev/badge/skills/connerkward/web-media-getter-skill/web-media-getter-skill/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/connerkward/web-media-getter-skill/web-media-getter-skill"><img src="https://agentmods.dev/badge/skills/connerkward/web-media-getter-skill/web-media-getter-skill.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00080 | $0.01275 |
| Opus 5 | $0.00040 | $0.00638 |
| Sonnet 5 | $0.00016 | $0.00255 |
| Haiku 4.5 | $0.00008 | $0.00128 |
Grade A, and why
web-media-getter scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 12d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
This is a copy
100% identical to web-media-getter — 0 lines differ, which has more behind it and is treated as the original. This page carries a canonical link to it rather than competing with it.
How it starts
The opening of the file, as written. The whole thing — 89 lines — stays where its author put it; the contents beside it link to each section on GitHub.
web-media
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).
Sources
| 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
Usage
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--downloadfetches each result's direct media URL and writesattribution.json(source, author, license, url, page_url) alongside the files.
Record schema
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 12d ago First seen · 89 lines · 80 tokens per session scan A e320a3d27448
web-media-getter is a skill published in the GitHub repository connerkward/web-media-getter-skill (2 stars, last pushed 2mo ago), licensed MIT. It adds 80 tokens to every session and 1,275 once invoked, about $0.0004 per session on Opus 5. A static security scan graded it A with 0 findings. It is 100% identical to web-media-getter, differing in 0 lines, and is treated as a copy.
Other skills, from other repositories
screenstudio-alt
Screen-Studio-style post-production for screen recordings, headless — auto speed-up of idle, auto-zoom on click clusters, keystroke overlay chips, smoothed synthetic cursor, and 9:16 vertical export that follows the action. Use when polishing a screen recording / demo video for sharing, when the user mentions Screen…
design-spatial
Spatial composition and layout for frontend design. Load with design when composing pages/dashboards/components, or whenever generated UI looks off — overlapping/colliding elements, weak hierarchy, or generic ("looks like every startup site"). The core idea: a model can't trust its own layout, so render it, critique…
design-system
Mechanical implementation invariants for frontend design: token architecture, typography hierarchy, loading order, FOUT prevention, chrome stability, motion timing, color semantics. Use with design when building components, pages, or design systems. (Aesthetic direction lives in design-thinking; anti-trend/anti-slop…
ckw-design
Entry point for frontend design. Use WHENEVER building or touching the look of any web UI — components, pages, dashboards, landing pages, React/Vue/HTML-CSS — and whenever the user says "make this look better/nicer", "fix the spacing/layout", or mentions styling, color, typography, fonts, responsive design, polish, or…
design-thinking
Direction and intent for frontend design. Use with design when defining purpose, tone, domain, color world, and review bar; includes cross-domain lens from cinema, architecture, marketing, UX, automotive, industrial design.
design-ux
UX / usability audit — heuristic evaluation of INTERACTIVE UIs (not just visual polish). Load with design when a UI "feels off", "sucks to use", is hard to learn, needs an instruction wall, or before shipping an interactive tool/editor/app. Scores the RENDERED UI against Nielsen's 10 + interaction heuristics via a…