GSoC 2026: Playlists Sorting and Organization

Helloo Everyone!
My name is Yateen, a final year cse student at Indian Institute of Technology Jodhpur. My matrix username is (@yateen) and GitHub. I started open source at the beginning of this year. I was selected as a GSoC contributor and worked on the Playlists Sorting and Organization project. It was a wonderful experience working on a tech stack of React, Databases, APIs, Jest + Testing Library, etc. What was more amazing was to work under the mentorship of Ansh Goyal (Github), Monkey (Github) and Jade (Github) and be a part of the wonderful MetaBrainz team.

Pre-selection Contributions

Before GSoC officially started, I contributed to ListenBrainz through several smaller PRs that helped me learn the codebase and review process. Firstly I started with exploring some small UI/UX issues such as preventing duplicate error toasts and fixing toast overlap with the YouTube player, accessibility improvements like adding aria-labels to icon-only playback buttons. Then I started solving tickets which are feature-oriented like including auto-save for settings, showing artist name relationships. This pre-selection period helped me get comfortable with ListenBrainz patterns and mentor feedback before taking on the larger GSoC features.

Project Overview

Over the summer I worked on the playlist features and improved the existing playlist structure. I shipped four related features that turn ListenBrainz playlists from a flat list into something you can search, tag, sort for listening, and import from MusicBrainz collections.

Continue reading “GSoC 2026: Playlists Sorting and Organization”

Growing pains: An update on the ListenBrainz service status

TL;DR: The growth of ListenBrainz has caught up with us, and our limited team is working on replacing central parts of our infrastructure. In the meantime, many features are unstable.

We are victims of our success. While in the long term this is a good problem to have, the sharp increase in users over the past year and a half has left our infrastructure cracking at the seams.

The good news: Your listens are being stored and imported without issue, even if there are delays. The core service is not compromised and we ask that you please keep submitting your listens. Your stats and playlists will be back!

However, we know that every other week your statistics, weekly playlists, and other features fail to generate for everyone, and cause crashes. We know it is frustrating, and we share that feeling.

While we are aware of the issues, fixing them is far from simple and requires us to completely rework all the crucial parts of our infrastructure.

In the interest of transparency, here are our main issues and what we are doing to fix them:

Continue reading “Growing pains: An update on the ListenBrainz service status”

Current ListenBrainz server issues/high load, Part 2

This follow-up post covers how and why our servers are still being impacted, an explanation and examples of what we consider “botting” in ListenBrainz – and an apology, because our last post had some baaad comms!

Firstly, we are still experiencing massive server load from an increase in listen submissions related to the BTS fan exodus from last.fm (not all bad! more on this below) – and we are now being hit by another influx of AI scrapers.

Our apologies to our users, new and old, as we continue to work to mitigate the extra load. Remain assured that listens are not being lost – our processing queue is lagging behind, so listens may take (up to) hours to appear.

LB radio and the popularity endpoints have been temporarily disabled, to reduce server load.

Continue reading “Current ListenBrainz server issues/high load, Part 2”

Current ListenBrainz server issues/high load

Our apologies if you are experiencing outages or slowness on ListenBrainz currently. First it was AI scrapers, now it’s K-pop fans…

In short, we are experiencing massive server load from an unexpected and massive increase in listen submissions. Please bear with us as the small (but mighty) ListenBrainz team works on possible mitigations.

None of your listens are being lost, they are all sitting safely in our (massively overloaded) processing queue:

Try to spot when the trouble started!
Continue reading “Current ListenBrainz server issues/high load”

MerchBrainz

We have added a range of great new MetaBrainz designs to our merch store: https://www.redbubble.com/people/metabrainz/shop

These designs by Monkey, previously only available to MetaBrainz summit attendees, have been lightly modified (summit-specific text removed) for everyday wear. Are many people going to know what you’re repping? No. Are the ones that do going to go “DAAAAAAAAAAAAMN IT’S THE BRAINZ YO”? Most definitely!

