Bandcamp release date discrepancies

Tags: #<Tag:0x00007f31c9d969b0> #<Tag:0x00007f31c9d968c0>

I’ve known for some time that Bandcamp allows the musicians/labels to publish their albums for sale whenever they want, regardless of the stated released date.

But now I finally managed to catch an artist red-handed. Namely David August and his new album:

BCreld

It’s four days late, but otherwise available on other services since Friday (Amazon, iTunes, junodownload).

This means that all the Bandcamp imports are unreliable in terms of release date. Unless someone knows how to extract the actual moment when that ‘pre-order digital album’ link turns into ‘buy digital album’.

2 Likes

This was once possible when BandCamp still had RSS feeds.
They disappeared ca. 2 years ago.
It seems the only workaround for now is following artists.

Just found a thread on Discogs with more discoveries about dates hidden in page source.

• publish_date is null (and the draft only visible to you) until you click the Publish button, then it is when you clicked that button; it never changes.
• new_date is when you first clicked the Save Draft button, and it does not change.
• mod_date is the last time you clicked the Save Draft or Update button; it’s when you last made any change.
• release_date is the ISO 8601-formatted version of the mm/dd/yyyy value you put in the release date field.

2 Likes

So, given that the Bandcamp “released” dates apparently cannot be trusted, as I’ve just learned via https://beta.musicbrainz.org/edit/62695534, which date should we use for MusicBrainz “Release events”? Generally leave empty, unknown (because the Bandcamp information is “not reliable”)? Figure out something from the Bandcamp page source (seems a bit “arbitrary” to me)?

I enter a lot of Bandcamp releases and I usually trust the displayed release dates except if they contradict other sources (which aren’t available in many cases, since many smaller hobbyist artists don’t get their music published on conventional commercial platforms) or are implausible (i.e. before 2008). If the artist wants to “deceive” people they probably can in any case.

A bit cumbersome, but in general, check other sources. Often if something about the release date feels sketchy, I check the artist’s/label’s social media. And then it may turn out that on a particular day they only started shipping vinyl, but option to buy digital was still locked and most probably only released along with the other e-stores.

Here’s your most probable Bandcamp re-release date, 20 October 2016:

On the other hand, amazon.de has its mp3/streaming release date set to 2005-01-01. Although:

  1. Beware of January 1st, -some year- release dates, because they’re often just a formatting default for the full year.
  2. Different covers, so for me at least, this is a different release than the Bandcamp one.
2 Likes

The Bandcamp date is very often wrong, for older releases the artists usually sets it to the orginal release date (eg when they put out the CD years ago). The Bandcamp interface makes it easy to set whatever release date you like/doesn’t expect you to use the date of upload.

Nothing you can do to check since they got rid of the RSS, unless they posted on their social media.

Edit: Just saw chaban’s post properly, in particular the info around publish_date in the page source. Very cool.

Just found out about something terrifying. It’s possible to reuse the URL of a Bandcamp release and completely overwrite (including hidden page metadata) it with a new release.

This will only make it harder to track digital releases and shows how important it is to make a snapshot when entering a new digital release, especially Bandcamp.

https://aenthropy.bandcamp.com/album/nebulae

Old:
https://web.archive.org/web/20190819184818/https://aenthropy.bandcamp.com/album/nebulae

