Wikimedia Commons Media Scraper avatar

Wikimedia Commons Media Scraper

Pricing

from $2.85 / 1,000 results

Go to Apify Store
Wikimedia Commons Media Scraper

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

ParseForge

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

6 days ago

Last modified

Share

ParseForge Banner

🖼 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 teamsSource freely licensed images with attribution
Wiki and dataset buildersSeed a library from a category or search
Researchers and archivistsCatalog open media with license and author data
App and bot developersFeed 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

FieldTypeDescription
modeselectHow to find files. One of search, category, or titles. Defaults to search.
searchstringFree text query, used when mode is search.
categorystringCategory name, used when mode is category. The Category: prefix is optional.
titlesarrayList of exact File: titles, used when mode is titles.
maxItemsintegerHow 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:

FieldDescription
🖼 imageUrlFull original media file URL
🖼 thumbUrl320px thumbnail URL
📌 titleFile page title, including the File: prefix
🆔 pageIdCommons page ID
🔗 descriptionUrlFile description page on Commons
🗂 mimeMIME type, for example image/jpeg
💾 sizeFile size in bytes
widthWidth in pixels
heightHeight in pixels
👤 uploaderUsername that uploaded the file
📝 descriptionImage description text
artistAuthor or creator
🏷 creditSource or credit line
licenseShortNameShort license name, for example CC BY-SA 4.0
📄 usageTermsFull usage terms text
🔗 licenseUrlLink to the license, when present
📅 dateOriginalOriginal creation date text
🗂 categoriesArray of category names
🕒 scrapedAtCollection timestamp
errorNull 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

ApproachEffortStructured fieldsLicense + authorMaintenance
This ActorOne runYesYesNone on your side
Copying files from the websiteHoursInconsistentManualConstant
Writing your own API clientDaysDependsYou parse the HTMLYou own the upkeep

🚀 How to use

  1. Create a free Apify account using this sign-up link.
  2. Open the Wikimedia Commons Media Scraper.
  3. Pick a mode (search, category, or titles) and fill in the matching field.
  4. Set maxItems to the number of records you want.
  5. Click Start and grab your results when the run finishes.

💼 Business use cases

Media and content teams

GoalHow this helps
Source freely licensed visualsSearch a topic and keep the license and author for credit
Build an asset shortlistPull a category and review dimensions and size

Catalogs and datasets

GoalHow this helps
Seed an image libraryList a whole category in one run
Enrich existing recordsFetch exact titles and attach metadata

Research and archiving

GoalHow this helps
Study a topic's mediaGroup files by category and license
Preserve attributionCapture author, credit, and usage terms

Apps and bots

GoalHow this helps
Power an image lookup featureQuery by title and return a clean URL
Avoid HTML scrapingRead 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.

💡 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.