About FindOpera
A community-maintained catalog of opera recordings, with structured data including who sang which role, under which conductor, and where to stream or buy it.
Finding a recording
Streaming services are good at playing opera and bad at describing it. An album page gives you the opera and usually the conductor, rarely who sang which role.
Search or browse for something to hear, compare casts, conductors and years, then play it on the service you use.
Or start from what is already playing. Paste a Spotify, Apple Music or Tidal link into the search box, or the barcode off the back of the box, and it jumps to the full role-by-role cast. Every singer, conductor, composer, opera and character has a page of their recordings too, so Violetta is as good a starting point as La traviata.
Open API for tools and agents
Everything on the site is available through a GraphQL API and an agent-friendly command line tool, both open and both designed to be read by software.
The CLI can be used to catalog and organize your own collection, whether you drive it or an agent does. Agents are quite good at searching the catalog and identifying which recording it sees. Given the id of a recording it names the folder and leaves a tagged text file of detailed notes beside it (cast, conductor, year, orchestra). Once your files are tagged it can arrange the whole library into a perfectly consistent structure of your own design, written as a plain template.
Fill in what’s missing
If you are organizing your own recordings, you will eventually reach one the catalog has never heard of: a broadcast, a small label, a box set nobody has entered yet. When that happens the tool cannot help you, and the only fix is for someone to add it. That someone may as well be you, and the next person looking for the same recording gets it for free.
Anyone can correct or add anything via the CLI or API. That makes editing a natural job to hand to an agent: read the source, make the change, cite it. Editing means picking a name, and the name is public: it appears on every change you make, so that anyone reading one can see where it came from. If you would rather just point at something that looks wrong, every record page has a Report Issue link.
Every change asks for a source and a reason, and nothing is overwritten. Each record keeps its full history visible, so you can see what it used to say, when it changed and the reason given for it, and Live Changes shows the same for the whole catalog as it happens. Anyone can check a change against the source it cites, and revert one the source does not actually support.
Corrections and conversation are welcome in Discord.
FindOpera is made by Jordan Eldredge, a software engineer and former opera singer.