Everything You Need to Know About Openverse and the WordPress Photo Directory

A screenshot of the redesigned Openverse homepage, with images from a search for 'Olympic games' of athletes from many decades and backgrounds.
The redesigned wordpress.org/openverse homepage

When we announced that Openverse had joined WordPress earlier last year, we were thrilled about the exciting changes coming to the platform. Many of those updates are here.

Openverse, previously known as CC Search, is a search engine for openly licensed media. The index, which joined WordPress in mid-2021, has over 600 million Creative Commons licensed and public domain image and audio files. All files can be used free of charge.

 OpenverseOpenverse Openverse is a search engine for openly-licensed media, including photos, audio, and video. Openverse is also the name for the collection of related code repositories that make up the project. has several new features, including:

  • A redesigned interface: Openverse has a new brand identity and user interface optimized for usability. Find the images and audio files you’re looking for and filterFilter Filters are one of the two types of Hooks https://codex.wordpress.org/Plugin_API/Hooks. They provide a way for functions to modify data of other functions. They are the counterpart to Actions. Unlike Actions, filters are meant to work in an isolated manner, and should never have side effects such as affecting global variables and output. results by license, source, and many other options.
  • Internationalization: Openverse is fully translated in 12 languages, with additional partial translations in other languages. We encourage anyone in the community to submit translations in their own languages.
  • Audio support: Openverse now includes songs, podcasts, samples, and other audio files from FreeSound, Wikimedia Commons, and Jamendo.
  • New image providers: The Openverse team has added two new sources of high-quality photographs, the WordPress Photo Directory and StockSnap. In addition, photo libraries such as EDUimages and Images of Empowerment are now available from Meta Search.

The Openverse project is part of the WordPress community and welcomes contributions from those who want to help it become the best openly licensed media search engine on the internet. The WordPress Photo Directory provides such an opportunity. 

What’s the WordPress Photo Directory?

The WordPress Photo Directory is both a new curated source of free, high-quality photographs and a new submission tool for Openverse, powered by the WordPress community. Without it, you’d need to use Flickr, Wikimedia Commons, or other sources to submit your work to Openverse.

The WordPress Photo Directory aims to be a trusted place for the community to create, share, discover, and reuse free and openly licensed media. All photos in the WordPress Photo Directory images are licensed with the CC0 public domain tool.

The WordPress Photo Directory welcomes contributions in different forms. One of the best ways to get involved is by submitting your photos:

  • Anyone with a wordpress.org account can submit their work to the photo directory. All submissions must meet these guidelines to ensure the quality of content. 
  • Photos will also be categorized and tagged to facilitate searching. Once a submission gets approved, it will be automatically added to the WordPress Photo Directory and the Openverse search engine.

You can also report issues with the directory, or become a photo directory moderator.

It is worth noting that Openverse and the WordPress Photo Directory are separate and independent projects. However, they are complementary in that the images from the directory are discoverable via the Openverse search. All WordPress Photo Directory images can be viewed in Openverse.

Where can you learn more about Openverse?

The Make Openverse blog is one of the best ways to follow along with the project. Feel free to reach out to any Openverse contributors on SlackSlack Slack is a Collaborative Group Chat Platform https://slack.com/. The WordPress community has its own Slack Channel at https://make.wordpress.org/chat/. #openverse, GitHub, or any other channel to learn more about the project. If you are interested in contributing code to Openverse, look at our good first issues or our guide for new contributors.

We hope you are as excited as we are about Openverse, and we look forward to your contributions!

Happy searching!


Thanks to @rmartinezduque @anjanavasan @callye @zackkrida @angelasjin for their work on this post.

#media, #openverse, #photos

Community Meeting Recap (16 August 2022)

Meeting start

🎉 Done!

  • Re-enabled the audio data refresh [ref]
  • Closed the Catalog v1.3.0 milestone [ref]
  • The frontend is now deployedDeploy Launching code from a local development environment to the production web server, so that it's available to visitors. using an ECS based pipeline as releases are cut in GitHubGitHub GitHub is a website that offers online implementation of git repositories that can can easily be shared, copied and modified by other developers. Public repositories are free to host, private repositories require a paid subscription. GitHub introduced the concept of the ‘pull request’ where code changes done in branches by contributors can be reviewed and discussed before being merged be the repository owner. https://github.com/ [ref]
  • Doc fix spanning three of our major repos [ref]
  • Huge win with the APIAPI An API or Application Programming Interface is a software intermediary that allows programs to interact with each other and share data in limited, clearly defined ways. performance mitigation [ref]

