> So are we storing the entire Playlist object for every playlist in the user's history? If so, are we doing this so all the necessary shit to play a playlist is cached? So a user that has 16 history records has 16 copies of the Playlist object?

Almost. Since the localStorage object only stores strings, the objects are converted to JSON, which strips out all the functions since it doesn't know how to serialize them. This is also why we use jQuery.extend in loadPlaylist.

But this isn't as bad as it seems - each object seems to take ~10k letters, which for 16 playlists certainly wouldn't exceed 500kb. And since localStorage is client-side only this shouldn't have any negative performance implications.