Skip to content


Subversion checkout URL

You can clone with
Download ZIP

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also compare across forks.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also compare across forks.
Commits on Mar 12, 2012
@rjp Convert published Spotify playlists into XSPF XML nonsense for andym f153338
Commits on May 16, 2012
@rjp Different approach to downloading playlists
Handing everything off to despotify-gateway seems more reliable
Commits on May 17, 2012
@rjp Lots of tidying up and handling errors
Stolen id2uri from lib/despotify.c for convert track IDs to spotify URIs
@rjp Shuffle things around, write out playlists as we find them
Try and create the real playlist link in the XSPF
TODO figure out why id2uri doesn't work for playlist ids
@andym andym use the ISRC as the track identifier in XSPF 1b2baa7
@andym andym playlist license must be a URI 4b458fd
@andym andym track/location must be a URI 51950c7
@andym andym playlist/info should be 'a web page to find out more about this playl…
…ist. Likely to be homepage of the author' so point that straight at the spotify user. Add a location element, which is a URI pointing at the playlist
@rjp id2uri sometimes uses less than 22 characters which leaves prefixed s…

remove them to avoid breakage later
@rjp Guard against missing bits of information in the XSPF construction 8ac5439
@rjp Even though playlists have 34 character identifiers, the URIs are con…
…structed from only the first 32

@rjp Put the correct username for the playlist into the XSPF output dc08fb9
@rjp Treat spotify:blah links as "real" tids and handle them in load_track…
… instead of load_playlist

If tid is a spotify:local URI then fudge up a track record based on the artist/album/title data we have

We need the URI module for unescaping the URIs
@rjp Remember which user originated this playlist f06f7dc
@rjp Sometimes we have a partial URI, sometimes we have a full URI, someti…
@rjp I am an idiot. Fix up the accesses to XSPF::Track 75782d7
@andym andym Grab the track duration (in ms). Hopefully local tracks have this... b31d4d2
Commits on May 18, 2012
@rjp Move outputdir into the object as an attribute df57fa8
@rjp Distinguish between "load all playlists" and "load these playlists"
TODO add some kind of "load playlists matching /xyz/" option
@rjp Merge remote-tracking branch 'origin/master' e59593e
@rjp Local tracks kinda have a duration in seconds tacked on
TODO no idea if this is a definite feature
@rjp Fix dumb "=" vs "=>" confusion caused by illness-induced braindeath 75c580b
@rjp Minor tidyups 2ef760f
@rjp Retrieve the UPC using the Spotify HTTP Metadata API for albums
If we find a UPC, smoosh it into the XSPF Track Identifier (because the Ruby XSPF library is broken)
Cache album metadata per session to avoid abuse
TODO stick the returned XML into an SDBM store for intra-session caching
@rjp Merge branch 'spotify-cache-album-upc' eb45442
@andym andym playlists are supposed to have an identifier c22367b
@andym andym Merge branch 'master' of 48a1cad
@rjp Trap errors coming from the API by returning nil 5ed3266
@andym andym track identifier can't have any spaces in it 60c5a1f
@andym andym Merge branch 'master' of 4213ca4
@rjp Work around annoying Fixnum vs String confusion with local tracks (in…
… two ways)
@rjp Merge remote-tracking branch 'origin/master' 0b6c3bc
@rjp Join the identifier parts with semicolons for easier splitting later 1a22ede
@rjp Heisenbug is making track[:uri] nil - must be from id2uri but how?
Work around it by protecting in two places by adding magic markers
@rjp Refactor id2uri into a call to baseconvert
This gives us uri2id for free if we need it later
Warn if we see a trackid matching spotify:track:.*
Commits on May 19, 2012
@rjp Use Nokogiri::XML::Builder to fashion our XSPF output instead of the …
…xspf gem

Removes a dependency, gives us correct outputting of <identifier> and <meta> tags
FIXME should roll that out and into a new xspf handling library for the sake of sanity
Commits on May 21, 2012
@rjp Add artist id to the track hash 0755e05
@rjp Anything in :album_meta :id will be added as an identifier URI of the…
… form "key:value"

Move the trackNum node output to group all identifier tags together
@rjp If we have a "real" track, add Spotify links to artist + album and id…
…s for everything as meta tags
@rjp Compartmentalise 494995a
@rjp Merge remote-tracking branch 'rs/master' 23db623
Something went wrong with that request. Please try again.