Pushtape: A Music Publishing Platform


June 10, 2011 - 2:38pm

Pushtape is a Drupal-based music publishing project I've been working on. It is currently under active development.

Design goals:

  • easily publish a discography with albums and tracks
  • simple admin interface
  • extendable, minimal framework using existing web technologies

The project is in its very early stages, but I wanted to share with you how we got here and why I believe building this piece of software is important.

The idea of using Drupal for music publishing is not new. In 2005 I tried to build a music install profile to include with Civicspace, but Drupal was not mature enough and looking back my scope was way too broad. A few years later Bryght attempted something similar with Backstage, which was intended to be a music distribution directed at the music industry. And in the years since there has been a very long discussion about a music distribution on the Drupal Art & Music group, with some great ideas brought to the table by the likes of Dublin Drupaller and Gus Austin (who has also started scratching a similar itch). Most recently at the Drupal for Musicians BoF held in DrupalCon Chicago (view presentation slides here), a group of us talked about this some more, and while everyone seemed to agree that Drupal is great for music publishing, building a useful toolkit is harder than it first appears.

Part of the challenge is that there are so many different use cases that pinning down a feature set is just too hard. Is this for a single band? Is this for a community of musicians? Is this for a label who is managing multiple bands? Is this for selling music? Who will actually be building the site and using it; should it be targeted towards developers or musicians themselves? My conclusion has been to first try and build a minimal toolkit to solve obvious problems related to publishing a discography for a single band, but try and make things easy to expand upon later.

The other challenge is that web services have really improved over the years, making the need for an open-source solution less of an itch that people need to scratch. Musicians have a myriad of publishing options today. One of the best services out there right now is Bandcamp, which allows musicians to upload their music and sell it online with minimal branding and has an incredibly easy user interface. Another popular one is SoundCloud, which incorporates many social features. Then there are services like TuneCore which lets you sell your music through online vendors such as iTunes, Rhapsody, and more. These are all great options for musicians and I highly recommend checking them out. However, there are tradeoffs to using these services, just as there are with any web services. On the plus side, web services are generally always easier to setup and use and updates are automatic. However, ownership and control of data will always remain a concern, and you often can't view the code or hack and extend the software that runs the service (for obvious reasons). Hackable technologies definitely require more work but in my opinion are rewarding for those that enjoy building things and the freedom to modify software for their own purposes — something Drupal developers intuitively understand.

For Pushtape I want to encourage this hackability. The bulk of the work is done with Panels, CCK and Views wrapped inside of Features. Most custom code is going into UI improvements and tweaks. A "song" or track is based on the song-is-a-page concept. If you already have your music hosted somewhere else, such as Bandcamp or Archive.org, that's great! Rather than try to duplicate functionality of other services, I want to keep things simple so you can customize and create an authoritative resource (i.e. your website) allowing you to define how people can reach your music. In some cases, you might want to have multiple links for a single song: Bandcamp for streaming, Vimeo for the music video, and iTunes for purchasing your music. Or you may choose to treat it solely as a simple discography tool, without any mp3s or links to purchase. Or maybe you'd like to upload mp3s and use Sound Manager 2 to create streaming playlists. The idea is to create a structured, yet flexible, framework for creating songs with metadata, and allow you to organize your songs into albums. It should be simple enough that you can modify it for your own needs without (hopefully!) too much hair pulling, yet still have some useful functionality out of the box.

Do you have ideas for how Pushtape should be built or interest in supporting development? Please join the conversation! You can sign up for the email list on the Pushtape website or join the Art & Music group on groups.drupal.org. Looking forward to it!


Quick follow up, as I've been getting some questions/comments via the art music group and the pushtape signup so I thought I'd gather the answers here:

From GDO:
"I'm having a hard time figuring out where Pushtape fits in. Will Pushtape essentially be the 'Discography/listen' module/feature that you describe in the above posts? Or will the discography be the first part of a suite of features that would make up the 'Pushtape' publishing platform? It's looking like it will be more than a module?"

I left out a lot of technical detail in my blog post here but the idea is that Pushtape will first be a single Feature for discography, and then will expand from there. Eventually the idea is to package 3 or 4 Features together with a mobile friendly theme into an install profile/distribution, but I'm not certain how that will look. There are no plans at this time for a hosted version of Pushtape but that is an exciting possibility down the road. Right now I'd like to just get the basics working.

"Any buy in from Sony, Warner Bros. Records or any of the other labels using Drupal? Would be great to have some consolidation in this space."

At this time Pushtape is being developed independent of any labels. However at DrupalCon we had some good conversations with some of the people at Sony, you can read some of Mbyrnes comments here. As they are a label, I see their use case leaning more towards having a multiple artist scenario. Pushtape is geared towards a single artist/band. It should be possible to scale it up to a label level, but that is an idea I haven't really explored yet.

There isn't much web software out there that deals specifically with the task of a single band self publishing music online. Those that are out there seem to focus primarily on selling music, is really just modified blog software, or requires extensive technical expertise. We are missing some basic, hackable, do-it-yourself tools that bands can use to release music online without compromising data ownership/authority. Pushtape is hopefully a first step towards providing some solid decentralized music publishing software.

Great to see you quietly pushing forward on something that's been talked about and debated for years! I think a lot of individuals and companies will get behind this project as word gets out.

As co-organizers of the Arts & Music group (http://groups.drupal.org/art-music), we should organize that space to get more people aware and involved. Possibly a post specifically about Pushtape would be a good starting point...haha.

Thanks again, Farsheed! Looking forward to making this happen!

Good idea Gus! Yes I'll start a discussion thread specifically about Pushtape over there too. I was holding off until I had some code to release but I think a demo site showing functionality might be more useful at this stage, at least so people get an idea of what's happening.

I am two years late to see this article.

How is progress going?

Hi Alexander,

A beta version is available for download. You can visit Pushtape.com for more information, or download directly from http://drupal.org/project/pushtape. Please try it out and submit any issues you find to the issue queue!

You can also try spinning up Pushtape on Pantheon for free.

IRC: #pushtape on freenode

Twitter: twitter.com/pushtape


Post a comment

The content of this field is kept private and will not be shown publicly.
Let us know you're human by typing in this code. The code is case sensitive.
Enter the characters shown in the image.
To prevent automated spam submissions leave this field empty.