ListenBrainz processes each user’s listening history once a week to generate recommended recordings. These recordings are not final recommendations but one of the components that we will use in future to generate recommendations for users using our recommendation tool. ListenBrainz uses Apache Spark to process the user listening history – if you’d like to know more about this, please see our ListenBrainz Spark Architecture to understand the general flow of data.
The recommended tracks are based on user-user similarity. ListenBrainz uses Collaborative Filtering to identify recordings that a user might like on the basis of reactions by similar users.
Feed your MusicBrainz Id or user name in the following URL to get your recommended tracks:
Here is an example of a working url:
Categorization of recommended tracks
The recommended tracks are categorized on the basis of the type of artists they belong to. The two categories are:
Top Artist: The top artist recommended tracks are based on the top artists listened to by the user in the last week.
Similar Artist: The similar artist recommended tracks are based on the artists similar to top artists listened to by the user in the last week.
The similar artist data is generated using our artist-artist relationship dataset, which you can download from our FTP site.
Factors influencing recommended tracks
The recommended tracks feature of ListenBrainz is developing gradually. Here are a few factors that influence the recommended tracks which will help you understand the nature of your playlists.
User listening habit: Diverse listening habits will lead to a diverse playlist. If the artists listened to by the user in a week are limited, the associated pool of tracks will shrink leading to top artist recommended tracks being centred around a few artists. It will also affect the diversity of similar artist recommended tracks since limited top artists mean limited similar artists.
Artist popularity in ListenBrainz: The tracks associated with the top and similar artists are fetched from listens submitted to ListenBrainz. Tracks of artists that are popular in ListenBrainz will show up more in the playlist. Even if you have listened to an artist many times, it is highly probable that the tracks associated with that artist will not show up in your playlist given the artist is not popular in ListenBrainz.
Data known to ListenBrainz but unknown to MusicBrainz: Since we filter listens based on MusicBrainz IDentification (MBID) if the listens submitted to ListenBrainz don’t exist in MusicBrainz they will not show up in the playlists. So even if you have listened to a track/artist many times, the track/artist will not show up in your playlist given the track/artist does not exist in MusicBrainz.
Artist relation is not well defined on collaborations: The artist relation used to fetch similar artist does not contain collaborations. So if you have listened to collaborations, no similar artist will be fetched for the collaboration. We are working on getting the individual artists from the collaborations and fetching similar artists for each of them.
User count in ListenBrainz: User-User similarity and the overall quality of recommended tracks greatly depends on active users. More the number of active users, better the user-user similarity and in turn better-recommended tracks.
Note: Users that are inactive in the week in which recommended tracks are generated will not have any playlist for that week.
What do you think?
Our system for creating recommended tracks is slowly taking shape. Please remember that these tracks are not really recommendations just yet – they are a building block for future work, but they are quite important to get right. What is your reaction to your list of recommended tracks? Do you feel that those are good tracks you’d like to see in a playlist or do you think they are off the mark?