GSoC 2025: Building Libretto, a Matrix Archiver

This post is also available on Jade’s blog

Hello! I’m Jade Ellis, AKA JadedBlueEyes. You might know me from my project with MetaBrainz last year – if not, I’m happy to have the chance to introduce myself. I’m an undergraduate Computer Science student at the University of Kent in England, a music enthusiast and (in my spare time) a climber.

The Setting

In September 2024, MetaBrainz switched from IRC to Matrix as our primary form of communication. Matrix is a more feature-rich alternative to IRC, with capabilities like replies, edits, and reactions, while still being open source and aligning with the principles of our project.

When MetaBrainz primarily used IRC, we had a piece of software called BrainzBot. This was a multi-functional Python app that, most importantly, created a web-accessible archive of all messages in the MetaBrainz channels. Thanks to the bridges between IRC and Matrix, BrainzBot continued to trundle along, but it couldn’t understand modern features like edits, replies, or media. The code itself was also becoming decrepit—a fork of an abandoned project, showing its age.

This led to my GSoC project: to build a replacement for BrainzBot’s archival function – a chat archiver that natively understands and preserves Matrix’s rich features.

Continue reading “GSoC 2025: Building Libretto, a Matrix Archiver”

GSoC 2025: Onboarding Revamp in ListenBrainz Android

Hi everyone,

I’m Hemang Mishra (hemang-mishra on IRC and hemang-mishra on GitHub). I’m currently a pre-final year student at IIIT Jabalpur, India. This summer, I had the opportunity to participate in Google Summer of Code with MetaBrainz. My mentor for the program was Jasjeet Singh (jasje on IRC).

I contributed to ListenBrainz Android, where I worked on revamping the onboarding experience, improving login, adding listen submission apps, integrating Listening Now, and setting up app updates. The journey has been both exciting and full of learning, and I’m truly grateful for this opportunity.

Project Overview

ListenBrainz is a powerful platform that helps track listening history, share music tastes, and build a community around music.

The main goals of my project were:

  • Revamping onboarding – introducing users to the app’s core features and handling permissions with clear rationale.
  • Improving login –replacing simple web pages with a custom Compose-based UI, and experimenting with the DOM tree of the web page to automate form submissions and token extraction in the background.
  • Listen submission apps – prompting users during onboarding to select which apps to collect listens from, preventing unwanted submissions.
  • Listening Now integration – adding “Listening Now” into BrainzPlayer.
  • App updates – enabling updates for both Play Store and non-Play Store (F-Droid or sideloaded) releases.
Continue reading “GSoC 2025: Onboarding Revamp in ListenBrainz Android”

GSoC 2025: MetaBrainz Notification System

Hello, my name is Shaik Junaid (IRC nick fettuccinae and fettuccinae on GitHub). I’m an undergrad computer science student from MGIT, Hyderabad, India. My project focused on adding a central notification system for MetaBrainz.

Project Overview

This project’s idea was suggested to me by mentor @ruaok (AKA mayhem on IRC). I submitted my proposal on the MetaBrainz Forum and got it reviewed by @kartikohri13 (AKA lucifer on IRC), and finally got selected for GSoC 2025 .

A centralized notification management system will various MetaBrainz projects send notifications to users without rewriting boilerplate code. It will also keep users informed about the latest events and new features across projects. This is a goal bigger than the scope of a single GSoC project. To keep it reasonable, my project focused on implementing REST APIs, hosted on metabrainz.org, to manage notifications and user preferences for notifications. Additionally, I integrated the system with ListenBrainz to demonstrate its functionality.

The project spec sheet can be found here.

Continue reading “GSoC 2025: MetaBrainz Notification System”

GSoC 2025: Advanced User Statistics Visualizations

Greetings, Everyone!

I am Granth Bagadia (holycow23 on IRC), an undergraduate Computer Science student at Birla Institute of Technology and Science (BITS), Pilani. This summer, I had the opportunity to participate in Google Summer of Code 2025 with MetaBrainz, where I worked on introducing advanced user statistics visualizations for ListenBrainz.

I was mentored by Ansh Goyal (ansh on IRC), Kartik Ohri (lucifer on IRC), and Nicolas Pelletier (monkey on IRC). This post summarizes my project, its outcomes, and my experience over the course of the program.


Project Overview

ListenBrainz already provided some listening statistics, but these were limited in scope and depth. My project set out to design and implement advanced statistics that could offer users more meaningful insights into their listening habits. Since ListenBrainz is a user-centric platform, the idea was to create features that would let listeners explore their behavior from multiple perspectives. My original proposal focused on introducing a few key statistics.

The core statistics included:

  • Genre Trends – showing what genres a user listens to at different hours of the day.
  • Era Statistics – highlighting which musical eras dominate a user’s listening history.
  • Artist Evolution – tracking how much a user listens to specific artists over time.
