Eat
Chocolate
Hear Here

The power of puids

One of the more powerful, less known services provided by MusicIP is the humble puid. The name stands for portable unique identifier. Here’s a sample one:

3567d380-f43a-4c1f-a5de-694150b093ac

It doesn’t look like much, does it? In fact, it looks just like an old-fashioned guid. The real value, however, comes from how puids are generated, and how they can be used.

Let’s start with the UID: unique identifier. For any given recording, the puid is a unique number. This means you can use a puid to talk about songs - like “Hey, I really dig 3567d380-f43a-4c1f-a5de-694150b093ac”. “Naw, I like 6afaf934-f2ee-d434-a477-57c804c9a6be much better…” This allows you can be very precise talking about a song. The puid includes all the necessary info to identify the exact song. Do you mean the initial release? the greatest hits remaster? the live version from 2003? The puid is that precise. Of course, you’re probably not going to use puids in every day conversations, any more than you use Social Security numbers to identify different people name John Smith. But when you’re exchanging data with programs, it’s the best way to go.

What about our P: portable? Where does this come in? Because the MusicDNS service allows any application access to the same set of identifiers, you can use the same id between different programs built on MusicDNS. Finally your ratings, play histories, and so forth should be able to move freely between services without sloppy metadata matching.

Also, the core fingerprinting code, although patented, is available as open source (under two different licenses, in fact) - this allows the code to be used in pretty much any free or commercial setting with a minimum of licensing issues.

Not bad, you might be thinking, but now that I have 3567d380-f43a-4c1f-a5de-694150b093ac, how am I supposed to know which song it represents? That’s where the MusicDNS service comes in - anyone can get a free service key, and lookup the relevant metadata for a given puid as easily as generating a URL in a browser. Full details of the protocol are available online. Example output might look like this:

<?xml version="1.0" encoding="UTF-8"?>
<metadata xmlns="http://musicbrainz.org/ns/mmd/1/">
<track>
<title>YYZ</title>
<artist>
<name>Rush</name>
</artist>
<puid-list>
<puid id="3567d380-f43a-4c1f-a5de-694150b093ac"/>
</puid-list>
</track>
</metadata>

Some extra things you might want to know about puids: Fingerprinting is in some ways as much art as science. While the concept of a unique identifer per master recording is easy enough to grasp, many people get confused about different cases - if you reencode the file at a different bitrate, does the puid change? (generally, no). If you reencode an MP3 as an Ogg file, does the puid change? (generally, no). If you record a track from the radio with some static, and part of the recording is truncated, does the puid change? (generally, yes). If a track is remastered, does the puid change? (it depends on the nature of the remastering). Because we want puids to be unique, we err on the side of assigning different id’s when the think the file might have changed. We’re still looking into ways to improve the MusicDNS service, let us know what we can do.

Another cool thing you can do with puids today is use them to look up rich metadata from MusicBrainz. This can point to cover tracks, band members, and all sorts of interesting relationships.

In order to make it even easier to find puids, we’ve put together a standalone program called genpuid - this lets you generate a puid just by passing a filename. You can use this in your own applications if you don’t want to link in the open source MusicDNS library. We’re in the middle of beta testing right now, but we hope to release it fairly soon.

5 Responses to “The power of puids”

  1. Rachel Says:

    We should order 10 of those hats and the first 5 people (notice i saved some for us) who do something…(like post their favorite mixer playlist, the seed song, and why?) get one. or something like that.

  2. Kelly Says:

    Nah, Rach, I’m hopping over to CafePress to make my own PUID hat right now. :-)

  3. Rachel Says:

    even better! go for it, take a pic!

  4. Jon Åslund Says:

    PUID - ett unikt id för musik

    Apropå kepsar som låter, Wendell Hicken från MusicIP förklarar lite om deras tjänst MusicDNS och PUID. Kortfattat kan man säga att PUID är för låtar som ISBN är för böcker, fast lite mer avancerad.

    PUID är en unik identifierare för ett s…

  5. Hear Here » Blog Archive » Would you like a little free with that music? Says:

    […] The grab part means we’ll crawl the URL you tell us about for your music. When we identify your music we’re checking to see if we already have information on it stored in our database (which grows each and every day). If we don’t know about it, this is where a sub-step comes in - we analyze it. Hundreds of attributes (but just minutes) later, your song(s) are fingerprinted and assigned a portable unique ID (you can read more about PUIDs here). […]

Leave a Reply

You must be logged in to post a comment.