Openverse Creative Commons Media Scraper: CC0 Images & Audio avatar

Openverse Creative Commons Media Scraper: CC0 Images & Audio

Pricing

from $8.32 / 1,000 results

Go to Apify Store
Openverse Creative Commons Media Scraper: CC0 Images & Audio

Openverse Creative Commons Media Scraper: CC0 Images & Audio

Search openly-licensed Creative Commons and public-domain images and audio from Openverse (Flickr, Wikimedia, museums, Jamendo). Every asset returns its license, human-readable label, ready-to-use attribution, provider and commercial-use flags. Export to JSON, CSV or Excel.

Pricing

from $8.32 / 1,000 results

Rating

0.0

(0)

Developer

Scrapers Lat

Scrapers Lat

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

11 hours ago

Last modified

Share

Openverse Creative Commons Media Scraper: CC0 Images & Audio

Openverse Creative Commons Media Scraper: CC0 Images & Audio

Search openly-licensed, royalty-free images and audio and get the license, attribution and source provenance for every asset, so you can reuse it legally. Here is one real result, with every field the actor returns:

{
"id": "89f5ff02-d895-455c-9c9c-cd8dd934c8bf",
"mediaType": "image",
"title": "You Looking at Me? Mountains goats in Glacier National Park, Montana",
"creator": "U.S. Geological Survey",
"creatorUrl": "https://www.flickr.com/photos/27784370@N05",
"license": "cc0",
"licenseVersion": "1.0",
"licenseUrl": "https://creativecommons.org/publicdomain/zero/1.0/",
"licenseLabel": "CC0 1.0",
"commercialUse": true,
"modificationsAllowed": true,
"url": "https://live.staticflickr.com/5550/13974169513_5e21ce9b9a.jpg",
"thumbnail": "https://api.openverse.org/v1/images/89f5ff02-d895-455c-9c9c-cd8dd934c8bf/thumb/",
"foreignLandingUrl": "https://www.flickr.com/photos/27784370@N05/13974169513",
"provider": "flickr",
"source": "flickr",
"category": null,
"width": 500,
"height": 339,
"filetype": null,
"filesize": null,
"durationMs": null,
"bitRate": null,
"sampleRate": null,
"genres": null,
"waveform": null,
"tags": ["alpine", "climatechange", "glacier", "glaciernationalpark", "habitats", "mammals"],
"tagCount": 10,
"attribution": "\"You Looking at Me? Mountains goats in Glacier National Park, Montana\" by U.S. Geological Survey is marked with CC0 1.0. To view the terms, visit https://creativecommons.org/publicdomain/zero/1.0/.",
"relatedUrl": "https://api.openverse.org/v1/images/89f5ff02-d895-455c-9c9c-cd8dd934c8bf/related/",
"detailFetched": false,
"aiAltText": null,
"aiCaption": null,
"aiSeoKeywords": null,
"detailUrl": "https://api.openverse.org/v1/images/89f5ff02-d895-455c-9c9c-cd8dd934c8bf/",
"searchQuery": "mountain",
"observedAt": "2026-08-17T01:24:21.071Z"
}

The complete Creative Commons media search in one actor. It returns openly-licensed and public-domain images and audio aggregated from Flickr, Wikimedia Commons, museums, Jamendo and more, and for every asset it gives you the exact license, a human-readable license label, a ready-to-use attribution string, and derived commercialUse and modificationsAllowed flags. That is what turns a random image URL into media you can safely reuse.

📥 Input · 📤 Output · 💰 Pricing · ▶️ Examples

Apify Coverage License Output

Table of contents

What it does

The actor searches the Openverse catalog of openly-licensed media by keyword and writes one record per media item to the run's dataset. Choose images or audio, then narrow with filters for license code, commercial or modification usage, provider, category, file extension, image aspect ratio and size, and creator. Every record carries the direct file URL, thumbnail, original source page, provider and source, dimensions, tags, and the full licensing block: license, licenseVersion, licenseUrl, a human-readable licenseLabel such as CC BY-SA 4.0, a ready-to-paste attribution string, and the derived commercialUse and modificationsAllowed booleans so you instantly know how each asset may be used.

