Playlists

Playlist record format.

{
    "_id": "id_of_this_document", # internal to CouchDB
    "_rev": "revision_for_this_document", #internal to CouchDB
    "record_type": "http://www.freedesktop.org/wiki/Specifications/desktopcouch/playlist",
    "record_type_version": "1.0",
    "name": "<playlist name>",
    "u1_song_id_list": [list, of, song, ids],
    "application_annotations": {
        "Ubuntu One": {
            ...stuff specific to applications, nobody should rely on these...
        }
    }
}

Note: for Ubuntu One Music playlists, a song_id is the nodekey of the file in Ubuntu One. playlist_name is a user-displayable name for a playlist.


Says Chad, """Song IDs should be changed to be independent of some other index. It could be exact file names or a well-defined hash of the contents of a canonical version of the file. I think file_length_in_base10_ascii+SHA224_as_hex of the file conntents is okay. To get something Ubuntu One stores internally, we should add a lookup table in our application_annotations.

     * "application_annotations": { 
                 * "Ubuntu One": { 
                                * id-map: { 
                                               * "d5d8b9cbfdce7b1691a2528e0ffed0b4e4f7b63ab71bdba4ab44c083": "12345", "3ab97c9a01e238185933126951046f289593159d83d4d64cc11382dc": "2345678", } 
                    * } } 

"""

Says Martin, Done.