👀 Needs review

  • Prevent API tests from making network requests [ref]
  • Configuration options for skipping ingestion errors [ref]
  • Remap ports to non-conflicting range [ref]
  • Airflow v2.3.3 upgrade [ref]
  • Update the Search bar border [ref]
  • Use defineComponent in all components [ref]

💬 Agenda discussion

Priorities of stalled tickets have been adjusted, then issues labeled with critical priority will be addressed first, and then those with open milestones. Of special note:

  • Issue tackling inconsistencies with prettier was adjusted from critical to medium after a hotfix [ref]
  • Discussed updating documentation with the Tailwind Configuration page [ref]
  • Reminder to review and leave feedback on the new headerHeader The header of your site is typically the first thing people will experience. The masthead or header art located across the top of your page is part of the look and feel of your website. It can influence a visitor’s opinion about your content and you/ your organization’s brand. It may also look different on different screen sizes. proposal [ref]

Meeting end

#openverse-weekly-community-meeting

Openverse API results constrained to 20 pages

Due to ongoing automated traffic to the OpenverseOpenverse Openverse is a search engine for openly-licensed media, including photos, audio, and video. Openverse is also the name for the collection of related code repositories that make up the project. APIAPI An API or Application Programming Interface is a software intermediary that allows programs to interact with each other and share data in limited, clearly defined ways., which impacts the stability of wordpress.org/openverse and other integrations, Openverse developers have implemented a maximum page depth of 20 to all Openverse API searches.

The described behavior violates multiple clauses in the Openverse Terms of Service:

  • You must not scrape the content in the Openverse Catalog;
  • You must not use multiple machines to circumvent rate limits or otherwise take measures to bypass our technical or security measures;
  • You must not operate in a way that negatively affects other users of the API or impedes the WordPress Foundation’s ability to provide its services;
https://wordpress.github.io/openverse-api/terms_of_service.html#licensed-uses-and-restrictions

As always, we will post any future changes to the API here for transparency.

Community Meeting Recap (09 August 2022)

Meeting start

🎉 Done!

👀 Needs review

🚧 In progress

An issue is in the todo column and unassigned.

💬 Agenda discussion

One of our agenda items was already tackled in the previous week, so no discussion on it was necessary. We discussed what else is needed before we can close out & deploy the catalog v1.3.0 milestone.

@krysal also brought to folks’ attention that we still need to run a data refresh in order to confirm some issues we completed in the catalog are addressed downstream.

Meeting end

#openverse, #openverse-weekly-community-meeting

Community Meeting Recap (02 August 2022)

Meeting start…

🎉 Done!

👀 Needs review

🚧 In progress

An issue is in the todo column and unassigned.

💬 Agenda discussion

There was a lively discussion about the deprecation of the watermark and oembed endpoints. Much of this involved confusion around APIAPI An API or Application Programming Interface is a software intermediary that allows programs to interact with each other and share data in limited, clearly defined ways. versioning. We likely need to have a wider discussion about API versioning and our intention around it. We are still looking for someone to update the issue based on the discussion.

We also confirmed that we will attempt to use the production ECS frontend deployment as soon as we merge the frontend token PR and update the deployment configuration with the new environment variables.

Meeting end

Openverse Prioritization Meeting 2022-08-10

All OpenverseOpenverse Openverse is a search engine for openly-licensed media, including photos, audio, and video. Openverse is also the name for the collection of related code repositories that make up the project. contributors are invited to attend a new meeting to review our current projects and roadmap for the rest of the year. The first of these sessions will be held on August 10th 2022 at 1500 UTC. Visit the #openverse channel in the Make WP SlackSlack Slack is a Collaborative Group Chat Platform https://slack.com/. The WordPress community has its own Slack Channel at https://make.wordpress.org/chat/. to see a video chat link prior to the meeting start.

Here are some helpful documents for use during the meeting:

And some background documentation that may help facilitate conversation:

#planning, #prioritization, #roadmap

Community Meeting Recap (27 July 2022)

🎉 Done

👀 Needs review

⏳ Upcoming work