Two optional add-ons (paid Apify plans only) enrich each item. includeDetail fetches the per-item detail endpoint to add the complete tag set, a related-media link and any metadata the search list omits. withAiCaption generates accessibility alt text, an SEO caption and keywords from the item's title and tags. Note that the AI caption is produced from the item metadata only; the model does not see the image or audio itself. Missing values are always returned as null, never invented.

Use cases

  • Royalty-free media libraries. Build a searchable library of CC0 images, public-domain photos and stock media that your team can reuse without licensing risk.
  • Attribution-clean blogging and design. Grab commercially-usable stock photos with a ready-made credit line for blog posts, presentations, newsletters and social media.
  • ML and AI training datasets. Assemble openly-licensed image and audio datasets for machine learning, filtered to commercialUse and modificationsAllowed so the training data is safe to use.
  • Accessibility and SEO. Use the AI caption add-on to generate alt text and SEO keywords for every reused asset.
  • Licensing compliance audits. Verify the license, version and attribution requirement of media before publishing, at scale.
  • Music and sound sourcing. Find Creative Commons audio, tracks and sound effects for videos, podcasts and games with duration, genre and license in every row.

Quickstart

Open the actor, paste this into the input, and press Run. It returns up to 50 CC0 (public-domain) photographs of mountains.

{
"mediaType": "image",
"query": "mountain",
"license": "cc0",
"maxResults": 50
}

Change query to any keyword, switch mediaType to audio for music and sound, or set licenseType to commercial to restrict to commercially-usable media. Every filter is optional.

Input reference

FieldTypeRequiredDefaultDescription
mediaTypestringnoimageWhich catalog to search: image or audio.
querystringnomountainKeywords to search for, for example sunset, jazz, vintage poster.
licensestringnocc0Comma-separated Creative Commons license codes: cc0, pdm, by, by-sa, by-nc, by-nd, by-nc-sa, by-nc-nd.
licenseTypestringno(any)Usage filter: commercial, modification, or both.
sourcestringno(any)Restrict to one provider, for example flickr, wikimedia, jamendo, freesound, met.
categorystringno(any)Content category. Images: photograph, illustration, digitized_artwork. Audio: music, sound_effect, podcast, audiobook, news.
extensionstringno(any)File type. Images: jpg, png, gif, svg. Audio: mp3, ogg, flac, wav.
aspectRatiostringno(any)Image shape: tall, wide, square.
sizestringno(any)Image resolution: small, medium, large.
creatorstringno(any)Only return media by this creator or artist name.
maxResultsintegerno50Maximum number of media items to collect across all pages.
includeDetailbooleannofalsePaid add-on. Enrich each item from its detail endpoint (full tags, related media, extra metadata). Billed per item on a successful detail fetch.
withAiCaptionbooleannofalsePaid AI add-on. Generate alt text, an SEO caption and keywords from the item's title and tags. Billed per item captioned.

Output reference

One dataset item per media asset. Types: string, integer, boolean, string[], or null when the source value is absent.

FieldTypeDescription
idstringOpenverse media item ID.
mediaTypestringimage or audio.
titlestringMedia title.
creatorstringCreator or artist name, or null.
creatorUrlstringCreator profile URL, or null.
licensestringCreative Commons license code, for example by-sa.
licenseVersionstringLicense version, for example 4.0.
licenseUrlstringURL of the license deed.
licenseLabelstringHuman-readable label, for example CC BY-SA 4.0 or CC0 1.0.
commercialUsebooleanWhether the license allows commercial use (derived from the license code).
modificationsAllowedbooleanWhether the license allows modifications or derivatives (derived from the license code).
urlstringDirect URL of the media file.
thumbnailstringThumbnail image URL.
foreignLandingUrlstringOriginal source page URL.
providerstringAggregated provider, for example flickr, wikimedia.
sourcestringOriginal media source.
categorystringContent category, or null.
widthintegerImage width in pixels, or null.
heightintegerImage height in pixels, or null.
filetypestringFile type, for example jpg, mp3, or null.
filesizeintegerFile size in bytes, or null.
durationMsintegerAudio duration in milliseconds (audio only), or null.
bitRateintegerAudio bit rate (audio only), or null.
sampleRateintegerAudio sample rate (audio only), or null.
genresstring[]Audio genres (audio only), or null.
waveformstringAudio waveform data URL (audio only), or null.
tagsstring[]Tag names describing the media.
tagCountintegerNumber of tags.
attributionstringReady-to-use attribution / credit string.
relatedUrlstringURL for related media.
detailFetchedbooleanWhether the detail add-on enriched this item.
aiAltTextstringAI-generated accessibility alt text when the add-on is enabled, else null.
aiCaptionstringAI-generated SEO caption when the add-on is enabled, else null.
aiSeoKeywordsstring[]AI-generated SEO keywords when the add-on is enabled, else null.
detailUrlstringOpenverse detail endpoint URL for this item.
searchQuerystringSearch query that produced this record.
observedAtstringISO 8601 timestamp of when the record was collected.
errorstringPresent only on a failed run; a single item with a populated error field is written instead.

