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 !

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”

GSoC 2024: Add Syndication Feeds to ListenBrainz

Hi everyone!

I am Eric Deng, known as ericd on MB element server and ericd23 on Github. From May through August, I worked on adding various syndication feeds (Atom feeds) to ListenBrainz, a project that was mentored by Mayhem.

Project Overview


ListenBrainz is a powerful platform that allows users to keep track of their listening history, share music tastes, and discover new music. The primary goal of my project was to extend ListenBrainz’s functionality by adding syndication feeds, specifically Atom feeds. This feature enables users to subscribe to various feeds, allowing them to access their data in a more unified (through a feed reader) and customized (with various options each feed offers) manner. This feature is an addition that builds on ListenBrainz’s existing strengths and open data nature.

The goals of this project includes:

  • Basic feed generation infrastructure
  • Various feed endpoints: user latest activity, user listens, user statistics, playlists, recommendations (weekly jam and exploration), fresh releases (user and site-wide) and statistic art creator.
  • UI for accessing feed URLs
Continue reading “GSoC 2024: Add Syndication Feeds to ListenBrainz”

GSoC 2024: New Email Service with Internationalization

This post is also available on Jade’s blog

Personal Introduction

Hello! I’m Jade Ellis, AKA JadedBlueEyes. I’m an undergraduate Computer Science student at the University of Kent in England. I was thrilled to be selected as a participant in the Google Summer of Code (GSoC) 2024 program. My project focused on developing an email service with internationalisation support, MJML-based markup and text fallback to produce emails that are visually appealing and accessible to as many people as possible.

Reason for the Project

The MusicBrainz project sends thousands of emails every day to its diverse contributors. However, the existing email system was limited, having organically grown over the project’s lifetime. It could only send emails in English, and only in plain text. The experience that new contributors got could only be described as unfriendly. The overarching goal of my proposal was to improve this.

Continue reading “GSoC 2024: New Email Service with Internationalization”

GSoC 2024: Artist, Album, User Pages in ListenBrainz Android App for all users 

Introduction

Hola everyone!

I am Pranav Konidena (you may know me as pranav on IRC, or pranavkonidena on GitHub.). I am a junior at the Indian Institute of Technology Roorkee (IITR) pursuing a degree in engineering with a major in Electronics and Communication. I learnt about Google Summer of Code from my club seniors and was instantly drawn towards it. While I was going through the potential organizations to which I could contribute, I was instantly drawn towards MetaBrainz as it combined my love for music and programming. 

I wanted to explore further the field of Mobile Development, I had sound knowledge of Flutter, but I didn’t know Native Android Development and decided to try and contribute to ListenBrainz Android. With that goal in mind, I started learning about Kotlin and JetPack Compose, as they were mentioned as the tech stack for the LB Android app in its General Overview Doc on its GitHub Repository. My first contribution to LB Android was fixing a minor text overflow bug.

Continue reading “GSoC 2024: Artist, Album, User Pages in ListenBrainz Android App for all users “

Faces of Summer of Code 2024

Look at these glorious faces. Look at them.

A screenshot of a video chat, with 16 lovely participants visible.
Click here for full resolution image

Last week there was a short meeting with all GSoC contributors1 and mentors2 present. We used the opportunity to put faces to names, explain how MetaBrainz works, and answer any questions. Motivation is high, and everyone is looking forward to getting started with coding this week!

Continue reading “Faces of Summer of Code 2024”