Continue reading “GSoC 2025: Advanced User Statistics Visualizations”

GSoC 2025: Importing Listening History Files in Listenbrainz

Hi Everyone!

I am Suvid Singhal (suvid on matrix), an undergraduate Computer Science student at Birla Institute of Technology and Science (BITS), Pilani. I took part in the Google Summer of Code 2025 and have been contributing to Metabrainz Foundation since December 2024. My GSoC project was to develop a file-based listening history importer for ListenBrainz. The project was mentored by Lucifer and Monkey.

Project Overview

Listenbrainz is a platform to track your music habits, discover new music and share your music taste with the community. A feature I missed after creating my ListenBrainz account and connecting Spotify was the ability to see my complete Spotify listening history. My project addresses this gap by allowing users to export their extended streaming history from Spotify and import it into ListenBrainz. Additionally, users can import backups from their old ListenBrainz accounts. With the foundation ready, it will be simpler to add support for more file importers in future. This makes transitioning to Listenbrainz easier.

The importer can be accessed here.

Continue reading “GSoC 2025: Importing Listening History Files in Listenbrainz”

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”

Google Summer of Code 2025: MetaBrainz has been accepted!

We’re are excited to announce that the MetaBrainz Foundation has been accepted into Google’s Summer of Code program for 2025! Summer of Code has been instrumental (pun intended) in the development of our projects and growth of our team over the years, so we’re pleased to be part of it for another round.

Ready to rock this summer coding with us? Start with carefully reading the terms for contributors. If you are eligible, go ahead and take a look at our Summer of Code landing page where you can find project ideas that we have listed for this year. Our landing page will also tell you what we require of our participants and how to pick up a project.

A very important note: We will not be considering any proposals from contributors who have not reached out to us before March 31.

Good luck to all who are interested in participating!

PS: If you’re feeling particularly adventurous, check out this entirely optional link for some extra motivation.

GSoC 2024: Integrating imports into BookBrainz

It really bugged me that it proved impossible to finish the huge BookBrainz importer project last year. Fortunately MetaBrainz (and Google) gave me the chance to continue working on my 2023 project during this Summer of Code, thank you! Our goal is still to import huge external datasets into the BookBrainz database schema.

Last year I worked on the backend services to transform and insert simple entities into the database. This year’s goal was to support importing multiple related entities and exposing the imported data on the website. We can now import entities (on the backend), which can be reviewed and approved by our users with ease.

If you want to know the full story, I recommend you to start with my previous blog post to learn more details about the existing importer infrastructure and last year’s problems. Or just read on if you are only interested in the advanced stuff which I did this year.

Continue reading “GSoC 2024: Integrating imports into BookBrainz”

GSoC 2024: MusicBrainz – Internet Archive integration: Saving external links in the Wayback Machine

Introduction

Greetings, Everyone!

I am Ashutosh Aswal (IRC nick yellowhatpro), a Computer Science grad from PEC University, India. This is my second time contributing to MetaBrainz as a GSoC contributor, and unlike the last time, when I contributed to the ListenBrainz Android app, this year, I took a challenge to learn a new language and framework (Rust and Postgres) to create this delightful project, Melba, which stands for MusicBrainz’s External Links wayBack machine Archiver.

As the name suggests, the project saves external webpages linked in the MusicBrainz database to the Internet Archive using Wayback Machine API. Let me walk you through the making of Melba.

Let’s begin!! ( •̀ ω •́ )✧

Continue reading “GSoC 2024: MusicBrainz – Internet Archive integration: Saving external links in the Wayback Machine”

GSoC 2024: Transferring Playlists Between SoundCloud, Apple Music and ListenBrainz

Introduction

Hello! My name is Rimma Kubanova (AKA rimskii on IRC and rimma-kubanova on GitHub). I’m an undergraduate Computer Science student at Nazarbayev University in Astana, Kazakhstan. My inspiration to participate in Google Summer of Code came from seeing my seniors’ experiences. I began contributing to MetaBrainz because I felt their goals and technologies aligned perfectly with my interests and skills. 

After making my first contributions, I decided to apply to GSoC, and to my delight, my proposal was accepted!

Proposal

ListenBrainz generates music recommendation playlists based on a user’s listening history and habits. These playlists can be enjoyed directly in ListenBrainz and automatically exported to the user’s Spotify account. However, currently, ListenBrainz only supports exporting to Spotify, which limits the user experience.

My project focused on expanding this functionality by integrating support for exporting these playlists to other external music services like SoundCloud and Apple Music. Additionally, I proposed adding an import feature to allow users to bring their playlists from these services into ListenBrainz.

My proposal can be found here.

Continue reading “GSoC 2024: Transferring Playlists Between SoundCloud, Apple Music and ListenBrainz”