💬 Agenda discussion

  1. Remembering folks to share their thoughts on the check-in meeting idea.
  2. APIAPI An API or Application Programming Interface is a software intermediary that allows programs to interact with each other and share data in limited, clearly defined ways. load testing plan for the week. Beginning.

Community Meeting Recap (12 July 2022)

Meeting start

🎉 Done!

  • Action lint added to WordPress/openverse and synced to all downstream repos. [message]
  • Ingestion performance improved by fixing issues in the catalog. [message]
  • License case-sensitivity issue fixed in the APIAPI An API or Application Programming Interface is a software intermediary that allows programs to interact with each other and share data in limited, clearly defined ways.. [message]

👀 Needs review

  • Catalog PR that updates data-refresh DAG to match the ingestion server API. [message]
  • Infrastructure PR that updates the language in our CloudWatch dashboards. [message]
  • Main repo PR that adds info for contributing design work. [message]
  • Downstream repo sync PRs made by the sync bot. [message]

🚧 In progress

  • Catalog PR to check for import errors in DAGs; review changes. [message]

⏳ Upcoming work

  • @aetherunbound intends to work on “Elasticsearch metrics reporting DAG”. [message]
  • @dhruvkb intends to work on “Allow configuring an API key to use for server-side OpenverseOpenverse Openverse is a search engine for openly-licensed media, including photos, audio, and video. Openverse is also the name for the collection of related code repositories that make up the project. API requests” [message]
  • @zackkrida intends to work completes “Dev doc preview should only be run on maintainer PRs” [message]
  • @krysal intends to work on “Snackbar component for displaying messages” [message]

💬 Agenda discussion

  • Discussion around a separate service to generate audio waveforms [message]
  • Discussion around running a stress test on staging to identify cause of ES high usage [message]

Meeting end

Check-in meeting idea

After releasing OpenverseOpenverse Openverse is a search engine for openly-licensed media, including photos, audio, and video. Openverse is also the name for the collection of related code repositories that make up the project. with the new brand and audio content support, the team jumped quickly to work on improving what was online. Most of the improvements made during these weeks have focused on the backstage infrastructure and what supports Openverse to keep running. We have consolidated significant progress.

I do not gauge all the development work as I dedicate my time to designing Openverse and thinking of how visitors browse and interact with the content. Still, I have noticed in our weekly meetings some doubts about what the next steps are and the releases’ scope for the following months.

During those meetings, I see we tend to lose our main path and assign tasks to ourselves that we consider relevant based on our priorities and current progress, but with a blurry milestone of what we intend to achieve. Even when we have a roadmap for this year, it is not clear on the outcomes we planned. This performance risks doing inopportune work and solving problems not chained to agreed outcomes, like a crew where each of us paves a different road.

This conduct is understandable as the weekly meeting focuses on the weekly and bi-weekly progress portrayed on the project board, plus a couple of minutes for questions that attend to the same ongoing tasks. So no blaming anyone here.

To take care of this, I propose having a check-in meeting to review the goal and milestone at that time and discuss what is coming next. This should be a high-level discussion to see the year’s scope and not dive into ticket details. The idea is to have a broad picture of what we are working on, answer doubts related to any upcoming release, assess deadlines, and any other strategic aspect to align us and be on the same page.

What do you think of this idea? Do you share my diagnosis about the lack of direction tendency? Let me know your thoughts and if you agree, share a tentative structure of the session.

X-post: Contributor Teams: Submit WCUS 2022 Table Leads Signup Form by July 29

X-comment from +make.wordpress.org/community: Comment on Contributor Teams: Submit WCUS 2022 Table Leads Signup Form by July 29

Community Meeting Recap (5 July 2022)

Recently completed work

  • Refactor of the search controller in the APIAPI An API or Application Programming Interface is a software intermediary that allows programs to interact with each other and share data in limited, clearly defined ways. [ref]
  • Audio extension fix [ref]
  • Translation (.po) file improvements [ref]
  • New provider script base class [ref]

In Progress

  • Some new community PRs in need of review [ref]
  • Folks are in-general focusing on code review this week, along with ES index and Waveform work

To Do

  • We will cut a release of the API after the Oauth email one-off script is approved [ref]
  • Want to spend more time triaging ES CPU usage this week [ref]
  • There’s an open PR for design documentation improvements in need of review [ref]