Continue reading “MerchBrainz”

We can’t have nice things… because of AI scrapers

In the past few months the MetaBrainz team has been fighting a battle against unscrupulous AI companies ignoring common courtesies (such as robots.txt) and scraping the Internet in order to build up their AI models. Rather than downloading our dataset in one complete download, they insist on loading all of MusicBrainz one page at a time. This of course would take hundreds of years to complete and is utterly pointless. In doing so, they are overloading our servers and preventing legitimate users from accessing our site.

Now the AI scrapers have found ListenBrainz and are hitting a number of our API endpoints for their nefarious data gathering purposes. In order to protect our services from becoming overloaded, we’ve made the following changes:

  • The /metadata/lookup API endpoints (GET and POST versions) now require the caller to send an Authorization token in order for this endpoint to work.
  • The ListenBrainz Labs API endpoints for mbid-mapping, mbid-mapping-release and mbid-mapping-explain have been removed. Those were always intended for debugging purposes and will also soon be replaced with a new endpoints for our upcoming improved mapper.
  • LB Radio will now require users to be logged in to use it (and API endpoint users will need to send the Authorization header). The error message for logged in users is a bit clunky at the moment; we’ll fix this once we’ve finished the work for this year’s Year in Music.

Sorry for these hassles and no-notice changes, but they were required in order to keep our services functioning at an acceptable level.

GSoC 2025: Integrate music streaming from Funkwhale & Navidrome

Hey Everyone đŸ‘‹đŸ» !

I am Mohammad Amanullah (AKA m.amanullah7 on IRC and mAmanullah7 on GitHub) final year student at National Institute of Technology Agartala, India and along with that I am a diploma level student at Indian Institute of Technology Madras, India. I was thrilled to be selected as a contributor in the Google Summer of Code (GSoC) 2025 program. My project focused on integrating music streaming from Funkwhale & Navidrome. It was mentored by Lucifer and Monkey.

Let’s start 🙂

Project Overview

ListenBrainz has a number of music discovery features that use BrainzPlayer to facilitate track playback. BrainzPlayer (BP) is a custom React component in ListenBrainz that uses multiple data sources to search and play a track. As of now, it supports Spotify, Youtube, Apple Music and Soundcloud as a music service. It would be useful for BrainzPlayer to support stream music web apps like Navidrome and Funkwhale so that users could stream their private collections as well on ListenBrainz. For those unfamiliar, Funkwhale and Navidrome are self-hosted music servers that implement the Subsonic API, a widely adopted standard for streaming and managing personal music libraries.

Before you proceed further, listen to a song and explore new services so you can feel more when you read the rest of the blog! Check out your Connect services page đŸŽ¶

Continue reading “GSoC 2025: Integrate music streaming from Funkwhale & Navidrome”

Welcome Summer of Code 2025 contributors!

We are thrilled to announce the selection of 6 contributors to work with us for this year’s Google Summer of Code program! 

MetaBrainz received many great applications this year. Selecting the final contributors was tough and involved deliberating various factors – what these contributors did right is getting in early, engaging with our community, presenting specific and detailed proposals, and proving excellent communication skills and the ability to integrate our feedback back into their proposals.

Thank you to all contributors who submitted a proposal with us!

The whole list of selected proposals can be found on the GSOC website but here is a TL;DR breakdown:

MetaBrainz proposals

Matrix Archiver (libretto) (Jade Ellis AKA JadedBlueEyes)

This project proposal replaces BrainzBot with a new archival service that archives messages directly from Matrix to HTML files on disk and a PostgreSQL database. It will support Matrix features like message editing, reactions and media, and provide full text search over all messages. Both historical and new messages as they come in will be archived.

Centralized Notification System for MetaBrainz (Junaid AKA fettuccinae)

