CINXE.COM
Development - MusicBrainz
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta content="IE=edge" http-equiv="X-UA-Compatible"/><meta content="width=device-width, initial-scale=1" name="viewport"/><link href="/static/images/favicons/apple-touch-icon-57x57.png" rel="apple-touch-icon" sizes="57x57"/><link href="/static/images/favicons/apple-touch-icon-60x60.png" rel="apple-touch-icon" sizes="60x60"/><link href="/static/images/favicons/apple-touch-icon-72x72.png" rel="apple-touch-icon" sizes="72x72"/><link href="/static/images/favicons/apple-touch-icon-76x76.png" rel="apple-touch-icon" sizes="76x76"/><link href="/static/images/favicons/apple-touch-icon-114x114.png" rel="apple-touch-icon" sizes="114x114"/><link href="/static/images/favicons/apple-touch-icon-120x120.png" rel="apple-touch-icon" sizes="120x120"/><link href="/static/images/favicons/apple-touch-icon-144x144.png" rel="apple-touch-icon" sizes="144x144"/><link href="/static/images/favicons/apple-touch-icon-152x152.png" rel="apple-touch-icon" sizes="152x152"/><link href="/static/images/favicons/apple-touch-icon-180x180.png" rel="apple-touch-icon" sizes="180x180"/><link href="/static/images/favicons/favicon-32x32.png" rel="icon" sizes="32x32" type="image/png"/><link href="/static/images/favicons/favicon-16x16.png" rel="icon" sizes="16x16" type="image/png"/><link href="/static/images/favicons/site.webmanifest" rel="manifest"/><link color="#bb4890" href="/static/images/favicons/safari-pinned-tab.svg" rel="mask-icon"/><link href="/favicon.ico" rel="shortcut icon"/><meta content="#f1f1f1" name="msapplication-TileColor"/><meta content="/static/images/favicons/mstile-144x144.png" name="msapplication-TileImage"/><meta content="#ffffff" name="theme-color"/><title>Development - MusicBrainz</title><link href="https://static.metabrainz.org/MB/common-ada8952.css" rel="stylesheet" type="text/css"/><link href="/static/search_plugins/opensearch/musicbrainz_artist.xml" rel="search" title="MusicBrainz: Artist" type="application/opensearchdescription+xml"/><link href="/static/search_plugins/opensearch/musicbrainz_label.xml" rel="search" title="MusicBrainz: Label" type="application/opensearchdescription+xml"/><link href="/static/search_plugins/opensearch/musicbrainz_release.xml" rel="search" title="MusicBrainz: Release" type="application/opensearchdescription+xml"/><link href="/static/search_plugins/opensearch/musicbrainz_track.xml" rel="search" title="MusicBrainz: Track" type="application/opensearchdescription+xml"/><noscript><link href="https://static.metabrainz.org/MB/noscript-dfb70de.css" rel="stylesheet" type="text/css"/></noscript><script>Object.defineProperty(window,"__MB__",{value:Object.freeze({"DBDefs":Object.freeze({"DB_STAGING_TESTING_FEATURES":false,"DEVELOPMENT_SERVER":false,"DISABLE_IMAGE_EDITING":false,"CRITIQUEBRAINZ_SERVER":"https://critiquebrainz.org","GIT_BRANCH":"production","GIT_SHA":"a63f7da2cf","MAPBOX_ACCESS_TOKEN":"pk.eyJ1IjoibXVzaWNicmFpbnoiLCJhIjoiVmUzVE5ETSJ9.ZAiQ0I_Qf0i8FySu5uCAUQ","MAPBOX_MAP_ID":"mapbox/streets-v11","SENTRY_DSN_PUBLIC":"https://cacc6cf52cccb823aad30ffa7f75a7b3@sentry.metabrainz.org/4","STATIC_RESOURCES_LOCATION":"https://static.metabrainz.org/MB","WEB_SERVER":"musicbrainz.org","WIKITRANS_SERVER":"wiki.musicbrainz.org","MB_LANGUAGES":["de","fr","it","nl","en"]}),"$c":Object.freeze({"action":{"name":"show"},"relative_uri":"/doc/Development","req":{"method":"GET","uri":"https://musicbrainz.org/doc/Development"},"session":{},"stash":{"current_language":"en","server_languages":[{"name":"de","native_language":"Deutsch","native_territory":null,"id":null},{"native_territory":null,"native_language":"English","name":"en","id":null},{"name":"fr","native_language":"français","native_territory":null,"id":null},{"id":null,"name":"it","native_language":"italiano","native_territory":null},{"native_territory":null,"name":"nl","native_language":"Nederlands","id":null}]},"user":null})})})</script><script src="https://static.metabrainz.org/MB/runtime-1bcfb5e.js"></script><script src="https://static.metabrainz.org/MB/common-chunks-db554c6.js"></script><script src="https://static.metabrainz.org/MB/jed-data-48e9f0d.js"></script><script src="https://static.metabrainz.org/MB/common-7f5e314.js" data-args="{"user":null}"></script></head><body><div class="header"><a class="logo" href="/" title="MusicBrainz"><img alt="MusicBrainz" class="logo" src="https://static.metabrainz.org/MB/header-logo-1f7dc2a.svg"/></a><div class="right"><div class="top"><div class="links-container"><ul class="menu" tabindex="-1"><li><a href="/login?returnto=%2Fdoc%2FDevelopment">Log in</a></li><li><a href="/register?returnto=%2Fdoc%2FDevelopment">Create account</a></li></ul></div><div class="search-container"><form action="/search" method="get"><input id="headerid-query" name="query" placeholder="Search" required="" type="text"/> <select id="headerid-type" name="type"><option value="artist">Artist</option><option value="event">Event</option><option value="recording">Recording</option><option value="release">Release</option><option value="release_group">Release group</option><option value="series">Series</option><option value="work">Work</option><option value="area">Area</option><option value="instrument">Instrument</option><option value="label">Label</option><option value="place">Place</option><option value="annotation">Annotation</option><option value="tag">Tag</option><option value="cdstub">CD stub</option><option value="editor">Editor</option><option value="doc">Documentation</option></select> <input id="headerid-method" name="method" type="hidden" value="indexed"/><button type="submit"><img alt="Search" class="search" src="https://static.metabrainz.org/MB/search-52f8034.svg"/></button></form></div></div><div class="bottom"><ul class="menu"><li class="about" tabindex="-1"><span class="menu-header">About us<!-- --> ▾</span><ul><li><a href="/doc/About">About MusicBrainz</a></li><li><a href="https://metabrainz.org/sponsors">Sponsors</a></li><li><a href="https://metabrainz.org/team">Team</a></li><li><a href="https://www.redbubble.com/people/metabrainz/shop">Shop</a></li><li><a href="https://metabrainz.org/contact">Contact us</a></li><li class="separator"><a href="/doc/About/Data_License">Data licenses</a></li><li><a href="https://metabrainz.org/social-contract">Social contract</a></li><li><a href="/doc/Code_of_Conduct">Code of Conduct</a></li><li><a href="https://metabrainz.org/privacy">Privacy policy</a></li><li><a href="https://metabrainz.org/gdpr">GDPR compliance</a></li><li><a href="/doc/Copyright_and_DMCA_Compliance">Copyright and DMCA compliance</a></li><li><a href="/doc/Data_Removal_Policy">Data removal policy</a></li><li class="separator"><a href="/elections">Auto-editor elections</a></li><li><a href="/privileged">Privileged user accounts</a></li><li><a href="/statistics">Statistics</a></li><li><a href="/statistics/timeline">Timeline graph</a></li><li><a href="/history">MusicBrainz history</a></li></ul></li><li class="products" tabindex="-1"><span class="menu-header">Products<!-- --> ▾</span><ul><li><a href="//picard.musicbrainz.org">MusicBrainz Picard</a></li><li><a href="/doc/AudioRanger">AudioRanger</a></li><li><a href="/doc/Mp3tag">Mp3tag</a></li><li><a href="/doc/Yate_Music_Tagger">Yate Music Tagger</a></li><li class="separator"><a href="/doc/MusicBrainz_for_Android">MusicBrainz for Android</a></li><li class="separator"><a href="/doc/MusicBrainz_Server">MusicBrainz Server</a></li><li><a href="/doc/MusicBrainz_Database">MusicBrainz Database</a></li><li class="separator"><a href="/doc/Developer_Resources">Developer resources</a></li><li><a href="/doc/MusicBrainz_API">MusicBrainz API</a></li><li><a href="/doc/Live_Data_Feed">Live Data Feed</a></li></ul></li><li class="search" tabindex="-1"><span class="menu-header">Search<!-- --> ▾</span><ul><li><a href="/search">Advanced search</a></li><li><a href="/search/edits">Edit search</a></li><li><a href="/tags">Tag cloud</a></li><li><a href="/cdstub/browse">Top CD stubs</a></li></ul></li><li class="documentation" tabindex="-1"><span class="menu-header">Documentation<!-- --> ▾</span><ul><li><a href="/doc/Beginners_Guide">Beginners guide</a></li><li><a href="/doc/Style">Style guidelines</a></li><li><a href="/doc/How_To">How tos</a></li><li><a href="/doc/Frequently_Asked_Questions">FAQs</a></li><li><a href="/doc/MusicBrainz_Documentation">Documentation index</a></li><li class="separator"><a href="/doc/Edit_Types">Edit types</a></li><li><a href="/relationships">Relationship types</a></li><li><a href="/instruments">Instrument list</a></li><li><a href="/genres">Genre list</a></li><li class="separator"><a href="/doc/Development">Development</a></li></ul></li><li class="language-selector" tabindex="-1"><span class="menu-header">English ▾</span><ul><li><a href="/set-language/de?returnto=%2Fdoc%2FDevelopment">Deutsch</a></li><li><strong><a href="/set-language/en?returnto=%2Fdoc%2FDevelopment">English</a></strong></li><li><a href="/set-language/fr?returnto=%2Fdoc%2FDevelopment">Français</a></li><li><a href="/set-language/it?returnto=%2Fdoc%2FDevelopment">Italiano</a></li><li><a href="/set-language/nl?returnto=%2Fdoc%2FDevelopment">Nederlands</a></li><li><a href="/set-language/unset?returnto=%2Fdoc%2FDevelopment">(reset language)</a></li><li class="separator"><a href="https://translations.metabrainz.org/projects/musicbrainz/">Help translate</a></li></ul></li></ul></div></div></div><div class="banner warning-header"><p>Images are currently not being copied over after event or release merges. For now, please make sure to upload any images that should be kept to the merge target beforehand.</p><button class="dismiss-banner remove-item icon" data-banner-name="alert" type="button"></button></div><div class="fullwidth " id="page"><div class="wikicontent" id="content"><div class="wikidoc-search"><form action="/search" method="get"><input name="type" type="hidden" value="doc"/><input name="query" placeholder="Search the documentation..." type="text"/> <span class="buttons inline"><button type="submit">Search</button></span></form></div><h1 class="hierarchy-links"><a href="/doc/Development" style="font-weight:bold">Development</a></h1><div><html><head></head><body><div class="mw-parser-output"><p>This page collects documents useful for Developers. <div aria-labelledby="mw-toc-heading" class="toc" id="toc" role="navigation"><input class="toctogglecheckbox" id="toctogglecheckbox" role="button" style="display:none" type="checkbox" /><div class="toctitle" dir="ltr" lang="en"><h2 id="mw-toc-heading">Contents</h2><span class="toctogglespan"><label class="toctogglelabel" for="toctogglecheckbox"></label></span></div><ul><li class="toclevel-1 tocsection-1"><a href="#Getting_started"><span class="tocnumber">1</span> <span class="toctext">Getting started</span></a><li class="toclevel-1 tocsection-2"><a href="#Clients"><span class="tocnumber">2</span> <span class="toctext">Clients</span></a><li class="toclevel-1 tocsection-3"><a href="#MusicBrainz_server"><span class="tocnumber">3</span> <span class="toctext">MusicBrainz server</span></a><li class="toclevel-1 tocsection-4"><a href="#Picard"><span class="tocnumber">4</span> <span class="toctext">Picard</span></a><li class="toclevel-1 tocsection-5"><a href="#MusicBrainz_Database"><span class="tocnumber">5</span> <span class="toctext">MusicBrainz Database</span></a><li class="toclevel-1 tocsection-6"><a href="#Bug_Tracker"><span class="tocnumber">6</span> <span class="toctext">Bug Tracker</span></a></ul></div><h2><span class="mw-headline" id="Getting_started">Getting started</span></h2><ol><li><a href="/doc/Development/Introduction">Introduction</a><li><a href="/doc/Developer_Resources">Developer Resources</a><li><a href="/doc/External_Resources">External Resources</a></ol><h2><span class="mw-headline" id="Clients">Clients</span></h2><ol><li>Web Service <ol><li><a href="/doc/MusicBrainz_API">MusicBrainz API</a> (<a href="/doc/MusicBrainz_API/Examples">examples</a>)<li><a href="/doc/MusicBrainz_API/Search">MusicBrainz API searches</a><li><a href="/doc/Cover_Art_Archive/API">Cover Art Archive API</a><li><a href="/doc/Event_Art_Archive/API">Event Art Archive API</a></ol><li><a href="/doc/Development/Seeding">Seeding</a> (<a href="/doc/Development/Seeding/Release_Editor">Release Editor Seeding</a>)<li><a href="/doc/libmusicbrainz">libmusicbrainz</a><li><a href="/doc/libcoverart">libcoverart</a><li><a href="/doc/libdiscid">libdiscid</a><li><a href="/doc/Development/OAuth2">Using OAuth2 with MusicBrainz</a><li><a href="/doc/Bots">Bots</a> -- writing code to enter edits into the database</ol><h2><span class="mw-headline" id="MusicBrainz_server">MusicBrainz server</span></h2><ol><li><a class="mw-redirect" href="/doc/Server_Setup">Server Setup</a><li><a href="/doc/Development/Git">Git workflow</a><li><a href="/doc/Development/Beta_Cycle">Beta Cycle</a><li><a href="/doc/Development/Supported_browsers">Supported browsers</a><li><a href="/doc/Development/Server_Coding_Style">Server Coding Style</a><li><a href="/doc/Development/MusicBrainz_Server_Environment_Variables">Environment Variables</a><li><a href="/doc/Development/ws/js">/ws/js webservice documentation</a><li><a href="/doc/Development/Search_Architecture">Search architecture</a><li><a href="/doc/Development/Priorities">Server development team priorities</a></ol><h2><span class="mw-headline" id="Picard">Picard</span></h2><ol><li><a class="external text" href="http://picard.musicbrainz.org/docs/development/" rel="nofollow">Developing Picard</a></ol><h2><span class="mw-headline" id="MusicBrainz_Database">MusicBrainz Database</span></h2><ol><li><a href="/doc/MusicBrainz_Database/Download">Download</a><li><a href="/doc/MusicBrainz_Database/Schema">Schema</a><li><a class="mw-redirect" href="/doc/MusicBrainz_Database/RDF">RDF</a></ol><h2><span class="mw-headline" id="Bug_Tracker">Bug Tracker</span></h2><ol><li><a class="external text" href="http://tickets.musicbrainz.org/" rel="nofollow">The Musicbrainz bug tracker</a></ol></div></body></html></div><div class="wikidocs-footer">This page is <a href="/doc/WikiDocs">transcluded</a> from revision <a class="internal" href="////wiki.musicbrainz.org/Development?oldid=77811">#77811</a> of <a class="internal" href="//wiki.musicbrainz.org/Development">Development</a>.</div></div></div><div id="footer"><p class="left" id="footer-menu"><a class="internal" href="https://metabrainz.org/donate">Donate</a><a class="internal" href="//wiki.musicbrainz.org/">Wiki</a><a class="internal" href="https://community.metabrainz.org/">Forums</a><a class="internal" href="/doc/Communication/ChatBrainz">Chat</a><a class="internal" href="http://tickets.metabrainz.org/">Bug tracker</a><a class="internal" href="https://blog.metabrainz.org/">Blog</a><a class="internal" href="https://twitter.com/MusicBrainz">Twitter</a><a class="internal" href="/set-beta-preference?returnto=%2Fdoc%2FDevelopment">Use beta site</a></p><p class="right">Brought to you by <a href="https://metabrainz.org/">MetaBrainz Foundation</a> and our <a href="https://metabrainz.org/sponsors">sponsors</a> and <a href="https://metabrainz.org/supporters">supporters</a>.</p></div></body></html>