Drupal bandcamp.com module

We encourage users to post events happening in the community to the community events group on https://www.drupal.org.
stuzza's picture

I run a couple of music websites for groups I'm involved with and we have some tracks loaded up for sale or download at bandcamp.com. On our sites we tend to drop bandcamp players onto our pages, but I've often thought how it would be good to get bandcamp data in jquery tabs or other widgets to make display on our own site more flexible.

As a stab in this direction, and as a way of teaching myself Drupal 7, I've written a bandcamp module which imports bandcamp band, album and track data and converts them into Drupal 7 entities with associated fields. There's also a limited presentation module which picks and displays bandcamp releases and tracks from a random selection. Nothing fancy.

Not included: views integration. From the research I've done, it looks like generic entity integration in views is a current D7 goal (it should be, anyway). So I hope eventually there will be no need for custom views integration from this end. We'll see.

Anyway, the main intent of this post is to test the waters and see if there are any other Drupal site maintainers requiring a bridge to bandcamp.com. Check out the module at http://maltymedia.co.nz/bandcamp-7.x-0.1.tar.gz.

Thanks

Stuart

Comments

Yeah, I've recently taken on

stevetweeddale's picture

Yeah, I've recently taken on some work that will involve building a few artist websites, and would be interested to see what you've done!

Bandcamp intergration, Drupal 6?

loopduplicate's picture

Hey, that sounds awesome!

Take a look at my site to see how I integrated Bandcamp into our Drupal Ubercart store. Just click on one of the new releases and you'll see a little bandcamp embedded player there. I couldn't make one of their embedded players work right out of the box so for now I do some css-fu to crop their venti player: http://burningtokenrecords.com/store

I'm really interested in making my own player with their feeds though so I'd love to have a copy of that module.

My sites all still run on Drupal 6 though so I'll have to test out your module on a test site. Any plans for Drupal 6 or am I living in the past?

Cheers!
Jeff aka Loop Duplicate aka Owner of Burning Token Records aka Penniless Musician!

D6

stuzza's picture

Hi loopduplicate,

At this stage I'm not planning a D6 version as the free time I previously had has evapourated, but the bandcamp API file is separate from the D7 code so it would be fairly easy to repurpose it to generate nodes for band/release/track content types defined via features.

As for the ubercart nodes, using what I've done, and assuming that the Relation module (http://drupal.org/project/Relation) comes through you could attach a track entity relation to an ubercart product node. Theming the player from there would be interesting. Currently the bandcamp_presentation module I've added hacks together a player via a theme function, but without any attention paid to customisation. The Bandcamp tech blog (http://bandcamptech.wordpress.com/2010/11/24/embedded-player-customization/) does specify how this can be done using a callback that returns json configuration back to bandcamp, so there are some interesting possibilities there.

Cheers

Stuart

Bandcamp and Media module?

gusaus's picture

Bandcamp integration would be a great feature on many Drupal based music sites. I wonder if Bandcamp could plug into the Media module - http://drupal.org/project/media.

Gus Austin

Stuart, Interesting work. How

zirafa's picture

Stuart,

Interesting work. How did you get the bandcamp data? I know they are working on an API but it seemed like it was in an early stage last I checked. It'd be great to see a way of bridging Drupal to Bandcamp, and vice versa. BTW are you the same Stuart commenting on that post?

Hi Zirafa, I am the same

stuzza's picture

Hi Zirafa,

I am the same commenter on the Bandcamp Tech blog :) I get around... The Bandcamp API seems pretty robust, and I am using it to retrieve data used by this module. The main issue at the moment is that there's still some work to be done on entity management by the wider Drupal community (for example, entity references) to manipulate the data imported by the module. In case I haven't mentioned it enough times already, the focus of this module is importing and maintaining bandcamp data in Drupal. That said, I find the band pages useful as an alternative 'view' of our bandcamp data for track inventory management: displaying which tracks have which pricing model, lyrics and other data, which might be useful for maintaining labels with large numbers of releases.

We'll see how things progress.

Cheers

Stuart

The link: http://maltymedia.co.nz/bandcamp-7.x-0.1.tar.gz

stuzza's picture

I thought I posted this earlier, but anyway: http://maltymedia.co.nz/bandcamp-7.x-0.1.tar.gz. There's been some routing trouble with the AWS instance this is hosted on, but hopefully you'll be able to get to it.