MetaBrainz contains multiple sub-projects which sends out standalone notifications. This project aims to centralize those by developing a shared notification system within metabrainz-org, enabling all sub-projects to deliver user notifications through this notification system. Expected Outcome: A functional notifications system with relevant API endpoint.

ListenBrainz proposals

Importing Listening History Files in Listenbrainz (Suvid Singhal)

This project aims to develop a feature that enables users to import their listening history from various services, including ListenBrainz exports, Spotify, Apple Music, and other CSV file formats. The proposed solution involves creating a backend API endpoint to handle file uploads, building normalizers to parse and validate data from different services, and converting the data to the JSONL format required by ListenBrainz. The solution also includes a frontend to handle file uploads and show the progress to the user.

Onboarding Revamp in Listenbrainz-Android (Hemang Mishra)

A smooth and intuitive onboarding experience is essential for any app, ensuring that users understand its features while maintaining trust and engagement. This project focuses on enhancing the ListenBrainz Android onboarding flow by making it more informative, user-friendly, and privacy-conscious. Key improvements include a dedicated Listen Submission screen to give users full control over which apps contribute listens, clear permission rationales, and fallback mechanisms for denied permissions. Additionally, a revamped sign-in screen will provide better navigation, including a bug report option for easy issue submission.

Development of Advanced User Statistics Visualizations (Granth Bagadia AKA holycow23 AKA granth23)

The project aims to design and implement advanced interactive visualizations for ListenBrainz using Nivo for data visualization and integrating with the existing Flask API. Apache Spark will handle efficient data processing and aggregation. These visualizations will offer granular insights into genre trends, artist diversity, and temporal listening patterns, enhancing user experience and engagement. The project will result in the development and integration of the following four interactive charts into ListenBrainz: Artist Listening, Activity Statistics, Listens by Era Statistics, Genre-Based Listening Patterns and Top Listeners.

Integrate music streaming from Funkwhale & Navidrome (Mohammad Amanullah AKA mAmanullah7)

Allow users to play music from their Funkwhale servers as well as Navidrome directly in BrainzPlayer, as both are self hosted music streaming platforms. Funkwhale used a OAuth2 for secure and safe authentication, but currently Navidrome used basic subsonic authentication (username/password + salt), but soon OAuth2 authentication also will be available for Navidrome. Once these are availanble, we can support Subsonic streaming in the ListenBrainz Player.

What if you’re not in GSoC 2025?

Reading this and feeling inspired for contributing to the code still? Volunteer contributors are very welcome all year round even though we might have slightly less time available to help you during the summer. It is also putting you in an ideal situation for applying to next year’s GSoC. You can find some tips for applying to GSoC with us in one of our previous posts. When you are ready, join us on the MetaBrainz Matrix Channel and showcase your initiative and your skills !

MetaBrainz Summit 2024

MetaBrainz nerds at the Jantar Mantar observatory. Left to right: jasje, reosarevok, atj, zas, KasukabeDefenceForce, monkey, yvanzo, lucifer, mayhem, ansh, theflash_, kellnerd, bitmap, akshaaatt, ApeKattQuest, outsidecontext, aerozol

This year it was New Delhi, India, that was invaded by data nerds from across the globe!

The MetaBrainz team was treated to the glorious chaos, hospitality, sights, noise, sweets, monkeys, traffic, heat, and delicious food of India. We reflected on the last year in MetaBrainz, planned and collaborated for the future, and got a little work done – when we could fit it in between mouthfuls of Indian sweets.

Read on for a comprehensive summit recap, including the annual recap for each MetaBrainz project, as well as breakout session notes, photos, and links to the slides and video recordings.

Continue reading “MetaBrainz Summit 2024”

You are invited to MetaBrainz Summit 24

MetaBrainz Summit 24 is upon us! September 23-27 in New Delhi, India.

We would love for you to join us remotely. If you are reading this, you are qualified to attend. Congratulations! Read on for more information.

Continue reading “You are invited to MetaBrainz Summit 24”