Ingredients for an Album/Track page

You are viewing a wiki page. You are welcome to join the group and then edit it. Be bold!

This wiki is an attempt to explore the various options we have to build an album page with the ability to play individual tracks as well as the complete album/playlist. Ideally we'll get input/advice from some of those who have built and/or implemented this type of solution.


Drupal site examples

Drupal driven sites with album/tracklist players.

Non-Drupal examples

For inspiration and ideas,

Key functionality

  • Allows you to "preview/listen all"
  • Allows the user to click to play another song and automatically stops playing the previous song, if another one is clicked.
  • When a song finishes playing it automatically moves to the next song.
  • Volume, pause and play control
  • Option to 'pop-up' player


Attaching audio

  • Audio module -
    • allows users with proper permissions to upload audio files into drupal.
    • Each audio item is created as its own individual audio node.
    • uses the getID3 library to read and write ID3 meta-tag information to and from the audio file.
  • Media Field -
    • CCK fields for storing audio
  • Embedded Media Field (
    • This extensible module will create fields for node content types that can be used to display video, image, and audio files from various third party providers.

External audio

  • Sony BMG -
    • Tracks are their own nodes with a node reference to the album and a cck field for the track url which is then served up through a custom player.
    • The actual track is hosted on a third party server so we just reference the location within the node and let the player deal with serving up the actual track itself.
    • Node creation of Albums and Tracks is automated through a custom module that uses the Amazon API to generate the nodes. You could use the Amazon services module for something like this.
  • Embedded Media Field and XSPF playlist? -
    • Per athurf ( - XSPF Playlist is just building playlists off data that is defined from nodes. It shouldn't be hard for me to create an option to save an XSPF file in the db for retrieval- potentially, I see a mapper for FeedAPI that takes XSPF playlists and then saves them.

Creating playlists

  • XSPF Playlist -
    • generates a XSPF playlist from files that are attached to a node.
    • It was designed for Jeroen Wijering's flash player, though it should work with other flash players.
    • The admin interface allows the administrator to select what node types it works on, choose a default thumbnail file to use, and forthcoming support for CCK fields.
    • It also supports multiple file types (audio, video, flash) that are supported by the flash player.
  • Media Mover -
    • a suite of modules which can convert content to FLV and then can be integrated with XSPF Playlist

Flash Media Players

Controlling the player



illSleepWheniDie's picture

Audio module as multi content type

slipxnot's picture

hey i was wondering if it can be done to create a new content type of music album that got album image and multiple fields of the "Audio module - " and also got few fields in place of submiting every audio in single node and then join them

check this out.`

philk's picture

You can use views to group all the album tracks together and add in the album artwork that way. check this out:

That's what is described

thomas23's picture

That's what is described above under "Controlling the player":

The Four of Us (example by dublin drupaller here - - The audio player is controlled using a mix of mainly prototype and soundmanager2. It's a fairly heavy set of js at the moment but the plan is to trim it down and either create an add-on .inc for the audio.module (if there is enough interest) or integrate it into views, so it can be used for any drupal playlist.

how do you group the tracks

davebv's picture

how do you group the tracks with views? may you point to some example? I didn't find any views filter/field in which I can select album name.

The album names come from

theohawse's picture

The album names come from the id3 tags, which aren't very reliable anyway.
There is a nice way to do this with Node Reference Fields within an "Album" Content Type.
Then each Track/Song Can be chosen at the create album screen, referencing a new custom view on a per track basis
(single table row in the final list-view).

I'm trying to do this on a multiple-artist site and passing arguments is giving me a real headache.
Single-artist sites should be much easier.

Album names as taxonomy terms

dwees's picture

Why not Album names as Taxonomy terms? Then each artist becomes a top-level term in the vocabulary, and each next level term is an album, and each song has an album term associated with it, as does an Album node type.

Then you can leverage existing views to view artists, etc...


Nodes & Content types = A proper ALBUM

xaccrocheur-gdo's picture

Wow, Darkbrewery, you ignited a spark in my foggy brain. Thank you about that. Could please elaborate a little ? I too am setting up a multi-artist site, and I'd like to know :

I already created an "album" content type, how can I create "Node Reference Fields within it" ? Using the taxonomy module ? Or the CCK one ?

What I'd like to do is
- allow reg. users to create albums
- Attach cover artwork
- upload audio files
- attach them to the said album(s), and then use getid3() to write user-entered tags to the audio files,
- create a playlist on the fly per album, so that the

Then anonymous users will then be presented albums, not audio files, and will be able to listen the whole XSPF playlist through a player that knows how to handle them, then (possibly, this is not even prototyped) download the whole album properly tagged and gathered into a nice zip, along with the aforementioned playlist.

I tried various setups, had a go at taxonomy but got lost. I know I have to learn and master the drupal node concept, but I wiew this challenge as a way to do just that.

So my question really is : How do one start to create a full-featured "Album" object ?

Excuse this long introduction in a poor 2nd grade english but I wanted to present myself a bit to you guys.

Now I'd feel bad if I would not say : Drupal rules. Every core, optional, module developper and every person working on this wonderfully elegant and powerful tool deserves my total admiration.

Hope to hear from you soon

Hi, I am trying to achieve

Jumoke's picture

I am trying to achieve this same exact task you have laid out here for a site i am just starting. How did you go about this? Can you give me your recipe? Can i ask for 10 minutes of your time please? I look forward to your reply

demo music shop

Phillip Mc's picture

worth mentioning on this page the demo music downloads shop by dublin drupaller that's being used to showcase a new payment module that allows ppl to pay for stuff using their mobile phone.

You'll want to use CCK

theohawse's picture

Well at least this is where I've had sucess (CCK)-

I actually have 3 main content types: Artist Album Audio
Where audio content type has been created by the Audio module.

Each content type references the next as below:
Audio references the Album and Artist it belongs to (select list)
Album references the Artist it Belongs to (select list)
Artist doesn't contain any node reference fields

So to add an album node, one must first have an artist node to reference.
Then to add songs to an album you must have an album node to reference.

I believe that the best way to format the album pages is as a view:

  • Name: album_tracks
  • Description: Table of Track Info for album panels
  • URl: track-table (won't be used anyway)
  • View Type: Table View
  • Title: Track Table (overwritten later)
  • Pager: None
  • Provide Block: Yes
  • View Type: Table View
  • Nodes Per Block:100


  • Audio: Tag track
  • Node Title
  • Audio: Play count
  • Audio: Length
  • Audio: Player link/flash


  • Node Reference: Album (field_album_reference)
  • Default: Display All Values
  • Argument Code: $args[0] = arg(1);


  • Node:Published Equals:Yes
  • Node Type: Is One Of:Audio

Sort Criteria

  • Audio: Tag track
  • Order: Ascending

In the link I've given above I'm using the block we just created in a "node override panel".
This is used on every album page to separately bring in the album cover and artist reference.
More about this site at:

Hope this helps.

What is the player do

adrianmak's picture

What is the player do Daughtry and sony mplay used ?

Soundcloud Integration?

cookiesunshinex's picture

Has anybody used Sound Cloud with a Drupal site?

I would like to build a site that uses artist, song title, ratings of the songs, but host my audio files at Sound Cloud (

Any ideas of how best to do that?

They have an API here -

Would it be possible to create a custom CCK field type for sound cloud. I know there are custom CCK field types for Media (video - youtube, and images - flickr, and audio) so this must be possible.


Symetrik Design
Drupal Consulting

no player

whiteDiamonds's picture

I'm trying to build a catalog of all my music that's not on my computer. So, I don't need a player. Would this module help me?

Nice Information thanks -gusaus

skalak1111's picture

Ton of thanks - gusaus. Im trying to use these modules for my website.
Will let you know guys once it is done and sure i will be back for your suggestions if im facing any pblms.

Hi, WhiteDiamonds, you can achieve through "External Audio". If you don't need a player just don't install modules related to "Players".
This should help you. And let all know once it is done and myself also looking for your similar requirement.


Re: no player

lostcarpark's picture

You should be able to do everything you need with CCK and Views. If you don't need a player, then I don't think the other modules will help you.


Some 3 years later...

gusaus's picture

Some 3 years later this wiki and comment thread still provide some really good information. Curious to hear of any new approaches made possible with Drupal 7. Are CCK/Views/Node References still the preferred route?

Gus Austin

subscribed I would also be

joeuk31's picture


I would also be interested in any more recent methods of creating an album type playlist