Thanks

Stuart

Stuart, Do you know if the

zirafa's picture

Stuart,

Do you know if the Bandcamp API only lets you request data? Can you for instance initiate a file upload through the API? I took a quick look at your module file; apologies if I missed seeing the ability to upload.

But this seems very useful!

The API only allows you to

stuzza's picture

The API only allows you to fetch data and, there's no authentication involved - you just hit a URL and JSON gets returned. Consequently the module acts like content migration (from the band level), so that bands have basic level of CRUD (edit replaced with 'Reimport'), and releases and tracks have no crud at all.

When I obtained an API key from bandcamp they informed me the API was intended to be used to drive traffic to bandcamp, rather than replicate bandcamp within other sites. I think this makes sense. If it's useful to you, from what I've discovered SoundCloud seems to offer a more comprehensive API. I'm not sure if it supports the retail side of things though :)

Stuart

Bandcamp for Drupal 6

pau1_m's picture

I've been working on a Drupal 6 provider that integrates Bandcamp with the Embedded Media Field module.

It doesn't make use of the API (I only found out about that in this post) but allows users to paste Bandcamp URLs into a CCK field that will then render in a flash player on the node. It provides admins some control over display elements (dimensions, colour and visualization) and has a 'preview' option that can be used in Views.

The code is at github and a copy of the module (zipped) can be found here

This is awesome! I've been

benanne's picture

This is awesome! I've been looking to replace the 'googtube' module with Embedded Media Field's 'eminline' module, and seeing as a lot of Bandcamp links are posted on my site I was looking for something like this. Will definitely try it out, thanks!

Given Ubercart can already

MickC's picture

Given Ubercart can already handle selling files/downloads, it only makes sense to give Bandcamp 15% commission if they are generating the traffic - the best they offer is 10% assuming at least $5,000 sales in 12 months. Payment processing fees on Bandcamp are not included in the revenue share rates - they claim processing fees are separate and typically range between 4 and 6%. Paypal is only 3.5% through Ubercart, so it makes sense to sell on Ubercart first if you are doing the work to generate demand.

As per Stuzza's comment Bandcamp is designed to drive traffic to itself, not artist sites, so if consumers really do go there to discover music its a benefit, but it doesn't seem to be consumer friendly, and I suspect the consmer traffic is being generated by other bands. The main benefit has to be for those artists who don't have heir own resources to have an e-commerce site. Drupalers using Ubercart don't have that problem, however maybe it saves duplicated effort, bandwidth, storage space etc Not so much a problem for a single artist but can add up if your site handles multiple artists as mine does - still hasn't been a problem yet. So I wonder:

  • can Ubercart sell access to a bandcamp file? Take the payment on Ubercart and just allow access on Bandcamp without the payment?
  • could Ubercart issue a token/voucher for use on digi-stores (I believe 7digital have a voucher system)

Always good to have options!

gusaus's picture

As more and more artists discover and use BandCamp, it makes a lot of sense to provide a way seamlessly integrate into Drupal and provide as a Music Feature. Topspin and potentially CASH Music would provide even more choices.

Gus Austin

Take this how you want, but

awmcdonald's picture

Take this how you want, but it would be better to use cURL instead of fopen for getBandcampData() function in case a user mistypes their bandName. Your code will break (i believe) if the name is invalid because Bandcamp will return JSON with a 500 header. I'm working on a custom app right now using their API and found out the hard way :)

Bandcamp for Emfield

pau1_m's picture

Just committed a first release of a Bandcamp provider module for Emfield

http://drupal.org/project/media-bandcamp

Drupal 7 release?

gusaus's picture

Just curious if theres been any recent progress on a Drupal 7 release. Any interest in Bandcamp integration?

Gus Austin

drupal 8

kristofferrom's picture

Reviving this old one to see if anyone could be up for doing a d8 bandcamp module?

--

https://tambourhinoceros.net
- record label and music publisher

drupal 9 plus stock sync

kristofferrom's picture

Just an fyi that my label is currently looking into having a bandcamp module developed for Drupal 9 with the purpose of syncing stock between Drupal Commerce and Bandcamp.

--

https://tambourhinoceros.net
- record label and music publisher

Music

Group organizers

Group notifications

This group offers an RSS feed. Or subscribe to these personalized, sitewide feeds: