{"id":27860285,"url":"https://github.com/impliedchaos/mopidy-bandcamp","last_synced_at":"2025-05-04T17:32:01.717Z","repository":{"id":44801763,"uuid":"333492761","full_name":"impliedchaos/mopidy-bandcamp","owner":"impliedchaos","description":"Mopidy backend for bandcamp","archived":false,"fork":false,"pushed_at":"2025-01-16T07:02:18.000Z","size":124,"stargazers_count":27,"open_issues_count":8,"forks_count":2,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-04-11T17:13:54.593Z","etag":null,"topics":["bandcamp","mopidy","mopidy-backend"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/impliedchaos.png","metadata":{"files":{"readme":"README.rst","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-01-27T16:37:22.000Z","updated_at":"2025-02-03T20:45:31.000Z","dependencies_parsed_at":"2022-07-21T10:02:33.479Z","dependency_job_id":null,"html_url":"https://github.com/impliedchaos/mopidy-bandcamp","commit_stats":null,"previous_names":[],"tags_count":12,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/impliedchaos%2Fmopidy-bandcamp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/impliedchaos%2Fmopidy-bandcamp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/impliedchaos%2Fmopidy-bandcamp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/impliedchaos%2Fmopidy-bandcamp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/impliedchaos","download_url":"https://codeload.github.com/impliedchaos/mopidy-bandcamp/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252371773,"owners_count":21737401,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bandcamp","mopidy","mopidy-backend"],"created_at":"2025-05-04T17:31:52.369Z","updated_at":"2025-05-04T17:32:01.648Z","avatar_url":"https://github.com/impliedchaos.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"Mopidy-Bandcamp\n****************\n\n.. image:: https://img.shields.io/pypi/v/Mopidy-Bandcamp?logo=PyPI\n    :target: https://pypi.org/project/Mopidy-Bandcamp\n    :alt: Latest PyPI version\n\n.. image:: https://img.shields.io/github/v/release/impliedchaos/mopidy-bandcamp?logo=GitHub\n    :target: https://github.com/impliedchaos/mopidy-bandcamp/releases\n    :alt: Latest GitHub release\n\n.. image:: https://img.shields.io/github/commits-since/impliedchaos/mopidy-bandcamp/latest?logo=GitHub\n    :target: https://github.com/impliedchaos/mopidy-bandcamp/commits/master\n    :alt: Latest GitHub Commits\n\n.. image:: https://img.shields.io/github/actions/workflow/status/impliedchaos/mopidy-bandcamp/CI.yml?logo=GitHub\u0026label=CI%20build\n    :target: https://github.com/impliedchaos/mopidy-bandcamp/actions\n    :alt: CI build status\n\n.. image:: https://img.shields.io/codecov/c/github/impliedchaos/mopidy-bandcamp?logo=Codecov\u0026label=Test%20coverage\n    :target: https://app.codecov.io/gh/impliedchaos/mopidy-bandcamp/\n    :alt: Code Coverage\n\n.. image:: https://img.shields.io/badge/PRs-welcome-brightgreen\n    :target: https://makeapullrequest.com/\n    :alt: Pull Requests Welcome\n\n\n`Mopidy \u003chttp://www.mopidy.com/\u003e`_ extension for playing music from\n`Bandcamp \u003chttp://bandcamp.com/\u003e`_.\n\nThis backend allows searching bandcamp and playing the free 128kbps MP3 streams.\n\nInitial support has been added (as of v1.1.0) for browsing and playing your bandcamp collection.\nAuthentication is a hassle, and described below.  Expect things to be wonky, and\nplease create an issue when you encounter things that don't work.  Also this is slow\nbecause it requires scraping the bandcamp website instead of using an API.\n(This plugin will attempt to play the higher quality mp3-v0 streams of songs in your collection.)\n\n\nInstallation\n============\n\nInstall by running::\n\n    sudo python3 -m pip install Mopidy-Bandcamp\n\n\nAuthentication\n==============\n\nIf you wish to browse/play music in your collection, then you'll need to authenticate to bandcamp.com.\n\nAuthentication is done by grabbing your :code:`identity` token from the cookies of the\nbandcamp website. Point your browser at https://bandcamp.com and log in if you aren't already.\n\nFor chrome you can simply go to \n`chrome://settings/cookies/detail?site=bandcamp.com \u003cchrome://settings/cookies/detail?site=bandcamp.com\u003e`_\nto see the cookies for bandcamp.com.  Click on \"identity\" and copy the data listed under \"Content\".\n\nFor Firefox and most other browsers, open up the browser's developer tools (usually by pressing Ctrl-Shift-I or F12).\nWhen the tools pop up, navigate to the \"Storage\" tab, and then select \"Cookies\" to view\nthe site's cookies. Copy the value from the \"identity\" cookie.\n\nIt should look something like this:\n\n.. code::\n\n    7%09xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx%3D%09%7B%22ex%22%3Ax%2C%22id%22%3Axxxxxxxxxx%7D\n\nNow add it to your Mopidy config file like so:\n\n.. code::\n\n    [bandcamp]\n    identity = 7%09xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx%3D%09%7B%22ex%22%3Ax%2C%22id%22%3Axxxxxxxxxx%7D\n\n\nUsage\n=====\n\nAlbums and tracks can be searched for or browsed.  Additionaly, you can force Mopidy-Bandcamp to scrape\na bandcamp URL for you by just prepending the url with \"bandcamp:\" and adding it to Mopidy.  For example,\nusing mpc on the command line:\n\n.. code:: shell\n\n    $ mpc add \"bandcamp:https://louiezong.bandcamp.com/album/jazz\"\n\nWould add the bandcamp album to the queue.\n\nNote: Adding an artist by clicking on the artist in a search result or by manually scraping an artist's\nbandcamp page can take a long time depending on the artist.  This is because Mopidy-Bandcamp tries to load\nthe entirety of the artist's discography.\n\nMopidy-Bandcamp also supports bndcmpr.co playlists.  Just get the playlist id from the bndcmpr url, prepend with\n\"bandcamp:bndcmpr\" and add it to Mopidy.  For example, to add this bndcmpr playlist \"https://bndcmpr.co/4dfdd589\"\nusing mpc on the command line:\n\n.. code:: shell\n\n    $ mpc add \"bandcamp:bndcmpr:4dfdd589\"\n\nWould add all the tracks in the bndcmpr playlist to the queue.\n\nWeb Client\n----------\n\nAs of v1.1.2 a simple webclient has been added to allow for more easily scraping a page. Not by going to\nhttp://hostname:6680/bandcamp/ and entering in a url (which you can do), but by using the following\nas a URL for a bookmark in your web browser:\n\n.. code::\n\n    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();\n\nNote: Replace *hostname* and *6680* with your mopidy server's hostname and configured HTTP port.\n\nNow when you're browsing bandcamp (or a bndcmpr playlist) you can simply click that bookmark to add the\ncurrent page to Mopidy.\n(This works in Chrome and Firefox.  I haven't bothered checking anything else.)\n\nConfiguration\n=============\n\nexample:\n\n.. code::\n\n    [bandcamp]\n    discover-tags = French House, Brit Pop, Tokyo, New Wave, Industrial\n\n\n- :code:`identity` - Identity token from your bandcamp cookies to authenticate with Bandcamp.\n- :code:`collection_items` - Number of items (per page) to fetch from your collection (if authenticated).  Default: 50\n- :code:`discover_tags` - List of tags to discover. **You'll really want to change this to any tags that interest you.**\n- :code:`discover_genres` - List of bandcamp's genres to discover.  You'll only want to edit this to remove unwanted genres.\n- :code:`discover_pages` - Number of pages to load in the browse discover sections.  Default: 1\n- :code:`image_sizes` - a list of ids for image sizes to return to mopidy for album art.  Default: 10, 5, 2 (1200x1200, 700x700, 350x350)\n\n\nBandcamp image size ids:\n\n+----+-------+--------+--------+\n| ID | Width | Height | Aspect |\n+====+=======+========+========+\n| 1  | Original (usually big)  |\n+----+-------+--------+--------+\n| 10 | 1200  | 1200   | Square |\n+----+-------+--------+--------+\n| 20 | 1024  | 1024   | Square |\n+----+-------+--------+--------+\n| 5  | 700   | 700    | Square |\n+----+-------+--------+--------+\n| 13 | 380   | 380    | Square |\n+----+-------+--------+--------+\n| 14 | 368   | 368    | Square |\n+----+-------+--------+--------+\n| 2  | 350   | 350    | Square |\n+----+-------+--------+--------+\n| 4  | 300   | 300    | Square |\n+----+-------+--------+--------+\n| 9  | 210   | 210    | Square |\n+----+-------+--------+--------+\n| 44 | 200   | 200    | Square |\n+----+-------+--------+--------+\n| 11 | 172   | 172    | Square |\n+----+-------+--------+--------+\n| 7  | 150   | 150    | Square |\n+----+-------+--------+--------+\n| 50 | 140   | 140    | Square |\n+----+-------+--------+--------+\n| 12 | 138   | 138    | Square |\n+----+-------+--------+--------+\n| 15 | 135   | 135    | Square |\n+----+-------+--------+--------+\n| 8  | 124   | 124    | Square |\n+----+-------+--------+--------+\n| 21 | 120   | 120    | Square |\n+----+-------+--------+--------+\n| 3  | 100   | 100    | Square |\n+----+-------+--------+--------+\n| 42 | 50    | 50     | Square |\n+----+-------+--------+--------+\n| 22 | 25    | 25     | Square |\n+----+-------+--------+--------+\n| 26 | 800   | 600    | 4:3    |\n+----+-------+--------+--------+\n| 36 | 400   | 300    | 4:3    |\n+----+-------+--------+--------+\n| 32 | 380   | 285    | 4:3    |\n+----+-------+--------+--------+\n| 33 | 368   | 276    | 4:3    |\n+----+-------+--------+--------+\n| 37 | 168   | 126    | 4:3    |\n+----+-------+--------+--------+\n| 38 | 144   | 108    | 4:3    |\n+----+-------+--------+--------+\n| 29 | 100   | 75     | 4:3    |\n+----+-------+--------+--------+\n| 28 | 768   | 432    | 16:9   |\n+----+-------+--------+--------+\n| 27 | 715   | 402    | 16:9   |\n+----+-------+--------+--------+\n\n\nProject resources\n=================\n\n- `Source code \u003chttps://github.com/impliedchaos/mopidy-bandcamp\u003e`_\n- `Issue tracker \u003chttps://github.com/impliedchaos/mopidy-bandcamp/issues\u003e`_\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fimpliedchaos%2Fmopidy-bandcamp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fimpliedchaos%2Fmopidy-bandcamp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fimpliedchaos%2Fmopidy-bandcamp/lists"}