Creative Commons Media Search - Openverse Scraper avatar

Creative Commons Media Search - Openverse Scraper

Pricing

from $0.80 / 1,000 record scrapeds

Go to Apify Store
Creative Commons Media Search - Openverse Scraper

Creative Commons Media Search - Openverse Scraper

Search and export Creative Commons and public domain images and audio from Openverse's 800M+ item media index (Flickr, Wikimedia Commons, NASA, Smithsonian, Europeana, Jamendo and 50+ more). Filter by license, category and provider; each record includes the file URL, creator and attribution text.

Pricing

from $0.80 / 1,000 record scrapeds

Rating

0.0

(0)

Developer

BowTiedRaccoon

BowTiedRaccoon

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Creative Commons Media Search — Openverse Scraper

Search and export Creative Commons and public domain images and audio from Openverse, the open media index spanning 800M+ works. Returns the direct file URL, creator, license code, ready-to-use attribution text, tags, and format details for every record across 50+ sources including Flickr, Wikimedia Commons, NASA, and the Smithsonian.


Openverse Scraper Features

  • Searches images and audio in one run, or narrows to a single media type
  • Filters by license — CC BY, CC0, public domain mark, and 7 more — plus category, provider, and (for images) aspect ratio and size
  • Returns full license metadata and pre-formatted attribution text, not just a license code
  • Covers 50+ providers spanning Flickr, Wikimedia Commons, NASA, the Smithsonian, Europeana, and Jamendo
  • Includes direct file URLs, dimensions or duration, tags, and file type — everything needed to actually use the media, not just find it

Who Uses Openverse Media Data?

  • Content marketers — source properly licensed imagery for blog posts and social without a stock-photo subscription
  • Educators and course creators — pull public domain photographs and CC-licensed audio for slide decks and course materials, with the attribution text already written
  • App and product teams — populate a media library with openly licensed assets and keep the license trail for legal review
  • Researchers — build datasets of openly licensed images or audio filtered by exact license, so provenance is never in question
  • Archivists and librarians — track what a specific institution — Smithsonian, NYPL, Europeana — has released under open licenses

How Openverse Scraper Works

  1. Pick a media type — images, audio, or both — and an optional search phrase.
  2. Narrow the results with license, category, provider, or (for images) size and aspect ratio filters.
  3. The scraper pages through Openverse's index until it hits your maxItems cap, capturing every field the source returns.
  4. Each record lands in the dataset with a direct file URL, creator, and pre-formatted attribution text — ready to drop into a CMS or dataset.

Input

{
"mediaTypes": ["images"],
"searchQuery": "mountain landscape",
"licenses": ["cc0", "by"],
"imageCategories": ["photograph"],
"maxItems": 200
}
FieldTypeDefaultDescription
mediaTypesArray["images"]Which Openverse media types to search — images, audio, or both. Empty selects both.
searchQueryString""Full-text search phrase, matched against title, description and tags. Leave blank to browse by filters only.
licensesArray[]Restrict to one or more specific licenses (CC BY, CC0, public domain mark, and 7 more). Empty includes every license.
imageCategoriesArray[]Restrict image results to one or more categories (photograph, illustration, digitized artwork). Images only.
audioCategoriesArray[]Restrict audio results to one or more categories (music, podcast, sound effect, and 3 more). Audio only.
sourcesArray[]Restrict to one or more of Openverse's 50+ provider sources (Flickr, NASA, Jamendo, and more). A provider only applies to the media type it actually serves.
aspectRatioArray[]Restrict image results to square, tall, or wide. Images only.
imageSizeArray[]Restrict image results to large, medium, or small. Images only.
includeMatureBooleanfalseInclude results Openverse flags as sensitive/mature content.
maxItemsInteger10Maximum number of media records to return.

Searching only audio, filtered to a couple of providers:

{
"mediaTypes": ["audio"],
"searchQuery": "jazz",
"sources": ["jamendo", "freesound"],
"maxItems": 100
}

Openverse Scraper Output Fields

Every record carries the same 24 fields. width/height populate on images; durationMs and genres populate on audio — the fields that don't apply to a record's media type come back null.

Example — Image Record

{
"id": "1c5442f6-6bb6-4ab7-b603-f598e7579dd2",
"mediaType": "image",
"title": "Cat Fish 2",
"creator": "admiller",
"creatorUrl": "https://www.flickr.com/photos/32426194@N00",
"source": "flickr",
"license": "by",
"licenseVersion": "2.0",
"licenseUrl": "https://creativecommons.org/licenses/by/2.0/",
"attribution": "\"Cat Fish 2\" by admiller is licensed under CC BY 2.0. To view a copy of this license, visit https://creativecommons.org/licenses/by/2.0/.",
"foreignLandingUrl": "https://www.flickr.com/photos/32426194@N00/3481540500",
"fileUrl": "https://live.staticflickr.com/3313/3481540500_c846c62863_b.jpg",
"thumbnailUrl": "https://api.openverse.org/v1/images/1c5442f6-6bb6-4ab7-b603-f598e7579dd2/thumb/",
"category": null,
"tags": ["cat", "glass", "one"],
"fileType": null,
"fileSize": null,
"mature": false,
"width": 716,
"height": 1024,
"durationMs": null,
"genres": [],
"detailUrl": "https://api.openverse.org/v1/images/1c5442f6-6bb6-4ab7-b603-f598e7579dd2/",
"scraped_at": "2026-09-30T02:15:00.000Z"
}