BandData
{
  "id": 4083179472,
  "name": "ÆNTHROPY",
  "fan_email": "aenthropy@gmail.com",
  "account_id": 1718669674,
  "has_discounts": null,
  "image_id": 13225049
}
EmbedData
{
  "tralbum_param": {
    "name": "album",
    "value": 1236256499
  },
  "album_title": "Nebulae",
  "linkback": "http://aenthropy.bandcamp.com/album/nebulae",
  "art_id": 1815264562,
  "artist": "Aenthropy",
  "swf_base_url": "https://bandcamp.com/",
  "show_campaign": null,
  "embed_info": {
    "exclusive_embeddable": null,
    "no_track_preorder": false,
    "item_public": true,
    "public_embeddable": "28 Oct 2018 19:50:35 GMT"
  }
}
TralbumData
{
  "current": {
    "purchase_title": null,
    "selling_band_id": 4083179472,
    "new_date": "28 Oct 2018 19:43:32 GMT",
    "title": "Nebulae",
    "audit": 0,
    "require_email": null,
    "download_pref": 2,
    "mod_date": "28 Oct 2018 19:52:32 GMT",
    "about": null,
    "require_email_0": null,
    "minimum_price": 0,
    "private": null,
    "credits": null,
    "publish_date": "28 Oct 2018 19:50:35 GMT",
    "id": 1236256499,
    "release_date": "28 Oct 2018 00:00:00 GMT",
    "download_desc_id": null,
    "art_id": 1815264562,
    "is_set_price": null,
    "featured_track_id": 1127571963,
    "band_id": 4083179472,
    "set_price": 1400,
    "type": "album",
    "purchase_url": null,
    "new_desc_format": 1,
    "auto_repriced": null,
    "artist": "Aenthropy",
    "minimum_price_nonzero": 1400,
    "killed": null,
    "upc": null
  },
  "is_preorder": null,
  "album_is_preorder": null,
  "album_release_date": "28 Oct 2018 00:00:00 GMT",
  "preorder_count": null,
  "hasAudio": true,
  "art_id": 1815264562,
  "trackinfo": [
    {
      "alt_link": null,
      "lyrics": null,
      "has_info": true,
      "title": "Nebula Aeterna",
      "video_source_id": null,
      "track_num": 1,
      "track_id": 1127571963,
      "encoding_error": null,
      "duration": 387.375,
      "is_downloadable": true,
      "license_type": 1,
      "encodings_id": 1526992495,
      "video_mobile_url": null,
      "album_preorder": false,
      "track_license_id": null,
      "encoding_pending": null,
      "has_free_download": null,
      "video_poster_url": null,
      "streaming": 1,
      "unreleased_track": false,
      "private": null,
      "play_count": null,
      "is_draft": false,
      "free_album_download": false,
      "video_caption": null,
      "title_link": "/track/nebula-aeterna",
      "id": 1127571963,
      "is_capped": null,
      "video_id": null,
      "sizeof_lyrics": 0,
      "video_featured": null,
      "has_lyrics": false,
      "file": {
        "mp3-128": "https://t4.bcbits.com/stream/8554cb5ead93cf63de48c6b0be72d95e/mp3-128/1127571963?p=0&ts=1566326898&t=dc973669b73b7bd0a20a73024c9ef595c8ebf58e&token=1566326898_80b0e65862451eddf02a819b9e0a8a45b20de45c"
      },
      "video_source_type": null
    },
    {
      "alt_link": null,
      "lyrics": null,
      "has_info": true,
      "title": "Nebula Ultima",
      "video_source_id": null,
      "track_num": 2,
      "track_id": 2451705932,
      "encoding_error": null,
      "duration": 221.143,
      "is_downloadable": true,
      "license_type": 1,
      "encodings_id": 955152622,
      "video_mobile_url": null,
      "album_preorder": false,
      "track_license_id": null,
      "encoding_pending": null,
      "has_free_download": null,
      "video_poster_url": null,
      "streaming": 1,
      "unreleased_track": false,
      "private": null,
      "play_count": null,
      "is_draft": false,
      "free_album_download": false,
      "video_caption": null,
      "title_link": "/track/nebula-ultima",
      "id": 2451705932,
      "is_capped": null,
      "video_id": null,
      "sizeof_lyrics": 0,
      "video_featured": null,
      "has_lyrics": false,
      "file": {
        "mp3-128": "https://t4.bcbits.com/stream/d5c6c363812c6c1d48725ce7e359e255/mp3-128/2451705932?p=0&ts=1566326898&t=656d513e054648f36f553bc4bce394b49cc4a934&token=1566326898_0473ee0718566abbaff9c49085b3849fba90a1f3"
      },
      "video_source_type": null
    }
  ],
  "playing_from": "album page",
  "featured_track_id": 1127571963,
  "initial_track_num": null,
  "packages": null,
  "url": "http://aenthropy.bandcamp.com/album/nebulae",
  "defaultPrice": 1400,
  "freeDownloadPage": "https://bandcamp.com/download?id=1236256499&ts=1566240498.658301203&tsig=7c8833899519c35254802c3deb1f3504&type=album",
  "FREE": 1,
  "PAID": 2,
  "artist": "Aenthropy",
  "item_type": "album",
  "id": 1236256499,
  "last_subscription_item": null,
  "has_discounts": null,
  "is_bonus": null,
  "play_cap_data": null,
  "client_id_sig": null,
  "is_purchased": null,
  "items_purchased": null,
  "is_private_stream": null,
  "is_band_member": null,
  "licensed_version_ids": null,
  "package_associated_license_id": null,
  "tralbum_collect_info": {
    "show_wishlist_tooltip": false,
    "show_collect": true
  }
}

