Skip to content

feat(bandcamp_importer): add support for importing private streams#844

Open
Jormangeud wants to merge 1 commit intomurdos:masterfrom
Jormangeud:bandcamp_importer-support_private_stream
Open

feat(bandcamp_importer): add support for importing private streams#844
Jormangeud wants to merge 1 commit intomurdos:masterfrom
Jormangeud:bandcamp_importer-support_private_stream

Conversation

@Jormangeud
Copy link
Contributor

No description provided.

@Jormangeud Jormangeud force-pushed the bandcamp_importer-support_private_stream branch from 1fd9de7 to 0ed089c Compare March 17, 2026 12:30
@arsinclair
Copy link
Collaborator

Hey! How can this be tested? I'm not familiar with a concept of a private stream on Bandcamp. Is there a test link or maybe some instructions on how to set up one myself?

@Jormangeud
Copy link
Contributor Author

Here is one I tested this with: https://bandcamp.com/private/V8QW9SU2
It should be open still.

@arsinclair arsinclair self-requested a review March 18, 2026 22:36
@arsinclair
Copy link
Collaborator

Thank you, quite an interesting case indeed.

https://bandcamp.com/private/V8QW9SU2 is available to everone, and it resolves to https://silentdeepocean5.bandcamp.com/album/essence-of-existence-ii-blood-of-ghosts, which currently indicates that the album is not found:

image

If we import such album with a script, then the URL relationships back to the bandcamp page (download for free, puchase for download and stream for free) are incorrect, since the album cannot yet be streamed/purchased/listened with that URL and we cannot be sure that it will be and when. I can see that you already imported this album: https://musicbrainz.org/release/6349f768-3843-4357-b90a-f2d88cc645d7 and the relationships are set exactly that way.

I'm not sure what's a correct way to handle it. Thinking logically, the album at the moment of import is only available for streaming at https://bandcamp.com/private/V8QW9SU2 (note: it's not possible to enter such URL for a release at the moment on MB), and this should be the only URL relationship set on the album. When it's officially released, I suppose other relationships can be added too.

@murdos @kellnerd @zas do you have any input on how this should be handled?

@murdos
Copy link
Owner

murdos commented Mar 19, 2026

How about not adding relationships for these private releases?

@Jormangeud
Copy link
Contributor Author

Jormangeud commented Mar 20, 2026

I guess the relationships could be added as ended at the moment (or the relationship starting date as the release date if in the future). That data comes from the Bandcamp data, and could be probably good to have. Visibility of the url to world is just depending on the private toggle in the Bandcamp control panel.

Usually, I've gotten these private streaming urls for pre-listening from labels, so the urls are usually the same when set public. Of course, if it never ends up as public, the url will stay 404.
Depending how far ahead from the release date these private streams are provided, I've added them as promos, as the content has tendency to change (art, tracklist, production). Having the release date more than two weeks in the future, the script could e.g. set it as a promo. But dates change as well, so could be left for the user to decide.

As this release example I provided here is not a pre-listening but published as private, I reckon the urls will be 404 indefinitely.

I've also seen some artist setting some of their releases to public for some time periods to attract listeners, but mostly keeping them private for those who subscribe to them. On those, the relationship time periods are changing a lot and cannot be tracked in the current MB schema. Also, some labels who have lost their distribution rights have turned the releases to private, so their customers are still able to download and listen to them. Some, sadly have removed them totally, pissing off their customers as their purchases are removed from their collections.

For this release, they have been giving out yum codes as well for people to download and stream through the collection/app.

This release shows up as private in the collection, and does not provide a link to the album page on the release.
I also have some other private releases in my collection. I have no private listening urls to all of those (or they do not work anymore). It would be nice to be able to import those as well (collection/player), but I haven't looked into that yet.
Another thing to look into for this importer are the listening parties as source, as those are not supported yet and may provide full album data before the release page gets updated.

I think I've added over 20 releases based on the private listening urls manually, so having this working is quite a time saver.

The private streaming is part of the Bandcamp Pro - https://get.bandcamp.help/hc/en-us/articles/23020707364631-How-does-private-streaming-work

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants