Wikimedia Commons Media Scraper
Pricing
from $2.85 / 1,000 results
Wikimedia Commons Media Scraper
Pull media file metadata from Wikimedia Commons by search query, category, or exact File titles. Each record carries the full image URL, thumbnail, dimensions, MIME type, byte size, license, author, and categories. Handy for media libraries, attribution, and open content research.
Pricing
from $2.85 / 1,000 results
Rating
0.0
(0)
Developer
ParseForge
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
6 days ago
Last modified
Categories
Share

🖼 Wikimedia Commons Media Scraper
🚀 Turn Wikimedia Commons into clean media records in one run. Pull file metadata by search query, by category, or by exact File titles straight from the official MediaWiki API.
🕒 Last updated: 2026-06-08 · 📊 Up to 19 fields per record · 3 lookup modes · no key required
Wikimedia Commons hosts over 100 million freely licensed images, audio, and video files. This Actor reads its public MediaWiki API and returns one tidy record per media file, with the full file URL first so previews work instantly. Point it at a search term, a category, or a list of File: titles and get back the metadata that matters for reuse and attribution.
Coverage is whatever Commons exposes through prop=imageinfo: the original file URL and a thumbnail, dimensions and byte size, MIME type, uploader, plus the license, author, credit, description, and category list pulled from the file's extmetadata.
| 🎯 Target Audience | 💡 Primary Use Cases |
|---|---|
| Content and media teams | Source freely licensed images with attribution |
| Wiki and dataset builders | Seed a library from a category or search |
| Researchers and archivists | Catalog open media with license and author data |
| App and bot developers | Feed image lookups without scraping HTML |
📋 What the Wikimedia Commons Media Scraper does
This Actor calls the public Wikimedia Commons MediaWiki API and returns one clean record per media file for the mode you choose:
- Search — run a full text file search and collect matching files with full metadata.
- Category — list every file in a category, with or without the
Category:prefix. - Titles — fetch an exact list of
File:pages you already know.
Every record leads with the image URL, carries license and author fields parsed out of the HTML extmetadata, and includes a scrapedAt timestamp. Files that do not exist are reported as error records, not silently dropped.
🎬 Full Demo (🚧 Coming soon)
⚙️ Input
| Field | Type | Description |
|---|---|---|
mode | select | How to find files. One of search, category, or titles. Defaults to search. |
search | string | Free text query, used when mode is search. |
category | string | Category name, used when mode is category. The Category: prefix is optional. |
titles | array | List of exact File: titles, used when mode is titles. |
maxItems | integer | How many records to return. Free plan is capped at 10. |
Example 1 — search files by query
{"mode": "search","search": "eiffel tower","maxItems": 25}
Example 2 — files in a category
{"mode": "category","category": "Bridges in Paris","maxItems": 50}
⚠️ Good to Know: Some fields come from the file's
extmetadata, which volunteers fill in by hand. Most popular files include a license, author, and description, but older or sparsely documented uploads may leave some of those values empty. The file URL, thumbnail, dimensions, MIME type, and size always come back.
📊 Output
Each record looks like this:
| Field | Description |
|---|---|
🖼 imageUrl | Full original media file URL |
🖼 thumbUrl | 320px thumbnail URL |
📌 title | File page title, including the File: prefix |
🆔 pageId | Commons page ID |
🔗 descriptionUrl | File description page on Commons |
🗂 mime | MIME type, for example image/jpeg |
💾 size | File size in bytes |
↔ width | Width in pixels |
↕ height | Height in pixels |
👤 uploader | Username that uploaded the file |
📝 description | Image description text |
✍ artist | Author or creator |
🏷 credit | Source or credit line |
⚖ licenseShortName | Short license name, for example CC BY-SA 4.0 |
📄 usageTerms | Full usage terms text |
🔗 licenseUrl | Link to the license, when present |
📅 dateOriginal | Original creation date text |
🗂 categories | Array of category names |
🕒 scrapedAt | Collection timestamp |
❌ error | Null on success |
Real sample — public domain image
{"imageUrl": "https://upload.wikimedia.org/wikipedia/commons/a/a8/Tour_Eiffel_Wikimedia_Commons.jpg","thumbUrl": "https://upload.wikimedia.org/wikipedia/commons/thumb/a/a8/Tour_Eiffel_Wikimedia_Commons.jpg/330px-Tour_Eiffel_Wikimedia_Commons.jpg","title": "File:Tour Eiffel Wikimedia Commons.jpg","pageId": 6926930,"descriptionUrl": "https://commons.wikimedia.org/wiki/File:Tour_Eiffel_Wikimedia_Commons.jpg","mime": "image/jpeg","size": 5279797,"width": 2900,"height": 5367,"uploader": "Benh","description": "Eiffel Tower, seen from the Champ de Mars, Paris, France","artist": "Benh LIEU SONG","credit": "Own work","licenseShortName": "Public domain","usageTerms": "Public domain","licenseUrl": null,"dateOriginal": "2009-06-01","categories": ["Featured pictures of the Eiffel Tower", "Eiffel Tower in 2009"],"scrapedAt": "2026-06-08T18:03:00.950Z","error": null}
Real sample — Creative Commons image
{"imageUrl": "https://upload.wikimedia.org/wikipedia/commons/b/b7/Paris_-_The_Eiffel_Tower_in_spring_-_2307.jpg","thumbUrl": "https://upload.wikimedia.org/wikipedia/commons/thumb/b/b7/Paris_-_The_Eiffel_Tower_in_spring_-_2307.jpg/330px-Paris_-_The_Eiffel_Tower_in_spring_-_2307.jpg","title": "File:Paris - The Eiffel Tower in spring - 2307.jpg","pageId": 21375035,"descriptionUrl": "https://commons.wikimedia.org/wiki/File:Paris_-_The_Eiffel_Tower_in_spring_-_2307.jpg","mime": "image/jpeg","size": 10560855,"width": 4368,"height": 2912,"uploader": "Jorgeroyan","description": "The Eiffel Tower in spring, Paris, France.","artist": "Jorge Royan","credit": "Own work","licenseShortName": "CC BY-SA 3.0","usageTerms": "Creative Commons Attribution-Share Alike 3.0","licenseUrl": "https://creativecommons.org/licenses/by-sa/3.0","dateOriginal": "2008","categories": ["Featured pictures of the Eiffel Tower", "Spring in Paris"],"scrapedAt": "2026-06-08T18:03:01.004Z","error": null}
Real sample — historic photograph
{"imageUrl": "https://upload.wikimedia.org/wikipedia/commons/d/d7/Lightning_striking_the_Eiffel_Tower_-_NOAA.jpg","thumbUrl": "https://upload.wikimedia.org/wikipedia/commons/thumb/d/d7/Lightning_striking_the_Eiffel_Tower_-_NOAA.jpg/330px-Lightning_striking_the_Eiffel_Tower_-_NOAA.jpg","title": "File:Lightning striking the Eiffel Tower - NOAA.jpg","pageId": 422551,"descriptionUrl": "https://commons.wikimedia.org/wiki/File:Lightning_striking_the_Eiffel_Tower_-_NOAA.jpg","mime": "image/jpeg","size": 2786359,"width": 1072,"height": 1624,"uploader": "Paris 16","description": "Lightning striking the Eiffel Tower, June 3, 1902, at 9:20 P.M.","artist": "Gabriel Loppé","credit": "photolib.noaa.gov Image ID: wea00602, Historic NWS Collection","licenseShortName": "Public domain","usageTerms": "Public domain","licenseUrl": null,"dateOriginal": "1902-06-03 21:20","categories": ["Black and white photographs of the Eiffel Tower", "Lightning in Paris"],"scrapedAt": "2026-06-08T18:03:01.093Z","error": null}
✨ Why choose this Actor
- One clean record per media file, with the image URL placed first for instant previews.
- Three lookup modes in one Actor, so search, category, and title runs share a consistent shape.
- License, author, credit, and usage terms are parsed out of the raw HTML so they arrive as plain text.
- No Wikimedia account, no key, and no login required. A descriptive User Agent is sent on every request.
- Stable field names that map cleanly onto a media library or database schema.
📈 How it compares to alternatives
| Approach | Effort | Structured fields | License + author | Maintenance |
|---|---|---|---|---|
| This Actor | One run | Yes | Yes | None on your side |
| Copying files from the website | Hours | Inconsistent | Manual | Constant |
| Writing your own API client | Days | Depends | You parse the HTML | You own the upkeep |
🚀 How to use
- Create a free Apify account using this sign-up link.
- Open the Wikimedia Commons Media Scraper.
- Pick a
mode(search, category, or titles) and fill in the matching field. - Set
maxItemsto the number of records you want. - Click Start and grab your results when the run finishes.
💼 Business use cases
Media and content teams
| Goal | How this helps |
|---|---|
| Source freely licensed visuals | Search a topic and keep the license and author for credit |
| Build an asset shortlist | Pull a category and review dimensions and size |
Catalogs and datasets
| Goal | How this helps |
|---|---|
| Seed an image library | List a whole category in one run |
| Enrich existing records | Fetch exact titles and attach metadata |
Research and archiving
| Goal | How this helps |
|---|---|
| Study a topic's media | Group files by category and license |
| Preserve attribution | Capture author, credit, and usage terms |
Apps and bots
| Goal | How this helps |
|---|---|
| Power an image lookup feature | Query by title and return a clean URL |
| Avoid HTML scraping | Read the structured API instead |
🔌 Automating Wikimedia Commons Media Scraper
Connect runs to the tools you already use:
- Make and Zapier to trigger runs and route records into sheets or databases.
- Slack to post a summary when a run finishes.
- Airbyte to load results into a warehouse.
- GitHub Actions to schedule periodic snapshots.
- Google Drive to archive each run's output.
🌟 Beyond business use cases
- Research: map how a subject is illustrated across Commons.
- Personal: collect properly attributed images for a blog or slideshow.
- Non-profit: build an open media resource for a community project.
- Experimentation: prototype a media app without writing an API client.
🤖 Ask an AI assistant
Paste your results into ChatGPT, Claude, Perplexity, or Microsoft Copilot and ask it to group files by license, draft attribution lines, or shortlist images by size and dimensions.
❓ Frequently Asked Questions
Do I need a Wikimedia or Wikipedia account? No. The Actor reads the public MediaWiki API, which needs no login.
Do I need an API key? No key is required. A descriptive User Agent is sent on every request, as Wikimedia asks.
Which lookup modes are there?
Search by query, list a category, or fetch exact File: titles. Pick one per run with the mode input.
Does it return audio and video too? Yes. Any file namespace entry works, so images, audio, and video files all come back with their URL, MIME type, and metadata.
Why is the license or author sometimes empty?
Those values come from the file's extmetadata, which volunteers fill in by hand. The file URL, thumbnail, dimensions, MIME type, and size are always present.
Do I get the original file or a thumbnail?
Both. imageUrl is the full original file and thumbUrl is a 320px thumbnail.
Can I look up many titles at once?
Yes. Provide a list of File: titles and the Actor fetches them in batches.
What happens if a title does not exist? The Actor writes an error record for that title and keeps going with the rest.
How fresh is the data? Each run pulls live from the MediaWiki API, so it reflects Commons at run time.
Can I schedule this? Yes. Use Apify Schedules to snapshot a search or category on any cadence.
🔌 Integrate with any app
Results are available through the Apify API, so you can pull them into any app, database, or workflow you already run.
🔗 Recommended Actors
- Have I Been Pwned Breaches Catalog Scraper
- Brawlify Brawl Stars Database Scraper
- More reference and open data Actors in the ParseForge collection
💡 Pro Tip: browse the complete ParseForge collection.
🆘 Need Help? Open our contact form
⚠️ Disclaimer: independent tool, not affiliated with Wikimedia Commons or the Wikimedia Foundation. Only publicly available data is collected.