New:
https://web.archive.org/web/20191122070703/https://aenthropy.bandcamp.com/album/nebulae

BandData
{
  "id": 4083179472,
  "name": "ÆNTHROPY",
  "fan_email": "aenthropy@gmail.com",
  "account_id": 1718669674,
  "has_discounts": null,
  "image_id": 13225049
}
EmbedData
{
  "tralbum_param": {
    "name": "album",
    "value": 3178039765
  },
  "album_title": "Nebulae",
  "linkback": "http://aenthropy.bandcamp.com/album/nebulae",
  "art_id": 1062309902,
  "artist": "ÆNTHROPY",
  "swf_base_url": "https://bandcamp.com",
  "show_campaign": null,
  "embed_info": {
    "exclusive_embeddable": null,
    "item_public": true,
    "no_track_preorder": false,
    "public_embeddable": "21 Nov 2019 15:04:41 GMT"
  }
}
TralbumData
{
  "current": {
    "is_set_price": null,
    "publish_date": "21 Nov 2019 15:04:41 GMT",
    "audit": 0,
    "featured_track_id": 2275342232,
    "download_desc_id": null,
    "art_id": 1062309902,
    "upc": null,
    "band_id": 4083179472,
    "set_price": 1400,
    "killed": null,
    "title": "Nebulae",
    "purchase_url": null,
    "new_desc_format": 1,
    "artist": null,
    "minimum_price_nonzero": 1400,
    "purchase_title": null,
    "selling_band_id": 4083179472,
    "download_pref": 2,
    "private": null,
    "new_date": "21 Nov 2019 11:45:40 GMT",
    "id": 3178039765,
    "about": null,
    "require_email": null,
    "mod_date": "21 Nov 2019 15:04:41 GMT",
    "auto_repriced": null,
    "minimum_price": 0,
    "type": "album",
    "credits": null,
    "require_email_0": null,
    "release_date": "21 Nov 2019 15:04:41 GMT"
  },
  "is_preorder": null,
  "album_is_preorder": null,
  "album_release_date": "21 Nov 2019 15:04:41 GMT",
  "preorder_count": null,
  "hasAudio": true,
  "art_id": 1062309902,
  "trackinfo": [
    {
      "video_caption": null,
      "title_link": "/track/nebula-aeterna",
      "is_capped": null,
      "sizeof_lyrics": 0,
      "video_featured": null,
      "video_id": null,
      "has_lyrics": false,
      "title": "Nebula Aeterna",
      "video_source_type": null,
      "alt_link": null,
      "lyrics": null,
      "has_info": false,
      "track_id": 2275342232,
      "video_source_id": null,
      "track_num": 1,
      "private": null,
      "encodings_id": 213249593,
      "encoding_error": null,
      "is_downloadable": true,
      "license_type": 1,
      "video_mobile_url": null,
      "duration": 390.929,
      "album_preorder": false,
      "id": 2275342232,
      "track_license_id": null,
      "encoding_pending": null,
      "has_free_download": null,
      "streaming": 1,
      "video_poster_url": null,
      "unreleased_track": false,
      "file": {
        "mp3-128": "https://t4.bcbits.com/stream/10d756f948334f64e19827763d271699/mp3-128/2275342232?p=0&ts=1574491313&t=1ddfdc88c4b04737571572f7b626967fac9e462f&token=1574491313_93bb7a5546774494b7cc28d785426c9272ade4bf"
      },
      "play_count": null,
      "is_draft": false,
      "free_album_download": false
    },
    {
      "video_caption": null,
      "title_link": "/track/nebula-ultima",
      "is_capped": null,
      "sizeof_lyrics": 0,
      "video_featured": null,
      "video_id": null,
      "has_lyrics": false,
      "title": "Nebula Ultima",
      "video_source_type": null,
      "alt_link": null,
      "lyrics": null,
      "has_info": false,
      "track_id": 1358613678,
      "video_source_id": null,
      "track_num": 2,
      "private": null,
      "encodings_id": 3092888070,
      "encoding_error": null,
      "is_downloadable": true,
      "license_type": 1,
      "video_mobile_url": null,
      "duration": 220.286,
      "album_preorder": false,
      "id": 1358613678,
      "track_license_id": null,
      "encoding_pending": null,
      "has_free_download": null,
      "streaming": 1,
      "video_poster_url": null,
      "unreleased_track": false,
      "file": {
        "mp3-128": "https://t4.bcbits.com/stream/1a829aa461980041da3493c58532b921/mp3-128/1358613678?p=0&ts=1574491313&t=71b8c409430a0a57fd53600695ffeb007d5ef96f&token=1574491313_ba9f0e93a330767b39dbcbfb0e34fff275a09337"
      },
      "play_count": null,
      "is_draft": false,
      "free_album_download": false
    },
    {
      "video_caption": null,
      "title_link": "/track/bipolar",
      "is_capped": null,
      "sizeof_lyrics": 0,
      "video_featured": null,
      "video_id": null,
      "has_lyrics": false,
      "title": "Bipolar",
      "video_source_type": null,
      "alt_link": null,
      "lyrics": null,
      "has_info": false,
      "track_id": 13177576,
      "video_source_id": null,
      "track_num": 3,
      "private": null,
      "encodings_id": 3801436426,
      "encoding_error": null,
      "is_downloadable": true,
      "license_type": 1,
      "video_mobile_url": null,
      "duration": 445.8,
      "album_preorder": false,
      "id": 13177576,
      "track_license_id": null,
      "encoding_pending": null,
      "has_free_download": null,
      "streaming": 1,
      "video_poster_url": null,
      "unreleased_track": false,
      "file": {
        "mp3-128": "https://t4.bcbits.com/stream/4a49e9fc6671eeaea795789cd63fbf2c/mp3-128/13177576?p=0&ts=1574491313&t=b6dc5ef7750a086f5362ca6ff35c19c8696d4902&token=1574491313_150cce738d90d2fb7d5130d163e6249976fafd53"
      },
      "play_count": null,
      "is_draft": false,
      "free_album_download": false
    },
    {
      "video_caption": null,
      "title_link": "/track/napfelkelte",
      "is_capped": null,
      "sizeof_lyrics": 0,
      "video_featured": null,
      "video_id": null,
      "has_lyrics": false,
      "title": "Napfelkelte",
      "video_source_type": null,
      "alt_link": null,
      "lyrics": null,
      "has_info": false,
      "track_id": 2046678656,
      "video_source_id": null,
      "track_num": 4,
      "private": null,
      "encodings_id": 2973768061,
      "encoding_error": null,
      "is_downloadable": true,
      "license_type": 1,
      "video_mobile_url": null,
      "duration": 314.4,
      "album_preorder": false,
      "id": 2046678656,
      "track_license_id": null,
      "encoding_pending": null,
      "has_free_download": null,
      "streaming": 1,
      "video_poster_url": null,
      "unreleased_track": false,
      "file": {
        "mp3-128": "https://t4.bcbits.com/stream/548f0691d87245cb426774c71adf325b/mp3-128/2046678656?p=0&ts=1574491313&t=ec748c6eb67caa5cb322ab8bca459c493f8e1abb&token=1574491313_a8ea8d59f43a9b7d2d2f622a38bdfff47a9c5ca2"
      },
      "play_count": null,
      "is_draft": false,
      "free_album_download": false
    },
    {
      "video_caption": null,
      "title_link": "/track/1408",
      "is_capped": null,
      "sizeof_lyrics": 0,
      "video_featured": null,
      "video_id": null,
      "has_lyrics": false,
      "title": "1408",
      "video_source_type": null,
      "alt_link": null,
      "lyrics": null,
      "has_info": false,
      "track_id": 3523417930,
      "video_source_id": null,
      "track_num": 5,
      "private": null,
      "encodings_id": 2318333654,
      "encoding_error": null,
      "is_downloadable": true,
      "license_type": 1,
      "video_mobile_url": null,
      "duration": 368.308,
      "album_preorder": false,
      "id": 3523417930,
      "track_license_id": null,
      "encoding_pending": null,
      "has_free_download": null,
      "streaming": 1,
      "video_poster_url": null,
      "unreleased_track": false,
      "file": {
        "mp3-128": "https://t4.bcbits.com/stream/172ffbae16c3bfca60a7e0faa0a600ad/mp3-128/3523417930?p=0&ts=1574491313&t=7681505f803c7ee16b1d5effac780ac3e0017a4a&token=1574491313_4096dc5e10ca67ccce01c1347520eab2c1f41946"
      },
      "play_count": null,
      "is_draft": false,
      "free_album_download": false
    },
    {
      "video_caption": null,
      "title_link": "/track/moraj",
      "is_capped": null,
      "sizeof_lyrics": 0,
      "video_featured": null,
      "video_id": null,
      "has_lyrics": false,
      "title": "Moraj",
      "video_source_type": null,
      "alt_link": null,
      "lyrics": null,
      "has_info": false,
      "track_id": 1685971296,
      "video_source_id": null,
      "track_num": 6,
      "private": null,
      "encodings_id": 1268635962,
      "encoding_error": null,
      "is_downloadable": true,
      "license_type": 1,
      "video_mobile_url": null,
      "duration": 375.692,
      "album_preorder": false,
      "id": 1685971296,
      "track_license_id": null,
      "encoding_pending": null,
      "has_free_download": null,
      "streaming": 1,
      "video_poster_url": null,
      "unreleased_track": false,
      "file": {
        "mp3-128": "https://t4.bcbits.com/stream/9c079ba5a4b41537c6517be5d9a37494/mp3-128/1685971296?p=0&ts=1574491313&t=b9e724f72b5c4a6485d2fcace4c5cfa4ed0f0b06&token=1574491313_2d08c0bfec1b2cbb62be8cccef8df43d42fb0946"
      },
      "play_count": null,
      "is_draft": false,
      "free_album_download": false
    }
  ],
  "playing_from": "album page",
  "featured_track_id": 2275342232,
  "initial_track_num": null,
  "packages": null,
  "url": "http://aenthropy.bandcamp.com/album/nebulae",
  "defaultPrice": 1400,
  "freeDownloadPage": "https://bandcamp.com/download?id=3178039765&ts=1574404913.1378623626&tsig=098e19053bb092e33aaccc88ebe8d305&type=album",
  "FREE": 1,
  "PAID": 2,
  "artist": "ÆNTHROPY",
  "item_type": "album",
  "id": 3178039765,
  "last_subscription_item": null,
  "has_discounts": null,
  "is_bonus": null,
  "play_cap_data": null,
  "client_id_sig": null,
  "is_purchased": null,
  "items_purchased": null,
  "is_private_stream": null,
  "is_band_member": null,
  "licensed_version_ids": null,
  "package_associated_license_id": null,
  "tralbum_collect_info": {
    "show_wishlist_tooltip": false,
    "show_collect": true
  }
}

And to make this post not too off topic: It seems the date when a Bandcamp release first was publicly available can be determined via the public_embeddable variable. (Still, care needs to be taken since it could’ve been shared privately via link before that.)

4 Likes

Release dates on Bandcamp are unreliable:

  • artist or label can set anything as release date (for example, release date can be something before Bandcamp even existed)
  • releases can be modified at any time (for example: one can make a release containing only one track as preview, then add more tracks later to make it an EP, without changing release date)
  • cover art can be modified after initial release without changing release date

There’s no way to cover all cases. The Bandcamp Importer userscript is trying to detect the case where release date was set to a date before Bandcamp existed (https://github.com/murdos/musicbrainz-userscripts/blob/bed1b9b4a45f65ca1c2b156b66094046921b3494/bandcamp_importer.user.js#L59), but it accepts future dates (because it happens often, releases are published with few tracks before the actual full release).

And since releases can be modified after release (for example, by adding, removing, re-ordering tracks), or release date may not match reality (for example, initially set release date isn’t modified if actual release is delayed), and release date may match only one kind of release (as one Bandcamp page may contain multiple releases, digital, vinyls, CDs, cassettes, etc…), it’s almost impossible to be sure of anything.

embed_info is about embeddable player, and I think public_embeddable is the date it is made public (but it can be an exclusive embed for promo), not sure it is more reliable since it may not match actual definitive release date.

Another messy case: the release date is the date for the digital release, but physical releases may have a note giving another release date, which is hard to extract (it is free text).

In short, I see no perfect solution.

6 Likes

This would be another thing that would be helped a lot by having some sort of automated archival process for links, both in submissions and, IMO, especially in edit notes (e.g. through the Internet Archive).

3 Likes

I’ve seen a Discogs editor providing archive links and screenshots for digital release submissions. Personally I started using a userscript to automatically archive every page visited.

2 Likes


6 Likes

I was the one who tried to modify it because I have not found a possibility to erase the entry.
The reason is that Aenthropy (my band) released a full lenght album with the same title as the previous EP had and I wanted to avoid any misunderstanding. Any suggestions?

1 Like

Added the album and linked it to the single/EP via the “Release Group-Release Group / Single from” relationship.
In the overview they are grouped by RG type and if required they can be further disambiguated.

3 Likes

Thanks a lot and apologies for the caused problem. :slight_smile:

Depending on your location some data like the price, datePublished or the “more from label” link might differ:

2 Likes

Found a userscript that will display the datePublished and dateModified:

(I think I’ve seen someone requesting such a script but can’t find it anymore)

4 Likes

Turns out above script was grabbing dates from the wrong place. E.g. for Vol. 1 | Dark Ambient Radio it would show March 12, 2008 as publish date which is obviously wrong. The actual release date on Bandcamp is July 25, 2021

I went to modify it a little bit and as a bonus it should also display public_embeddable if it differs from publish_date

Update:
Bandcamp is a clusterfuck. This was released in 2018: Dopamine Amplifier | Geass;What
Yet the publishing dates are conflicting.

publish_date matches the date shown in the community tab.

Update:
datePublished was more reliable in this case too:

BTW, Metal-Archives also warns of trusting publish_date

Update
Can it get even crazier?

9 Likes