Socket
Book a DemoInstallSign in
Socket

listenbrainz-export

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

listenbrainz-export

Export your scrobbling history form ListenBrainz

0.2.1
pipPyPI
Maintainers
1

listenbrainz_export

Export your scrobbling history form ListenBrainz. ListenBrainz is a public/open-source alternative to RateYourMusic

Since the data is public, no API key/Authentication is required.

Installation

Requires python3.7+

To install with pip, run:

pip install git+https://github.com/seanbreckenridge/listenbrainz_export

Usage

Provide your listenbrainz username -- prints results to STDOUT

listenbrainz_export export seanbreckenridge > ./data.json

Can also only request a few pages:

listenbrainz_export export seanbreckenridge --pages 3

Or can request only recent listens:

listenbrainz_export export seanbreckenridge --days 30

listenbrainz_export.parse includes a model of the data and some functions to parse them into python objects, like:

>>> from listenbrainz_export.parse import iter_listens
>>> listens = list(iter_listens("data.json"))
>>> listens[12]
Listen(track_name='Skate', artist_name='Bruno Mars, Anderson .Paak & Silk Sonic', listened_at=datetime.datetime(2021, 11, 6, 19, 10, 49), inserted_at=datetime.datetime(2021, 11, 7, 2, 12, 31), recording_id='e60b9417-acfe-4796-a048-76208fb4a9ad', release_name='Skate - Single', metadata={'artist_msid': 'df6f6937-5de3-4e3c-bd74-1991ed92abd5', 'recording_msid': 'e60b9417-acfe-4796-a048-76208fb4a9ad', 'release_msid': 'dcf6d703-1e95-4e9c-8218-bb7c3b3bfa0b'}, username='seanbreckenridge')

I use this almost exclusively through my HPI; that locates my exports on disks and removes any duplicate scrobbles

This also includes a playing-now command, which prints the currently playing track, if any:

listenbrainz_export playing-now seanbreckenridge

That returns a JSON list, since you can have multiple songs playing at the same time).

The return code is 0 if there is a song playing, 1 if there is no song playing.

Tests

git clone 'https://github.com/seanbreckenridge/listenbrainz_export'
cd ./listenbrainz_export
pip install '.[testing]'
mypy ./listenbrainz_export
flake8 ./listenbrainz_export

Keywords

music scrobble data

FAQs

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

About

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.

  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc

U.S. Patent No. 12,346,443 & 12,314,394. Other pending.