Run via API and CLI

Start a run and wait for it to finish, then read the dataset. Replace <TOKEN> with your Apify API token.

Run synchronously and get dataset items in one call:

curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~openverse-cc-media-scraper/run-sync-get-dataset-items?token=<TOKEN>" \
-H "Content-Type: application/json" \
-d '{"mediaType":"image","query":"mountain","license":"cc0","maxResults":50}'

Start a run asynchronously:

curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~openverse-cc-media-scraper/runs?token=<TOKEN>" \
-H "Content-Type: application/json" \
-d '{"mediaType":"audio","query":"jazz","license":"cc0,by","maxResults":200}'

Apify CLI:

apify call scrapers_lat/openverse-cc-media-scraper \
--input '{"mediaType":"image","query":"sunset","licenseType":"commercial"}'

Fetch results

Every run writes to a dataset. Fetch items as JSON, CSV, or Excel by changing format:

# JSON
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=json"
# CSV
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=csv"
# Paginate large datasets
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&offset=1000&limit=1000"

<DATASET_ID> is returned as defaultDatasetId in the run object. Use offset and limit to page through large result sets. clean=true drops empty and internal fields.

Billing and limits

  • Pay per result. You are charged per media item returned (result event). See the pricing tab for the current per-result price.
  • Add-ons billed separately. detail is charged per item only on a successful detail fetch, and ai_caption is charged per item only when the model returns usable output. Both add-ons are opt-in and available on paid Apify plans only.
  • No charge on failure. If a run errors, the actor writes a single item with a populated error field and does not charge for it. Empty and zero-result runs cost nothing.
  • Spend cap respected. Set maxTotalChargeUsd on the run; once reached, the actor stops emitting and charging further billable results.
  • Free Apify plans are capped at 10 items per run and cannot use the paid add-ons. Upgrade for higher maxResults.

FAQ and troubleshooting

Is the media really free to use? Yes, subject to its license. Every record includes the license code, a human-readable label and the exact attribution string. Assets marked commercialUse: true and modificationsAllowed: true are the most permissive. Public-domain items (cc0, pdm) need no attribution, though crediting the creator is good practice.

How are commercialUse and modificationsAllowed decided? They are derived from the Creative Commons license code: commercialUse is false when the license carries the NonCommercial (nc) term, and modificationsAllowed is false when it carries the NoDerivatives (nd) term. Always confirm against the linked licenseUrl for your specific use.

Can I search audio as well as images? Yes. Set mediaType to audio to search Creative Commons music, tracks and sound effects, with durationMs, bitRate, genres and a waveform link on each row.

What does the AI caption add-on actually see? It generates alt text, a caption and SEO keywords from the item's title and tags only. It does not analyze the image or audio file itself, so treat the output as metadata-derived assistance.

A run returned 0 records. Why? Your query and filters matched no media. Try a broader keyword or remove filters such as license, source or extension. Zero-result runs are not charged.

Is this an official Openverse or Creative Commons tool? No. This actor is independent and has no affiliation with Openverse, WordPress or Creative Commons. It reads only openly-licensed media metadata that is publicly available.

More scrapers at scrapers.lat

Built and maintained by scrapers.lat, where we publish scrapers for public platforms: company registries, government data, finance, e-commerce, media and more. Browse the catalog or request a custom scraper at scrapers.lat.


Independent tool, not affiliated with Openverse, WordPress or Creative Commons. Accesses only publicly available openly-licensed media metadata.