Skip to content
Skillpedia
Web scraping48k · #4540

web-media-getter

Lets your agent fetch images, videos, and GIFs from various sources. It returns organized results with license information.

What it does

This program searches and downloads images, videos, and GIFs from various free online sources. It organizes the results and can download the files, including information about their creators and how to use them correctly.

When to use it

  • ✓When you need a real photo or video for a project.
  • ✓To find historical or archival images.
  • ✓To get animated GIFs for reactions or memes.

Example of what to ask your AI

“Find a photo of a cat playing the piano, licensed for commercial use.”

Want more? Open the sections below.

How to use

The easiest way: copy the message below and paste it into Claude, ChatGPT, Cursor or any AI. It reads the skill and follows the instructions.

Skill link

https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/web-media-getter/SKILL.md

Ready-to-paste message

Use this skill to help me: https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/web-media-getter/SKILL.md Read the SKILL.md file at that link and follow its instructions for my task.
How it works

The program connects to different websites offering free media. It takes your request, searches across all these sites, and gives you the best results, complete with licensing information.

Installation

Easiest way: copy the skill link and paste it into Claude, ChatGPT or Cursor asking it to follow the instructions.

In the terminal (Claude Code, Codex, Cursor), in your project folder:

npx skills add sickn33/agentic-awesome-skills --skill web-media-getter

Or download just the file:

curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/web-media-getter/SKILL.md -o SKILL.md
Technical content (original SKILL.md)

Original text by the author, straight from GitHub.

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 (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: 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
  • --download fetches each result's direct media URL and writes attribution.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 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.

Where this fits

This is the internet-retrieval capability — peer to muser (local semantic search)

…

FAQ

Do I need a key to use it?

Not necessarily. Some sources work without keys. To access other, more specific sources, you might need an API key.

What are 'attribution sidecars'?

These are files that come with your download, telling you who created the content, its usage license, and where to find more information. This is important for legal use of the material.

Can I download long videos?

Archival sources might have full films. For short, modern clips, sources like Pexels and Pixabay are better. To extract a specific segment from a long video, you might need to use other tools.

Details

Original description by the author

One query across free image / video / GIF APIs (stock + historical/archival + GIF engines), returning normalized, license-tagged results with optional top-K download + attribution sidecar. The retrieval peer to local semantic search and generative media.

repo: sickn33/agentic-awesome-skills

Popularity

GitHub stars
48k
Ranking position
#4540
License
MIT
Updated
10/15/2026

Is this skill useful?

0

Sign in to vote.

Comments

  • …

More skills from this repository

Similar skills