Copyright © 2016. This document is available under theW3C Document License. See theW3C Intellectual Rights Notice and Legal Disclaimers for additional information.
This section describes the status of this document at the time of its publication. Other documents may supersede this document. A list of currentW3C publications can be found in theW3C technical reports index at https://www.w3.org/TR/.
This is required.
By publishing this document,W3C acknowledges that theSubmitting Members have made a formal Submission request toW3C for discussion. Publication of this document byW3C indicates no endorsement of its content byW3C, nor thatW3C has, is, or will be allocating any resources to the issues addressed by it. This document is not the product of a charteredW3C group, but is published as potential input to theW3C Process. AW3C Team Comment has been published in conjunction with this Member Submission. Publication of acknowledged Member Submissions at theW3C site is one of the benefits ofW3C Membership. Please consult the requirements associated with Member Submissions ofsection 3.3 of theW3C Patent Policy. Please consult the completelist of acknowledgedW3C Member Submissions.
by Dr. Patrick Bartsch 2013-2016
version: v1.6.1-W3C
This repo holds all media library (tracks, albums, etc.) related resources
version: 1.6.1-W3C
Repository:
Dr. Patrick Bartsch <patrick.bartsch@volkswagen.de>
This endpoint provides access to the media sources available in the media library.
name | description | type | format | unit(s) | value(s) |
---|---|---|---|---|---|
id | identifier | string | uuid | - | |
name | source name | string | - | ||
uri | object uri | string | uri | - | |
rootfolder | the sources root folder, only set if medium is plugged in, undefined otherwise | object | /medialibrary/folders/folderObject |
Note: Use a http GET request on /medialibrary/sources/ to retrieve a list of available elements of typemediaLibrarySourceObject
Subscribe to /medialibrary/sources/ to receive updates for element creations or removals from the collection.
GET/medialibrary/sources/ HTTP/1.1Host:127.0.0.1:9000Connection:keep-aliveAccept:application/jsonUser-Agent:Chrome/34.0.1847.137 Safari/537.36Accept-Encoding:gzip,deflateAccept-Language:en-US,en;q=0.8,de;q=0.6
=>
HTTP/1.1200 OKVary:Accept-EncodingContent-Type:application/json; charset=utf-8ETag:"-32550834"Content-Encoding:gzipDate:Tue, 07 Apr 1980 00:00:00 GMTConnection:keep-aliveTransfer-Encoding:chunked{ "status":"ok", "data":[ { "id":"3901a278-ba17-44d6-9aef-f7ca67c04840", "name":"lorem ipsum", "uri":"/medialibrary/sources/3901a278-ba17-44d6-9aef-f7ca67c04840"}, { "id":"8901870-b526-11e3-a5e2-0800200c9a66", "name":"dolor sit", "uri":"/medialibrary/sources/8901870-b526-11e3-a5e2-0800200c9a66"} ]}
Note:
Use a http GET request on /medialibrary/sources/:uuid to retrieve a particularmediaLibrarySourceObject
Subscribe to /medialibrary/sources/:uuid to receive updates on element level changes.
GET/medialibrary/sources/3901a278-ba17-44d6-9aef-f7ca67c04840 HTTP/1.1Host:127.0.0.1:9000Connection:keep-aliveAccept:application/jsonUser-Agent:Chrome/34.0.1847.137 Safari/537.36Accept-Encoding:gzip,deflateAccept-Language:en-US,en;q=0.8,de;q=0.6
HTTP/1.1200 OKVary:Accept-EncodingContent-Type:application/json; charset=utf-8ETag:"-32550834"Content-Encoding:gzipDate:Tue, 07 Apr 1980 00:00:00 GMTConnection:keep-aliveTransfer-Encoding:chunked{ "status":"ok", "data":[ { "id":"3901a278-ba17-44d6-9aef-f7ca67c04840", "name":"lorem ipsum", "uri":"/medialibrary/sources/3901a278-ba17-44d6-9aef-f7ca67c04840"} ]}
The following events may be fired by client interaction or system side:
Provides a list of all tracks available in the system, might contain connected devices content as well.
name | description | type | format | unit(s) | value(s) |
---|---|---|---|---|---|
id | identifier | string | uuid | - | |
name | Track title | string | - | ||
uri | object uri | string | uri | - | |
image | cover art | string | uri | - | |
genres | track genre | array | /medialibrary/genres/genreObject | ||
folders | actual folder the item resides in | array | /medialibrary/folders/folderObject | ||
rating | owner rating | integer | [-inf..inf] | ||
albums | albums containing this track | array | /medialibrary/albums/albumObject | ||
artists | track artists | array | /medialibrary/artists/artistObject | ||
date | release date | string | date-time | - | |
disc | disc of album | integer | [-inf..inf] | ||
duration | track duration | integer | s | [-inf..inf] | |
source | Source of the file | object | /medialibrary/sources/mediaLibrarySourceObject |
Note: Use a http GET request on /medialibrary/tracks/ to retrieve a list of available elements of typetrackObject
Subscribe to /medialibrary/tracks/ to receive updates for element creations or removals from the collection.
GET/medialibrary/tracks/ HTTP/1.1Host:127.0.0.1:9000Connection:keep-aliveAccept:application/jsonUser-Agent:Chrome/34.0.1847.137 Safari/537.36Accept-Encoding:gzip,deflateAccept-Language:en-US,en;q=0.8,de;q=0.6
=>
HTTP/1.1200 OKVary:Accept-EncodingContent-Type:application/json; charset=utf-8ETag:"-32550834"Content-Encoding:gzipDate:Tue, 07 Apr 1980 00:00:00 GMTConnection:keep-aliveTransfer-Encoding:chunked{ "status":"ok", "data":[ { "id":"3901a278-ba17-44d6-9aef-f7ca67c04840", "name":"lorem ipsum", "uri":"/medialibrary/tracks/3901a278-ba17-44d6-9aef-f7ca67c04840"}, { "id":"8901870-b526-11e3-a5e2-0800200c9a66", "name":"dolor sit", "uri":"/medialibrary/tracks/8901870-b526-11e3-a5e2-0800200c9a66"} ]}
Note:
Use a http GET request on /medialibrary/tracks/:uuid to retrieve a particulartrackObject
Subscribe to /medialibrary/tracks/:uuid to receive updates on element level changes.
GET/medialibrary/tracks/3901a278-ba17-44d6-9aef-f7ca67c04840 HTTP/1.1Host:127.0.0.1:9000Connection:keep-aliveAccept:application/jsonUser-Agent:Chrome/34.0.1847.137 Safari/537.36Accept-Encoding:gzip,deflateAccept-Language:en-US,en;q=0.8,de;q=0.6
HTTP/1.1200 OKVary:Accept-EncodingContent-Type:application/json; charset=utf-8ETag:"-32550834"Content-Encoding:gzipDate:Tue, 07 Apr 1980 00:00:00 GMTConnection:keep-aliveTransfer-Encoding:chunked{ "status":"ok", "data":[ { "id":"3901a278-ba17-44d6-9aef-f7ca67c04840", "name":"lorem ipsum", "uri":"/medialibrary/tracks/3901a278-ba17-44d6-9aef-f7ca67c04840"} ]}
The following events may be fired by client interaction or system side:
Provides a list of all albums available in the system, might contain connected devices content as well.
name | description | type | format | unit(s) | value(s) |
---|---|---|---|---|---|
id | Identifier | string | uuid | - | |
name | album title | string | - | ||
uri | object uri | string | uri | - | |
genres | album genre | array | /medialibrary/genres/genreObject | ||
image | album art | string | uri | - | |
rating | album rating | integer | [-inf..5] | ||
artists | album artist | array | /medialibrary/artists/artistObject | ||
date | release date | string | date-time | - | |
duration | total album duration | integer | sec | [-inf..inf] | |
tracks | album tracks | array | /medialibrary/tracks/trackObject |
Note: Use a http GET request on /medialibrary/albums/ to retrieve a list of available elements of typealbumObject
Subscribe to /medialibrary/albums/ to receive updates for element creations or removals from the collection.
GET/medialibrary/albums/ HTTP/1.1Host:127.0.0.1:9000Connection:keep-aliveAccept:application/jsonUser-Agent:Chrome/34.0.1847.137 Safari/537.36Accept-Encoding:gzip,deflateAccept-Language:en-US,en;q=0.8,de;q=0.6
=>
HTTP/1.1200 OKVary:Accept-EncodingContent-Type:application/json; charset=utf-8ETag:"-32550834"Content-Encoding:gzipDate:Tue, 07 Apr 1980 00:00:00 GMTConnection:keep-aliveTransfer-Encoding:chunked{ "status":"ok", "data":[ { "id":"3901a278-ba17-44d6-9aef-f7ca67c04840", "name":"lorem ipsum", "uri":"/medialibrary/albums/3901a278-ba17-44d6-9aef-f7ca67c04840"}, { "id":"8901870-b526-11e3-a5e2-0800200c9a66", "name":"dolor sit", "uri":"/medialibrary/albums/8901870-b526-11e3-a5e2-0800200c9a66"} ]}
Note:
Use a http GET request on /medialibrary/albums/:uuid to retrieve a particularalbumObject
Subscribe to /medialibrary/albums/:uuid to receive updates on element level changes.
GET/medialibrary/albums/3901a278-ba17-44d6-9aef-f7ca67c04840 HTTP/1.1Host:127.0.0.1:9000Connection:keep-aliveAccept:application/jsonUser-Agent:Chrome/34.0.1847.137 Safari/537.36Accept-Encoding:gzip,deflateAccept-Language:en-US,en;q=0.8,de;q=0.6
HTTP/1.1200 OKVary:Accept-EncodingContent-Type:application/json; charset=utf-8ETag:"-32550834"Content-Encoding:gzipDate:Tue, 07 Apr 1980 00:00:00 GMTConnection:keep-aliveTransfer-Encoding:chunked{ "status":"ok", "data":[ { "id":"3901a278-ba17-44d6-9aef-f7ca67c04840", "name":"lorem ipsum", "uri":"/medialibrary/albums/3901a278-ba17-44d6-9aef-f7ca67c04840"} ]}
The following events may be fired by client interaction or system side:
Provides a list of all known artists, might contain connected devices content as well.
name | description | type | format | unit(s) | value(s) |
---|---|---|---|---|---|
id | identifier | string | uuid | - | |
name | artist name | string | - | ||
uri | object uri | string | uri | - | |
genres | artist genre | array | /medialibrary/genres/genreObject | ||
image | artist art | string | uri | - | |
rating | owner rating | integer | [-inf..inf] | ||
albums | artist albums | array | /medialibrary/albums/albumObject | ||
tracks | artists tracks | array | /medialibrary/tracks/trackObject |
Note: Use a http GET request on /medialibrary/artists/ to retrieve a list of available elements of typeartistObject
Subscribe to /medialibrary/artists/ to receive updates for element creations or removals from the collection.
GET/medialibrary/artists/ HTTP/1.1Host:127.0.0.1:9000Connection:keep-aliveAccept:application/jsonUser-Agent:Chrome/34.0.1847.137 Safari/537.36Accept-Encoding:gzip,deflateAccept-Language:en-US,en;q=0.8,de;q=0.6
=>
HTTP/1.1200 OKVary:Accept-EncodingContent-Type:application/json; charset=utf-8ETag:"-32550834"Content-Encoding:gzipDate:Tue, 07 Apr 1980 00:00:00 GMTConnection:keep-aliveTransfer-Encoding:chunked{ "status":"ok", "data":[ { "id":"3901a278-ba17-44d6-9aef-f7ca67c04840", "name":"lorem ipsum", "uri":"/medialibrary/artists/3901a278-ba17-44d6-9aef-f7ca67c04840"}, { "id":"8901870-b526-11e3-a5e2-0800200c9a66", "name":"dolor sit", "uri":"/medialibrary/artists/8901870-b526-11e3-a5e2-0800200c9a66"} ]}
Note:
Use a http GET request on /medialibrary/artists/:uuid to retrieve a particularartistObject
Subscribe to /medialibrary/artists/:uuid to receive updates on element level changes.
GET/medialibrary/artists/3901a278-ba17-44d6-9aef-f7ca67c04840 HTTP/1.1Host:127.0.0.1:9000Connection:keep-aliveAccept:application/jsonUser-Agent:Chrome/34.0.1847.137 Safari/537.36Accept-Encoding:gzip,deflateAccept-Language:en-US,en;q=0.8,de;q=0.6
HTTP/1.1200 OKVary:Accept-EncodingContent-Type:application/json; charset=utf-8ETag:"-32550834"Content-Encoding:gzipDate:Tue, 07 Apr 1980 00:00:00 GMTConnection:keep-aliveTransfer-Encoding:chunked{ "status":"ok", "data":[ { "id":"3901a278-ba17-44d6-9aef-f7ca67c04840", "name":"lorem ipsum", "uri":"/medialibrary/artists/3901a278-ba17-44d6-9aef-f7ca67c04840"} ]}
The following events may be fired by client interaction or system side:
Provides an aggregated view over all known genres an the media related to it.
name | description | type | format | unit(s) | value(s) |
---|---|---|---|---|---|
id | identifier | string | uuid | - | |
name | genre name | string | - | ||
uri | object uri | string | uri | - | |
rating | owner rating | integer | [-inf..inf] | ||
tracks | artists tracks | array | /medialibrary/tracks/trackObject |
Note: Use a http GET request on /medialibrary/genres/ to retrieve a list of available elements of typegenreObject
Subscribe to /medialibrary/genres/ to receive updates for element creations or removals from the collection.
GET/medialibrary/genres/ HTTP/1.1Host:127.0.0.1:9000Connection:keep-aliveAccept:application/jsonUser-Agent:Chrome/34.0.1847.137 Safari/537.36Accept-Encoding:gzip,deflateAccept-Language:en-US,en;q=0.8,de;q=0.6
=>
HTTP/1.1200 OKVary:Accept-EncodingContent-Type:application/json; charset=utf-8ETag:"-32550834"Content-Encoding:gzipDate:Tue, 07 Apr 1980 00:00:00 GMTConnection:keep-aliveTransfer-Encoding:chunked{ "status":"ok", "data":[ { "id":"3901a278-ba17-44d6-9aef-f7ca67c04840", "name":"lorem ipsum", "uri":"/medialibrary/genres/3901a278-ba17-44d6-9aef-f7ca67c04840"}, { "id":"8901870-b526-11e3-a5e2-0800200c9a66", "name":"dolor sit", "uri":"/medialibrary/genres/8901870-b526-11e3-a5e2-0800200c9a66"} ]}
Note:
Use a http GET request on /medialibrary/genres/:uuid to retrieve a particulargenreObject
Subscribe to /medialibrary/genres/:uuid to receive updates on element level changes.
GET/medialibrary/genres/3901a278-ba17-44d6-9aef-f7ca67c04840 HTTP/1.1Host:127.0.0.1:9000Connection:keep-aliveAccept:application/jsonUser-Agent:Chrome/34.0.1847.137 Safari/537.36Accept-Encoding:gzip,deflateAccept-Language:en-US,en;q=0.8,de;q=0.6
HTTP/1.1200 OKVary:Accept-EncodingContent-Type:application/json; charset=utf-8ETag:"-32550834"Content-Encoding:gzipDate:Tue, 07 Apr 1980 00:00:00 GMTConnection:keep-aliveTransfer-Encoding:chunked{ "status":"ok", "data":[ { "id":"3901a278-ba17-44d6-9aef-f7ca67c04840", "name":"lorem ipsum", "uri":"/medialibrary/genres/3901a278-ba17-44d6-9aef-f7ca67c04840"} ]}
This endpoint will not send any events. Therefor you can not register for them.
Provides a list of all playlists available in the system, might contain connected devices content as well.
name | description | type | format | unit(s) | value(s) |
---|---|---|---|---|---|
id | identifier | string | uuid | - | |
name | playlist name | string | - | ||
uri | object uri | string | uri | - | |
genres | playlist genre | array | /medialibrary/genres/genreObject | ||
folders | actual folder the item resides in | object | /medialibrary/folders/folderObject | ||
image | playlist art | string | uri | - | |
rating | owner rating | integer | [-inf..inf] | ||
artists | playlist artists | array | /medialibrary/artists/artistObject | ||
date | last modification | string | date-time | - | |
duration | total duration | integer | s | [-inf..inf] | |
tracks | playlist tracks | array | /medialibrary/tracks/trackObject |
Note: Use a http POST request on /medialibrary/playlists/ to create a new element of typeplaylistObject
Subscribe to /medialibrary/playlists/ to receive updates for element creations or removals from the collection.
The following parameters can be used with the request and subscriptions:
name | type | format | mandatory |
---|---|---|---|
name | string | yes |
POST/medialibrary/playlists/ HTTP/1.1Host:127.0.0.1:9000Connection:keep-aliveAccept:application/jsonUser-Agent:Chrome/34.0.1847.137 Safari/537.36Accept-Encoding:gzip,deflateAccept-Language:en-US,en;q=0.8,de;q=0.6{ "viwi":"rockz.."}
=>
HTTP/1.1201 CreatedVary:Accept-EncodingContent-Type:application/json; charset=utf-8ETag:"-32550834"Content-Encoding:gzipDate:Tue, 07 Apr 1980 00:00:00 GMTConnection:keep-aliveTransfer-Encoding:chunkedLocation:/medialibrary/playlists/3901a278-ba17-44d6-9aef-f7ca67c04840{ "status":"ok"}
Note: Use a http GET request on /medialibrary/playlists/ to retrieve a list of available elements of typeplaylistObject
Subscribe to /medialibrary/playlists/ to receive updates for element creations or removals from the collection.
GET/medialibrary/playlists/ HTTP/1.1Host:127.0.0.1:9000Connection:keep-aliveAccept:application/jsonUser-Agent:Chrome/34.0.1847.137 Safari/537.36Accept-Encoding:gzip,deflateAccept-Language:en-US,en;q=0.8,de;q=0.6
=>
HTTP/1.1200 OKVary:Accept-EncodingContent-Type:application/json; charset=utf-8ETag:"-32550834"Content-Encoding:gzipDate:Tue, 07 Apr 1980 00:00:00 GMTConnection:keep-aliveTransfer-Encoding:chunked{ "status":"ok", "data":[ { "id":"3901a278-ba17-44d6-9aef-f7ca67c04840", "name":"lorem ipsum", "uri":"/medialibrary/playlists/3901a278-ba17-44d6-9aef-f7ca67c04840"}, { "id":"8901870-b526-11e3-a5e2-0800200c9a66", "name":"dolor sit", "uri":"/medialibrary/playlists/8901870-b526-11e3-a5e2-0800200c9a66"} ]}
Note:
Use a http POST request on /medialibrary/playlists/:uuid to update a particularplaylistObject
Subscribe to /medialibrary/playlists/:uuid to receive updates on element level changes.
The following parameters can be used with the request and subscriptions:
name | type | mandatory |
---|---|---|
tracks | array | no |
rating | integer | no |
image | string | no |
POST/medialibrary/playlists/3901a278-ba17-44d6-9aef-f7ca67c04840 HTTP/1.1Host:127.0.0.1:9000Connection:keep-aliveAccept:application/jsonUser-Agent:Chrome/34.0.1847.137 Safari/537.36Accept-Encoding:gzip,deflateAccept-Language:en-US,en;q=0.8,de;q=0.6{ "viwi":"rockz.."}
HTTP/1.1201 CreatedVary:Accept-EncodingContent-Type:application/json; charset=utf-8ETag:"-32550834"Content-Encoding:gzipDate:Tue, 07 Apr 1980 00:00:00 GMTConnection:keep-aliveTransfer-Encoding:chunked{ "status":"ok"}
Note:
Use a http GET request on /medialibrary/playlists/:uuid to retrieve a particularplaylistObject
Subscribe to /medialibrary/playlists/:uuid to receive updates on element level changes.
GET/medialibrary/playlists/3901a278-ba17-44d6-9aef-f7ca67c04840 HTTP/1.1Host:127.0.0.1:9000Connection:keep-aliveAccept:application/jsonUser-Agent:Chrome/34.0.1847.137 Safari/537.36Accept-Encoding:gzip,deflateAccept-Language:en-US,en;q=0.8,de;q=0.6
HTTP/1.1200 OKVary:Accept-EncodingContent-Type:application/json; charset=utf-8ETag:"-32550834"Content-Encoding:gzipDate:Tue, 07 Apr 1980 00:00:00 GMTConnection:keep-aliveTransfer-Encoding:chunked{ "status":"ok", "data":[ { "id":"3901a278-ba17-44d6-9aef-f7ca67c04840", "name":"lorem ipsum", "uri":"/medialibrary/playlists/3901a278-ba17-44d6-9aef-f7ca67c04840"} ]}
Note:
Use a http DELETE request on /medialibrary/playlists/:uuid to update a particularplaylistObject
Subscribe to /medialibrary/playlists/:uuid to receive updates on element level changes.
DELETE/medialibrary/playlists/3901a278-ba17-44d6-9aef-f7ca67c04840 HTTP/1.1Host:127.0.0.1:9000Connection:keep-aliveAccept:application/jsonUser-Agent:Chrome/34.0.1847.137 Safari/537.36Accept-Encoding:gzip,deflateAccept-Language:en-US,en;q=0.8,de;q=0.6
HTTP/1.1201 CreatedVary:Accept-EncodingContent-Type:application/json; charset=utf-8ETag:"-32550834"Content-Encoding:gzipDate:Tue, 07 Apr 1980 00:00:00 GMTConnection:keep-aliveTransfer-Encoding:chunked{ "status":"ok"}
This endpoint will not send any events. Therefor you can not register for them.
Provides access to the media in folder layout, might contain contet of connected devices as well.
name | description | type | format | unit(s) | value(s) |
---|---|---|---|---|---|
id | identifier | string | uuid | - | |
name | Folder name | string | - | ||
uri | object uri | string | uri | - | |
tracks | track files in folder | array | /medialibrary/tracks/trackObject | ||
playlists | playlist files in folder | array | /medialibrary/playlists/playlistObject | ||
videos | video files in folder | array | /medialibrary/videos/videoObject | ||
pictures | pictures files in folder | array | /medialibrary/pictures/pictureObject | ||
folders | folders in folder | array | /medialibrary/folders/folderObject | ||
abspath | absolute path to folder | string | - | ||
parent | parent folder | object | /medialibrary/folders/folderObject |
Note: Use a http GET request on /medialibrary/folders/ to retrieve a list of available elements of typefolderObject
Subscribe to /medialibrary/folders/ to receive updates for element creations or removals from the collection.
GET/medialibrary/folders/ HTTP/1.1Host:127.0.0.1:9000Connection:keep-aliveAccept:application/jsonUser-Agent:Chrome/34.0.1847.137 Safari/537.36Accept-Encoding:gzip,deflateAccept-Language:en-US,en;q=0.8,de;q=0.6
=>
HTTP/1.1200 OKVary:Accept-EncodingContent-Type:application/json; charset=utf-8ETag:"-32550834"Content-Encoding:gzipDate:Tue, 07 Apr 1980 00:00:00 GMTConnection:keep-aliveTransfer-Encoding:chunked{ "status":"ok", "data":[ { "id":"3901a278-ba17-44d6-9aef-f7ca67c04840", "name":"lorem ipsum", "uri":"/medialibrary/folders/3901a278-ba17-44d6-9aef-f7ca67c04840"}, { "id":"8901870-b526-11e3-a5e2-0800200c9a66", "name":"dolor sit", "uri":"/medialibrary/folders/8901870-b526-11e3-a5e2-0800200c9a66"} ]}
Note:
Use a http GET request on /medialibrary/folders/:uuid to retrieve a particularfolderObject
Subscribe to /medialibrary/folders/:uuid to receive updates on element level changes.
GET/medialibrary/folders/3901a278-ba17-44d6-9aef-f7ca67c04840 HTTP/1.1Host:127.0.0.1:9000Connection:keep-aliveAccept:application/jsonUser-Agent:Chrome/34.0.1847.137 Safari/537.36Accept-Encoding:gzip,deflateAccept-Language:en-US,en;q=0.8,de;q=0.6
HTTP/1.1200 OKVary:Accept-EncodingContent-Type:application/json; charset=utf-8ETag:"-32550834"Content-Encoding:gzipDate:Tue, 07 Apr 1980 00:00:00 GMTConnection:keep-aliveTransfer-Encoding:chunked{ "status":"ok", "data":[ { "id":"3901a278-ba17-44d6-9aef-f7ca67c04840", "name":"lorem ipsum", "uri":"/medialibrary/folders/3901a278-ba17-44d6-9aef-f7ca67c04840"} ]}
The following events may be fired by client interaction or system side: