Back to directory
metabrainz avatar

listenbrainz-server

Server for the ListenBrainz project, including the front-end (javascript/react) code that it serves and all of the data processing components that LB uses.. Read more below about its uses, features, and usage.

Clone repository

git clone https://github.com/metabrainz/listenbrainz-server.git

1,000

Stars

345

Forks

30

Watchers

GPL-2.0

License


ListenBrainz

Server for the ListenBrainz project

Readthedocs status GitHub last commit GitHub pull requests

Website • Documentation • Bug tracker


About

ListenBrainz keeps track of music you listen to and provides you with insights into your listening habits. We're completely open-source and publish our data as open data.

You can use ListenBrainz to track your music listening habits and share your taste with others using our visualizations. We also have an API if you want to do more with our data.

ListenBrainz is operated by the MetaBrainz Foundation which has a long-standing history of curating, protecting and making music data available to the public.

For more information about this project and its goals, look at our website, specifically the about page.

Changes and other important announcements about the ListenBrainz services will be announced on our blog. If you start using our services in any production system, we urge you to follow the blog!

Commercial use

All of our data is available for commercial use. You can find out more about our commercial use support tiers on the MetaBrainz site.

Contributing

If you are interested in helping out, consider donating to the MetaBrainz Foundation.

If you are interested in contributing code or documentation, please have a look at the issue tracker or chat with us in IRC/Matrix/Discord on the #metabrainz channel.

Development environment

These instructions help you get started with the development process. Installation in a production environment may be different.

Read the development environment documentation

In order to work with Spark, you'll have to setup the Spark development environment. Read the documentation.

Documentation

Full documentation for the ListenBrainz API is available at listenbrainz.readthedocs.org. You can also build the documentation locally:

cd listenbrainz-server/docs
pip install -r requirements.txt
make clean html

License Notice

Copyright (C) 2017 MetaBrainz Foundation Inc.

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA

Releases

What's Changed

fix: Strip empty optional fields from listen metadata instead of rejecting by @anshg1214 in #3814 Add GIN trigram indexes for playlist similarity search by @anshg1214 in #3822

Full Ch...

What’s Changed

Add script to migrate listens to user_id partitioned postgres database (#3808) @amCap1712 fix(spotify): keep album tracks as a paging object after pagination (#3810) @anshg1214 fix: Ca...

What’s Changed Some performance improvements to stabilize the LB-Radio and popularity API features

perf: parallelize feed event queries and fix entity page connection pooling (#3792) @anshg1214, @Mon...

What’s Changed

Fetch and backfill MetaBrainz user emails (#3799) @amCap1712 Prevent unecessary UserSocialNetwork re-renders (#3788) @MonkeyDo Revert CritiqueBrainz OAuth scope change (#3787) @MonkeyD...

What’s Changed

Make webhooks idempotent (#3785) @amCap1712 chore(deps-dev): bump fast-uri from 3.1.2 to 3.1.4 (#3781) @dependabot[bot], @amCap1712 Split similar users data into multiple messages (#37...