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
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?
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
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?
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
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
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
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
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
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
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
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
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:
Always good to have options!
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
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
Just committed a first release of a Bandcamp provider module for Emfield
http://drupal.org/project/media-bandcamp
Drupal 7 release?
Just curious if theres been any recent progress on a Drupal 7 release. Any interest in Bandcamp integration?
Gus Austin
drupal 8
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
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