Skip to main content

Mopidy-Bandcamp

Latest PyPI version Latest GitHub release Latest GitHub Commits CI build status Code Coverage Pull Requests Welcome

Mopidy extension for playing music from Bandcamp.

This backend allows searching bandcamp and playing the free 128kbps MP3 streams.

Initial support has been added (as of v1.1.0) for browsing and playing your bandcamp collection. Authentication is a hassle, and described below. Expect things to be wonky, and please create an issue when you encounter things that don’t work. Also this is slow because it requires scraping the bandcamp website instead of using an API. (This plugin will attempt to play the higher quality mp3-v0 streams of songs in your collection.)

Installation

Install by running:

sudo python3 -m pip install Mopidy-Bandcamp

Authentication

If you wish to browse/play music in your collection, then you’ll need to authenticate to bandcamp.com.

Authentication is done by grabbing your identity token from the cookies of the bandcamp website. Point your browser at https://bandcamp.com and log in if you aren’t already.

For chrome you can simply go to chrome://settings/cookies/detail?site=bandcamp.com to see the cookies for bandcamp.com. Click on “identity” and copy the data listed under “Content”.

For Firefox and most other browsers, open up the browser’s developer tools (usually by pressing Ctrl-Shift-I or F12). When the tools pop up, navigate to the “Storage” tab, and then select “Cookies” to view the site’s cookies. Copy the value from the “identity” cookie.

It should look something like this:

7%09xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx%3D%09%7B%22ex%22%3Ax%2C%22id%22%3Axxxxxxxxxx%7D

Now add it to your Mopidy config file like so:

[bandcamp]
identity = 7%09xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx%3D%09%7B%22ex%22%3Ax%2C%22id%22%3Axxxxxxxxxx%7D

Usage

Albums and tracks can be searched for or browsed. Additionaly, you can force Mopidy-Bandcamp to scrape a bandcamp URL for you by just prepending the url with “bandcamp:” and adding it to Mopidy. For example, using mpc on the command line:

$ mpc add "bandcamp:https://louiezong.bandcamp.com/album/jazz"

Would add the bandcamp album to the queue.

Note: Adding an artist by clicking on the artist in a search result or by manually scraping an artist’s bandcamp page can take a long time depending on the artist. This is because Mopidy-Bandcamp tries to load the entirety of the artist’s discography.

Web Client

As of v1.1.2 a simple webclient has been added to allow for more easily scraping a page. Not by going to http://hostname:6680/bandcamp/ and entering in a url (which you can do), but by using the following as a URL for a bookmark in your web browser:

javascript:s='http://hostname:6680/bandcamp/';f=document.createElement('form');f.action=s;i=document.createElement('input');i.type='hidden';i.name='url';i.value=window.location.href;f.appendChild(i);document.body.appendChild(f);f.submit();

Note: Replace hostname and 6680 with your mopidy server’s hostname and configured HTTP port.

Now when you’re browsing bandcamp you can simply click that bookmark to add the current page to Mopidy. (This works in Chrome and Firefox. I haven’t bothered checking anything else.)

Configuration

example:

[bandcamp]
discover-tags = French House, Brit Pop, Tokyo, New Wave, Industrial
  • identity - Identity token from your bandcamp cookies to authenticate with Bandcamp.

  • collection_items - Number of items (per page) to fetch from your collection (if authenticated). Default: 50

  • discover_tags - List of tags to discover. You’ll really want to change this to any tags that interest you.

  • discover_genres - List of bandcamp’s genres to discover. You’ll only want to edit this to remove unwanted genres.

  • discover_pages - Number of pages to load in the browse discover sections. Default: 1

  • image_sizes - a list of ids for image sizes to return to mopidy for album art. Default: 10, 5, 2 (1200x1200, 700x700, 350x350)

Bandcamp image size ids:

ID

Width

Height

Aspect

1

Original (usually big)

10

1200

1200

Square

20

1024

1024

Square

5

700

700

Square

13

380

380

Square

14

368

368

Square

2

350

350

Square

4

300

300

Square

9

210

210

Square

44

200

200

Square

11

172

172

Square

7

150

150

Square

50

140

140

Square

12

138

138

Square

15

135

135

Square

8

124

124

Square

21

120

120

Square

3

100

100

Square

42

50

50

Square

22

25

25

Square

26

800

600

4:3

36

400

300

4:3

32

380

285

4:3

33

368

276

4:3

37

168

126

4:3

38

144

108

4:3

29

100

75

4:3

28

768

432

16:9

27

715

402

16:9

Project resources

Metadata

Release files for Mopidy-Bandcamp 1.1.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for Mopidy-Bandcamp 1.1.5
File Size Uploaded
Mopidy-Bandcamp-1.1.5.tar.gz 13.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for Mopidy-Bandcamp 1.1.5
File Interpreter ABI Platform
Mopidy_Bandcamp-1.1.5-py3-none-any.whl Python 3 none any Details

Total release size: 27.9 kB

Release files / Mopidy-Bandcamp-1.1.5.tar.gz

Download URL Mopidy-Bandcamp-1.1.5.tar.gz
Size 13.5 kB
Tags Source
SHA-256 checksum
How to use checksums
c20f7370e29f650461a720350aee70bddc0aa66ae572bda6f66aea0478145c04
BLAKE2b-256 checksum
How to use checksums
751e6fc08bda946f99403f0388473b152775b7105d9a7095516847579a9a006b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.5

Release files / Mopidy_Bandcamp-1.1.5-py3-none-any.whl

Download URL Mopidy_Bandcamp-1.1.5-py3-none-any.whl
Size 14.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
71c373f9814ab024b91d6a014048169af23bae81b82822ed4efa39cb5ced5da8
BLAKE2b-256 checksum
How to use checksums
d70ecb824e062bd1b260ccf7430ee3a27adc8c242d751b4a4ffaa929cc97d83a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.5

Release history Release notifications | RSS feed

This release

1.1.5 This release

2 release files

1.1.4

2 release files

1.1.3

2 release files

1.1.2

2 release files

1.1.1

2 release files

1.0.1

2 release files

1.0.0

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page