Example — Audio Record

{
"id": "8457fac8-84be-48b9-9b57-143ec5e5fbd9",
"mediaType": "audio",
"title": "latino-jazz-cash",
"creator": "Les Oreilles en Ballades",
"creatorUrl": "https://www.jamendo.com/artist/2210/les.oreilles.en.ballades",
"source": "jamendo",
"license": "by-nc-nd",
"licenseVersion": "2.5",
"licenseUrl": "https://creativecommons.org/licenses/by-nc-nd/2.5/",
"attribution": "\"latino-jazz-cash\" by Les Oreilles en Ballades is licensed under CC BY-NC-ND 2.5.",
"foreignLandingUrl": "https://www.jamendo.com/track/15767",
"fileUrl": "https://prod-1.storage.jamendo.com/?trackid=15767&format=mp32",
"thumbnailUrl": null,
"category": "music",
"tags": ["energetic", "instrumental"],
"fileType": "mp32",
"fileSize": null,
"mature": false,
"width": null,
"height": null,
"durationMs": 202000,
"genres": ["funk", "pop", "rnb"],
"detailUrl": "https://api.openverse.org/v1/audio/8457fac8-84be-48b9-9b57-143ec5e5fbd9/",
"scraped_at": "2026-09-30T02:15:00.000Z"
}
FieldTypeDescription
idStringOpenverse UUID for this media item.
mediaTypeStringimage or audio.
titleStringTitle of the work.
creatorStringName of the creator/artist, where credited.
creatorUrlStringLink to the creator's profile on the source platform.
sourceStringMachine-readable provider code (e.g. flickr, wikimedia, jamendo).
licenseStringLicense code (e.g. by, cc0, pdm).
licenseVersionStringLicense version (e.g. 4.0, 2.0).
licenseUrlStringLink to the full legal license text.
attributionStringReady-to-use attribution text for this work.
foreignLandingUrlStringLink to the work's original page on the source platform.
fileUrlStringDirect URL to the media file.
thumbnailUrlStringDirect URL to a thumbnail/preview of the media file.
categoryStringOpenverse category (e.g. photograph, illustration, music, podcast).
tagsArrayTags/keywords associated with the work.
fileTypeStringFile extension/format (e.g. jpg, mp3), where known.
fileSizeInteger | nullFile size in bytes, where known.
matureBooleanWhether Openverse flags this item as sensitive/mature content.
widthInteger | nullImage width in pixels. Images only.
heightInteger | nullImage height in pixels. Images only.
durationMsInteger | nullAudio duration in milliseconds. Audio only.
genresArrayMusic genres, where tagged. Audio only.
detailUrlStringOpenverse API detail endpoint for this item.
scraped_atStringISO 8601 timestamp of when the record was emitted.

FAQ

How do I search Openverse for Creative Commons images?

Set mediaTypes to ["images"], add a searchQuery, and optionally narrow with licenses or imageCategories. Leave searchQuery blank to browse a filtered slice of the index instead of running a text search.

Do I need an account or API key for Openverse?

No. Openverse Scraper needs no account, no API key, and no login on your end — point it at a query and filters, and it returns records.

Can I filter results to a specific license?

Yes. The licenses field accepts any combination of the ten licenses Openverse tracks — CC BY, CC BY-SA, CC0, the Public Domain Mark, and the rest. Leave it empty to pull every license.

What's the difference between images and audio results?

Both media types share the same 24-field output shape. Image records populate width and height; audio records populate durationMs and genres instead — the fields that don't apply come back null rather than being omitted.

How many records can I pull in one run?

As many as your maxItems allows. Openverse Scraper paginates automatically until it reaches that cap or the source runs out of matching records, whichever comes first.


Need More Features?

Need custom fields, filters, or a different target site? File an issue or get in touch.

Why Use Openverse Scraper?

  • Accurate licensing, every time — full license code, version, URL, and pre-formatted attribution text on every record, not a best-guess string.
  • One actor, two media types — search images and audio together or separately, with filters tuned to what each media type actually supports (aspect ratio and size for images, genres and category for audio).
  • Broad provider coverage — 50+ sources in one query, from Flickr and NASA to the Smithsonian and Europeana, instead of hitting each source separately.