View on GitHub

ickstream-docs

Public documentation about the ickStream Music Platform

SoundCloud

This SoundCloud content service basically supports:

The result from the getProtocolDescription method to indicate this would look like this:

[
   {
      "contextId" : "myMusic",
      "name" : "My Music",
      "supportedRequests" :
         [
            {
               "type" : "artist",
               "parameters" :
                  [
                     ["contextId","type"]
                  ]
            },
            {
               "type" : "track",
               "parameters" :
                  [
                     ["contextId","type"]
                  ]
            }
         ]
   },
   {
      "contextId" : "allMusic",
      "name" : "All Music",
      "supportedRequests" :
         [
            {
               "type" : "artist",
               "parameters" :
                  [
                     ["contextId","type"],
                     ["contextId","type","search"]
                  ]
            },
            {
               "type" : "track",
               "parameters" :
                  [
                     ["contextId","type","search"],
                     ["contextId","type","artistId"]
                  ]
            }
         ]
   },
   {
      "contextId" : "hotMusic",
      "name" : "Hot Music",
      "supportedRequests" :
         [
            {
               "type" : "track",
               "parameters" :
                  [
                     ["contextId","type"]
                  ]
            }
         ]
   }
]

Some things to note:

Rdio

This Rdio content service basically supports:

The result from the getProtocolDescription method to indicate this would look like this:

[
   {
      "contextId" : "myMusic",
      "name" : "My Music",
      "supportedRequests" :
         [
            {
               "type" : "artist",
               "parameters" :
                  [
                     ["contextId","type"]
                  ]
            },
            {
               "type" : "album",
               "parameters" :
                  [
                     ["contextId","type"],
                     ["contextId","type","artistId"]
                  ]
            },
            {
               "type" : "track",
               "parameters" :
                  [
                     ["contextId","type","albumId"]
                  ]
            }
         ]
   }
]

Some things to note:

Deezer

This Deezer content service basically supports:

The result from the getProtocolDescription method to indicate this would look like this:

[
   {
      "contextId" : "myMusic",
      "name" : "My Music",
      "supportedRequests" :
         [
            {
               "type" : "artist",
               "parameters" :
                  [
                     ["contextId","type"]
                  ]
            },
            {
               "type" : "album",
               "parameters" :
                  [
                     ["contextId","type"]
                  ]
            },
            {
               "type" : "track",
               "parameters" :
                  [
                     ["contextId","type"]
                  ]
            }
         ]
   },
   {
      "contextId" : "allMusic",
      "name" : "All Music",
      "supportedRequests" :
         [
            {
               "type" : "artist",
               "parameters" :
                  [
                     ["contextId","type","search"]
                  ]
            },
            {
               "type" : "album",
               "parameters" :
                  [
                     ["contextId","type","search"],
                     ["contextId","type","artistId"]
                  ]
            },
            {
               "type" : "track",
               "parameters" :
                  [
                     ["contextId","type","search"],
                     ["contextId","type","albumId"]
                  ]
            }
         ]
   },
   {
      "contextId" : "allCharts",
      "name" : "Charts",
      "supportedRequests" :
         [
            {
               "type" : "category",
               "parameters" :
                  [
                     ["contextId","type"]
                  ]
            },
            {
               "type" : "artist",
               "parameters" :
                  [
                     ["contextId","type","categoryId"]
                  ]
            },
            {
               "type" : "album",
               "parameters" :
                  [
                     ["contextId","type","categoryId"]
                  ]
            }
         ]
   }
]

Some things to note:

RadioTime

This RadioTime content service basically supports:

The result from the getProtocolDescription method to indicate this would look like this:

[
   {
      "contextId" : "allRadio",
      "name" : "Internet Radio",
      "supportedRequests" :
         [
            {
               "type" : "stream",
               "parameters" :
                  [
                     ["contextId","type","menuId"]
                  ]
            },
            {
               "type" : "menu",
               "parameters" :
                  [
                     ["contextId","type"],
                     ["contextId","type","menuId"]
                  ]
            },
            {
               "parameters" :
                  [
                     ["contextId","menuId"]
                  ]
            }
         ]
   }
]

Some things to note:

One of the supportedRequests entries doesn’t specify a type attribute, this means that either type=stream or type=menu objects will be returned if issuing a request to findItems like:

{
    "jsonrpc": 2.0,
    "id": 1,
    "method": "findItems",
    "params": {
         "menuId": "radiotime:menu:id=r100772"
    }
}

In this case, the controller have to be aware that it needs to look at the “type” attribute in the items returned to detect which kind of objects it is.

For other content services issuing a request with type=track means that all matching tracks will be returned even if the request was issued several levels above. For “type=menu” this isn’t the case, type=menu will always just return the direct child items.

Category:Content Access Protocol