web-media-getter – skill Thiết kế & UI cho agent AI
Một truy vấn duy nhất qua các API ảnh, video và GIF miễn phí (kho stock, lưu trữ lịch sử và công cụ GIF), trả về kết quả đã chuẩn hóa, gắn thẻ giấy phép, tùy chọn tải top-K và tệp ghi nguồn đính kèm. Là phần truy xuất song hành với tìm kiếm ngữ nghĩa cục bộ và media tạo sinh.
Cài skill web-media-getter bằng một lệnh
Chọn công cụ bạn đang dùng, copy lệnh và dán vào terminal. Skill sẽ nằm trong thư mục skills của công cụ đó và sẵn sàng dùng ở phiên làm việc tiếp theo.
Claude Code
mkdir -p ~/.claude/skills && curl -fsSL https://skill.dn1nguoi.com/z/web-media-getter-e0932.tgz | tar xz -C ~/.claude/skills
Gọi trong Claude Code: /web-media-getter – rồi mô tả công việc bạn muốn làm.
Codex
mkdir -p ~/.codex/skills && curl -fsSL https://skill.dn1nguoi.com/z/web-media-getter-e0932.tgz | tar xz -C ~/.codex/skills
Gọi trong Codex: $web-media-getter – rồi mô tả công việc bạn muốn làm.
Hermes Agent
mkdir -p ~/.hermes/skills && curl -fsSL https://skill.dn1nguoi.com/z/web-media-getter-e0932.tgz | tar xz -C ~/.hermes/skills
Gọi trong Hermes Agent: /web-media-getter – rồi mô tả công việc bạn muốn làm.
DeepSeek
mkdir -p ~/.deepcode/skills && curl -fsSL https://skill.dn1nguoi.com/z/web-media-getter-e0932.tgz | tar xz -C ~/.deepcode/skills
Gọi trong DeepSeek: /web-media-getter – rồi mô tả công việc bạn muốn làm.
Nội dung SKILL.md
Nội dung SKILL.md gốc bằng tiếng Anh.
When to Use
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](https://github.com/connerkward/web-media-getter-skill) (MIT)._
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 prerequisite: webmedia.py is not bundled in this catalog copy. The named central/scripts helpers and central/.env location are also external prerequisites; use only a separately reviewed upstream installation. 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.)
Verify current provider pricing, quotas and API schema; no unlimited/free tier is established here.
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
{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).
The video caveat (important)
Archival sources (Internet Archive, Europeana, LoC) host whole films/documentaries,
not single shots. So:
- Modern single clip →
pexels/pixabay(born as short clips, direct MP4). Done. - Historical single shot → retrieve the IA film here, then extract the shot:
- Twelve Labs Marengo search (free 600 min) — pass the IA public MP4 URL, get a
timestamped moment for "car on assembly line", clip with ffmpeg. Semantic, cheap.
- or PySceneDetect (free, local) to cut the film into shots, then rank keyframes
with CLIP via the muser skill. Fully offline.
Audio: freesound + audio QA
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 OpenAIgpt-audio
(audio-native) and returns JSON {heard, score, matches, suggestion}, enabling a
generate/fetch → judge → iterate loop. Use only the explicitly configured provider key/source; never search unrelated .env files for a usable key or override a local endpoint/key to force paid cloud usage. 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.
Downloads need an authorized output directory, HTTPS allowlisted destinations, bounded redirects/bytes/time and non-overwriting filenames. Verify the original asset page/license, commercial/redistribution/attribution and subject rights; preview availability is not a license. Hosted semantic search/audio judging transmits media and can incur costs, requiring destination/payload/budget authorization. Promotional credits and model hearing claims are historical, not verified capabilities.
Where this fits
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.
Limitations
- Results depend on third-party API availability, quotas, credentials, and license metadata quality.
- License tags and attribution fields must still be reviewed before commercial or public use.
- Relevance ranking can find plausible assets, but final aesthetic fit, brand safety, and audio suitability require human inspection.
Skill liên quan
- web-project-brainstorming – Khung hướng dẫn chuyên sâu để lên ý tưởng cho dự án web và thiết kế trang. Phác thảo các…
- widget-based-design – Hướng dẫn triển khai Widget-Based Design cho Web và App. Kích hoạt khi người dùng muốn…
- wordpress – Quy trình phát triển WordPress gồm phát triển theme, tạo plugin, tích hợp WooCommerce…
- wordpress-theme-development – Quy trình phát triển theme WordPress gồm kiến trúc theme, template hierarchy, custom…
- write-design-md – Viết hoặc cập nhật DESIGN.md của dự án dựa trên màu sắc, kiểu chữ, khoảng cách và thành…
- y2k-design – Hướng dẫn triển khai web và ứng dụng cho Y2K Design. Kích hoạt khi người dùng muốn hiệu…
- api-and-interface-design – Hướng dẫn thiết kế API và giao diện ổn định. Dùng khi thiết kế API, ranh giới module…
- 20-andruia-niche-intelligence – Dùng sau khi xác định lĩnh vực của dự án: chuẩn bị hồ sơ tổng hợp bằng tiếng Tây Ban Nha…