2 "JSONRPC.Introspect": {
4 "description": "Enumerates all actions and descriptions",
5 "transport": "Response",
6 "permission": "ReadData",
8 { "name": "getdescriptions", "type": "boolean", "default": true },
9 { "name": "getmetadata", "type": "boolean", "default": false },
10 { "name": "filterbytransport", "type": "boolean", "default": true },
11 { "name": "filter", "type": "object",
13 "id": { "type": "string", "required": true, "description": "Name of a namespace, method or type" },
14 "type": { "type": "string", "required": true, "enum": [ "method", "namespace", "type", "notification" ], "description": "Type of the given name" },
15 "getreferences": { "type": "boolean", "default": true, "description": "Whether or not to print the schema for referenced types" }
23 "description": "Retrieve the jsonrpc protocol version",
24 "transport": "Response",
25 "permission": "ReadData",
29 "JSONRPC.Permission": {
31 "description": "Retrieve the clients permissions",
32 "transport": "Response",
33 "permission": "ReadData",
38 "ReadData": { "type": "boolean", "required": true },
39 "ControlPlayback": { "type": "boolean", "required": true },
40 "ControlNotify": { "type": "boolean", "required": true },
41 "ControlPower": { "type": "boolean", "required": true },
42 "UpdateData": { "type": "boolean", "required": true },
43 "RemoveData": { "type": "boolean", "required": true },
44 "Navigate": { "type": "boolean", "required": true },
45 "WriteFile": { "type": "boolean", "required": true }
51 "description": "Ping responder",
52 "transport": "Response",
53 "permission": "ReadData",
57 "JSONRPC.GetConfiguration": {
59 "description": "Get client-specific configurations",
60 "transport": "Announcing",
61 "permission": "ReadData",
63 "returns": { "$ref": "Configuration" }
65 "JSONRPC.SetConfiguration": {
67 "description": "Change the client-specific configuration",
68 "transport": "Announcing",
69 "permission": "ControlNotify",
71 { "name": "notifications", "type": "object",
73 "Player": { "$ref": "Optional.Boolean" },
74 "GUI": { "$ref": "Optional.Boolean" },
75 "System": { "$ref": "Optional.Boolean" },
76 "AudioLibrary": { "$ref": "Optional.Boolean" },
77 "VideoLibrary": { "$ref": "Optional.Boolean" },
78 "Other": { "$ref": "Optional.Boolean" }
82 "returns": { "$ref": "Configuration" }
84 "JSONRPC.NotifyAll": {
86 "description": "Notify all other connected clients",
87 "transport": "Response",
88 "permission": "ReadData",
90 { "name": "sender", "type": "string", "required": true },
91 { "name": "message", "type": "string", "required": true },
92 { "name": "data", "type": "any", "default": null }
98 "description": "Start playback of either the playlist with the given ID, a slideshow with the pictures from the given directory or a single file or an item from the database.",
99 "transport": "Response",
100 "permission": "ControlPlayback",
104 { "type": "object", "required": true, "additionalProperties": false,
106 "playlistid": { "$ref": "Playlist.Id", "required": true },
107 "position": { "$ref": "Playlist.Position", "default": 0 }
110 { "$ref": "Playlist.Item", "required": true },
111 { "type": "object", "required": true, "additionalProperties": false,
113 "path": { "type": "string", "required": true },
114 "random": { "type": "boolean", "default": true },
115 "recursive": { "type": "boolean", "default": true }
123 "Player.GetActivePlayers": {
125 "description": "Returns all active players",
126 "transport": "Response",
127 "permission": "ReadData",
135 "playerid": { "$ref": "Player.Id", "required": true },
136 "type": { "$ref": "Player.Type", "required": true }
141 "Player.GetProperties": {
143 "description": "Retrieves the values of the given properties",
144 "transport": "Response",
145 "permission": "ReadData",
147 { "name": "playerid", "$ref": "Player.Id", "required": true },
148 { "name": "properties", "type": "array", "uniqueItems": true, "required": true, "items": { "$ref": "Player.Property.Name" } }
150 "returns": { "$ref": "Player.Property.Value", "required": true }
154 "description": "Retrieves the currently played item",
155 "transport": "Response",
156 "permission": "ReadData",
158 { "name": "playerid", "$ref": "Player.Id", "required": true },
159 { "name": "properties", "$ref": "List.Fields.All" }
161 "returns": { "type": "object",
163 "item": { "$ref": "List.Item.All", "required": true }
167 "Player.PlayPause": {
169 "description": "Pauses or unpause playback and returns the new state",
170 "transport": "Response",
171 "permission": "ControlPlayback",
173 { "name": "playerid", "$ref": "Player.Id", "required": true }
175 "returns": { "$ref": "Player.Speed" }
179 "description": "Stops playback",
180 "transport": "Response",
181 "permission": "ControlPlayback",
183 { "name": "playerid", "$ref": "Player.Id", "required": true }
189 "description": "Set the speed of the current playback",
190 "transport": "Response",
191 "permission": "ControlPlayback",
193 { "name": "playerid", "$ref": "Player.Id", "required": true },
194 { "name": "speed", "type": [ "integer", "string" ], "enum": [ -32, -16, -8, -4, -2, -1, 0, 1, 2, 4, 8, 16, 32, "increment", "decrement" ], "required": true }
196 "returns": { "$ref": "Player.Speed" }
200 "description": "Seek through the playing item",
201 "transport": "Response",
202 "permission": "ControlPlayback",
204 { "name": "playerid", "$ref": "Player.Id", "required": true },
205 { "name": "value", "required": true, "type": [
206 { "$ref": "Player.Position.Percentage", "required": true, "description": "Percentage value to seek to" },
207 { "type": "object", "additionalProperties": false, "required": true, "description": "Time to seek to",
209 "hours": { "type": "integer", "minimum": 0, "maximum": 23 },
210 "minutes": { "type": "integer", "minimum": 0, "maximum": 59 },
211 "seconds": { "type": "integer", "minimum": 0, "maximum": 59 },
212 "milliseconds": { "type": "integer", "minimum": 0, "maximum": 999 }
215 { "type": "string", "enum": [ "smallforward", "smallbackward", "bigforward", "bigbackward" ], "required": true, "description": "Seek by predefined jumps" }
222 "percentage": { "$ref": "Player.Position.Percentage" },
223 "time": { "$ref": "Global.Time" },
224 "totaltime": { "$ref": "Global.Time" }
230 "description": "If picture is zoomed move viewport left otherwise skip previous",
231 "transport": "Response",
232 "permission": "ControlPlayback",
234 { "name": "playerid", "$ref": "Player.Id", "required": true }
238 "Player.MoveRight": {
240 "description": "If picture is zoomed move viewport right otherwise skip next",
241 "transport": "Response",
242 "permission": "ControlPlayback",
244 { "name": "playerid", "$ref": "Player.Id", "required": true }
250 "description": "If picture is zoomed move viewport down",
251 "transport": "Response",
252 "permission": "ControlPlayback",
254 { "name": "playerid", "$ref": "Player.Id", "required": true }
260 "description": "If picture is zoomed move viewport up",
261 "transport": "Response",
262 "permission": "ControlPlayback",
264 { "name": "playerid", "$ref": "Player.Id", "required": true }
270 "description": "Zoom out once",
271 "transport": "Response",
272 "permission": "ControlPlayback",
274 { "name": "playerid", "$ref": "Player.Id", "required": true }
280 "description": "Zoom in once",
281 "transport": "Response",
282 "permission": "ControlPlayback",
284 { "name": "playerid", "$ref": "Player.Id", "required": true }
290 "description": "Zooms current picture",
291 "transport": "Response",
292 "permission": "ControlPlayback",
294 { "name": "playerid", "$ref": "Player.Id", "required": true },
295 { "name": "value", "type": "integer", "required": true, "minimum": 1, "maximum": 10, "description": "Zoom level" }
301 "description": "Rotates current picture",
302 "transport": "Response",
303 "permission": "ControlPlayback",
305 { "name": "playerid", "$ref": "Player.Id", "required": true }
309 "Player.GoPrevious": {
311 "description": "Go to previous item on the playlist",
312 "transport": "Response",
313 "permission": "ControlPlayback",
315 { "name": "playerid", "$ref": "Player.Id", "required": true }
321 "description": "Go to next item on the playlist",
322 "transport": "Response",
323 "permission": "ControlPlayback",
325 { "name": "playerid", "$ref": "Player.Id", "required": true }
331 "description": "Go to item at the given position in the playlist",
332 "transport": "Response",
333 "permission": "ControlPlayback",
335 { "name": "playerid", "$ref": "Player.Id", "required": true },
336 { "name": "position", "$ref": "Playlist.Position", "required": true }
342 "description": "Shuffle items in the player",
343 "transport": "Response",
344 "permission": "ControlPlayback",
346 { "name": "playerid", "$ref": "Player.Id", "required": true }
350 "Player.UnShuffle": {
352 "description": "Unshuffle items in the player",
353 "transport": "Response",
354 "permission": "ControlPlayback",
356 { "name": "playerid", "$ref": "Player.Id", "required": true }
362 "description": "Set the repeat mode of the player",
363 "transport": "Response",
364 "permission": "ControlPlayback",
366 { "name": "playerid", "$ref": "Player.Id", "required": true },
367 { "name": "state", "$ref": "Player.Repeat", "required": true }
371 "Player.SetAudioStream": {
373 "description": "Set the audio stream played by the player",
374 "transport": "Response",
375 "permission": "ControlPlayback",
377 { "name": "playerid", "$ref": "Player.Id", "required": true },
378 { "name": "stream", "required": true, "type": [
379 { "type": "string", "enum": [ "previous", "next" ] },
380 { "type": "integer", "minimum": 0, "description": "Index of the audio stream to play" }
386 "Player.SetSubtitle": {
388 "description": "Set the subtitle displayed by the player",
389 "transport": "Response",
390 "permission": "ControlPlayback",
392 { "name": "playerid", "$ref": "Player.Id", "required": true },
393 { "name": "subtitle", "required": true, "type": [
394 { "type": "string", "enum": [ "previous", "next", "off", "on" ] },
395 { "type": "integer", "minimum": 0, "description": "Index of the subtitle to display" }
401 "Playlist.GetPlaylists": {
403 "description": "Returns all existing playlists",
404 "transport": "Response",
405 "permission": "ReadData",
413 "playlistid": { "$ref": "Playlist.Id", "required": true },
414 "type": { "$ref": "Playlist.Type", "required": true }
419 "Playlist.GetProperties": {
421 "description": "Retrieves the values of the given properties",
422 "transport": "Response",
423 "permission": "ReadData",
425 { "name": "playlistid", "$ref": "Playlist.Id", "required": true },
426 { "name": "properties", "type": "array", "uniqueItems": true, "required": true, "items": { "$ref": "Playlist.Property.Name" } }
428 "returns": { "$ref": "Playlist.Property.Value", "required": true }
430 "Playlist.GetItems": {
432 "description": "Get all items from playlist",
433 "transport": "Response",
434 "permission": "ReadData",
436 { "name": "playlistid", "$ref": "Playlist.Id", "required": true },
437 { "name": "properties", "$ref": "List.Fields.All" },
438 { "name": "limits", "$ref": "List.Limits" },
439 { "name": "sort", "$ref": "List.Sort" }
441 "returns": { "type": "object",
443 "limits": { "$ref": "List.LimitsReturned", "required": true },
444 "items": { "type": "array", "items": { "$ref": "List.Item.All" }, "required": true }
450 "description": "Add item(s) to playlist",
451 "transport": "Response",
452 "permission": "ControlPlayback",
454 { "name": "playlistid", "$ref": "Playlist.Id", "required": true },
455 { "name": "item", "$ref": "Playlist.Item", "required": true }
461 "description": "Insert item(s) into playlist. Does not work for picture playlists (aka slideshows).",
462 "transport": "Response",
463 "permission": "ControlPlayback",
465 { "name": "playlistid", "$ref": "Playlist.Id", "required": true },
466 { "name": "position", "$ref": "Playlist.Position", "required": true },
467 { "name": "item", "$ref": "Playlist.Item", "required": true }
473 "description": "Remove item from playlist. Does not work for picture playlists (aka slideshows).",
474 "transport": "Response",
475 "permission": "ControlPlayback",
477 { "name": "playlistid", "$ref": "Playlist.Id", "required": true },
478 { "name": "position", "$ref": "Playlist.Position", "required": true }
484 "description": "Clear playlist",
485 "transport": "Response",
486 "permission": "ControlPlayback",
488 { "name": "playlistid", "$ref": "Playlist.Id", "required": true }
494 "description": "Swap items in the playlist. Does not work for picture playlists (aka slideshows).",
495 "transport": "Response",
496 "permission": "ControlPlayback",
498 { "name": "playlistid", "$ref": "Playlist.Id", "required": true },
499 { "name": "position1", "$ref": "Playlist.Position", "required": true },
500 { "name": "position2", "$ref": "Playlist.Position", "required": true }
504 "Files.GetSources": {
506 "description": "Get the sources of the media windows",
507 "transport": "Response",
508 "permission": "ReadData",
510 { "name": "media", "$ref": "Files.Media", "required": true },
511 { "name": "limits", "$ref": "List.Limits" },
512 { "name": "sort", "$ref": "List.Sort" }
517 "limits": { "$ref": "List.LimitsReturned", "required": true },
518 "sources": { "$ref": "List.Items.Sources", "required": true }
524 "description": "Provides a way to download a given file (e.g. providing an URL to the real file location)",
525 "transport": [ "Response", "FileDownload" ],
526 "permission": "ReadData",
528 { "name": "path", "type": "string", "required": true }
533 "path": { "type": "string", "required": true }
537 "Files.GetDirectory": {
539 "description": "Get the directories and files in the given directory",
540 "transport": "Response",
541 "permission": "ReadData",
543 { "name": "directory", "type": "string", "required": true },
544 { "name": "media", "$ref": "Files.Media", "default": "files" },
545 { "name": "properties", "$ref": "List.Fields.All" },
546 { "name": "sort", "$ref": "List.Sort" }
551 "limits": { "$ref": "List.LimitsReturned", "required": true },
552 "files": { "type": "array", "items": { "$ref": "List.Item.File" }, "required": true }
556 "AudioLibrary.GetArtists": {
558 "description": "Retrieve all artists",
559 "transport": "Response",
560 "permission": "ReadData",
562 { "name": "albumartistsonly", "$ref": "Optional.Boolean", "description": "Whether or not to include artists only appearing in compilations. If the parameter is not passed or is passed as null the GUI setting will be used" },
563 { "name": "genreid", "$ref": "Library.Id" },
564 { "name": "properties", "$ref": "Audio.Fields.Artist" },
565 { "name": "limits", "$ref": "List.Limits" },
566 { "name": "sort", "$ref": "List.Sort" }
571 "limits": { "$ref": "List.LimitsReturned", "required": true },
572 "artists": { "type": "array",
573 "items": { "$ref": "Audio.Details.Artist" }
578 "AudioLibrary.GetArtistDetails": {
580 "description": "Retrieve details about a specific artist",
581 "transport": "Response",
582 "permission": "ReadData",
584 { "name": "artistid", "$ref": "Library.Id", "required": true },
585 { "name": "properties", "$ref": "Audio.Fields.Artist" }
587 "returns": { "type": "object",
589 "artistdetails": { "$ref": "Audio.Details.Artist" }
593 "AudioLibrary.GetAlbums": {
595 "description": "Retrieve all albums from specified artist or genre",
596 "transport": "Response",
597 "permission": "ReadData",
599 { "name": "artistid", "$ref": "Library.Id" },
600 { "name": "genreid", "$ref": "Library.Id" },
601 { "name": "properties", "$ref": "Audio.Fields.Album" },
602 { "name": "limits", "$ref": "List.Limits" },
603 { "name": "sort", "$ref": "List.Sort" }
608 "limits": { "$ref": "List.LimitsReturned", "required": true },
609 "albums": { "type": "array",
610 "items": { "$ref": "Audio.Details.Album" }
615 "AudioLibrary.GetAlbumDetails": {
617 "description": "Retrieve details about a specific album",
618 "transport": "Response",
619 "permission": "ReadData",
621 { "name": "albumid", "$ref": "Library.Id", "required": true },
622 { "name": "properties", "$ref": "Audio.Fields.Album" }
624 "returns": { "type": "object",
626 "albumdetails": { "$ref": "Audio.Details.Album" }
630 "AudioLibrary.GetSongs": {
632 "description": "Retrieve all songs from specified album, artist or genre",
633 "transport": "Response",
634 "permission": "ReadData",
636 { "name": "artistid", "$ref": "Library.Id" },
637 { "name": "albumid", "$ref": "Library.Id" },
638 { "name": "genreid", "$ref": "Library.Id" },
639 { "name": "properties", "$ref": "Audio.Fields.Song" },
640 { "name": "limits", "$ref": "List.Limits" },
641 { "name": "sort", "$ref": "List.Sort" }
646 "limits": { "$ref": "List.LimitsReturned", "required": true },
647 "songs": { "type": "array",
648 "items": { "$ref": "Audio.Details.Song" }
653 "AudioLibrary.GetSongDetails": {
655 "description": "Retrieve details about a specific song",
656 "transport": "Response",
657 "permission": "ReadData",
659 { "name": "songid", "$ref": "Library.Id", "required": true },
660 { "name": "properties", "$ref": "Audio.Fields.Song" }
662 "returns": { "type": "object",
664 "songdetails": { "$ref": "Audio.Details.Song" }
668 "AudioLibrary.GetRecentlyAddedAlbums": {
670 "description": "Retrieve recently added albums",
671 "transport": "Response",
672 "permission": "ReadData",
674 { "name": "properties", "$ref": "Audio.Fields.Album" },
675 { "name": "limits", "$ref": "List.Limits" },
676 { "name": "sort", "$ref": "List.Sort" }
681 "limits": { "$ref": "List.LimitsReturned", "required": true },
682 "albums": { "type": "array",
683 "items": { "$ref": "Audio.Details.Album" }
688 "AudioLibrary.GetRecentlyAddedSongs": {
690 "description": "Retrieve recently added songs",
691 "transport": "Response",
692 "permission": "ReadData",
694 { "name": "albumlimit", "$ref": "List.Amount", "description": "The amount of recently added albums from which to return the songs" },
695 { "name": "properties", "$ref": "Audio.Fields.Song" },
696 { "name": "limits", "$ref": "List.Limits" },
697 { "name": "sort", "$ref": "List.Sort" }
702 "limits": { "$ref": "List.LimitsReturned", "required": true },
703 "songs": { "type": "array",
704 "items": { "$ref": "Audio.Details.Song" }
709 "AudioLibrary.GetGenres": {
711 "description": "Retrieve all genres",
712 "transport": "Response",
713 "permission": "ReadData",
715 { "name": "properties", "$ref": "Library.Fields.Genre" },
716 { "name": "limits", "$ref": "List.Limits" },
717 { "name": "sort", "$ref": "List.Sort" }
722 "limits": { "$ref": "List.LimitsReturned", "required": true },
723 "genres": { "type": "array", "required": true,
724 "items": { "$ref": "Library.Details.Genre" }
729 "AudioLibrary.Scan": {
731 "description": "Scans the audio sources for new library items",
732 "transport": "Response",
733 "permission": "UpdateData",
737 "AudioLibrary.Export": {
739 "description": "Exports all items from the audio library",
740 "transport": "Response",
741 "permission": "WriteFile",
743 { "name": "options", "type": [
744 { "type": "object", "required": true, "additionalProperties": false,
746 "path": { "type": "string", "required": true, "minLength": 1, "description": "Path to the directory to where the data should be exported" }
749 { "type": "object", "required": true, "additionalProperties": false,
751 "overwrite": { "type": "boolean", "default": false, "description": "Whether to overwrite existing exported files" },
752 "images": { "type": "boolean", "default": false, "description": "Whether to export thumbnails and fanart images" }
760 "AudioLibrary.Clean": {
762 "description": "Cleans the audio library from non-existent items",
763 "transport": "Response",
764 "permission": "RemoveData",
768 "VideoLibrary.GetMovies": {
770 "description": "Retrieve all movies",
771 "transport": "Response",
772 "permission": "ReadData",
774 { "name": "properties", "$ref": "Video.Fields.Movie" },
775 { "name": "limits", "$ref": "List.Limits" },
776 { "name": "sort", "$ref": "List.Sort" }
781 "limits": { "$ref": "List.LimitsReturned", "required": true },
782 "movies": { "type": "array",
783 "items": { "$ref": "Video.Details.Movie" }
788 "VideoLibrary.GetMovieDetails": {
790 "description": "Retrieve details about a specific movie",
791 "transport": "Response",
792 "permission": "ReadData",
794 { "name": "movieid", "$ref": "Library.Id", "required": true },
795 { "name": "properties", "$ref": "Video.Fields.Movie" }
797 "returns": { "type": "object",
799 "moviedetails": { "$ref": "Video.Details.Movie" }
803 "VideoLibrary.GetMovieSets": {
805 "description": "Retrieve all movie sets",
806 "transport": "Response",
807 "permission": "ReadData",
809 { "name": "properties", "$ref": "Video.Fields.MovieSet" },
810 { "name": "limits", "$ref": "List.Limits" },
811 { "name": "sort", "$ref": "List.Sort" }
813 "returns": { "type": "object",
815 "limits": { "$ref": "List.LimitsReturned", "required": true },
816 "sets": { "type": "array",
817 "items": { "$ref": "Video.Details.MovieSet" }
822 "VideoLibrary.GetMovieSetDetails": {
824 "description": "Retrieve details about a specific movie set",
825 "transport": "Response",
826 "permission": "ReadData",
828 { "name": "setid", "$ref": "Library.Id", "required": true },
829 { "name": "properties", "$ref": "Video.Fields.MovieSet" },
830 { "name": "movies", "type": "object",
832 "properties": { "$ref": "Video.Fields.Movie" },
833 "limits": { "$ref": "List.Limits" },
834 "sort": { "$ref": "List.Sort" }
838 "returns": { "type": "object",
840 "setdetails": { "$ref": "Video.Details.MovieSet.Extended" }
844 "VideoLibrary.GetTVShows": {
846 "description": "Retrieve all tv shows",
847 "transport": "Response",
848 "permission": "ReadData",
850 { "name": "properties", "$ref": "Video.Fields.TVShow" },
851 { "name": "limits", "$ref": "List.Limits" },
852 { "name": "sort", "$ref": "List.Sort" }
854 "returns": { "type": "object",
856 "limits": { "$ref": "List.LimitsReturned", "required": true },
857 "tvshows": { "type": "array",
858 "items": { "$ref": "Video.Details.TVShow" }
863 "VideoLibrary.GetTVShowDetails": {
865 "description": "Retrieve details about a specific tv show",
866 "transport": "Response",
867 "permission": "ReadData",
869 { "name": "tvshowid", "$ref": "Library.Id", "required": true },
870 { "name": "properties", "$ref": "Video.Fields.TVShow" }
872 "returns": { "type": "object",
874 "tvshowdetails": { "$ref": "Video.Details.TVShow" }
878 "VideoLibrary.GetSeasons": {
880 "description": "Retrieve all tv seasons",
881 "transport": "Response",
882 "permission": "ReadData",
884 { "name": "tvshowid", "$ref": "Library.Id", "required": true },
885 { "name": "properties", "$ref": "Video.Fields.Season" },
886 { "name": "limits", "$ref": "List.Limits" },
887 { "name": "sort", "$ref": "List.Sort" }
889 "returns": { "type": "object",
891 "limits": { "$ref": "List.LimitsReturned", "required": true },
892 "seasons": { "type": "array",
893 "items": { "$ref": "Video.Details.Season" }
898 "VideoLibrary.GetEpisodes": {
900 "description": "Retrieve all tv show episodes",
901 "transport": "Response",
902 "permission": "ReadData",
904 { "name": "tvshowid", "$ref": "Library.Id" },
905 { "name": "season", "type": "integer", "minimum": 0, "default": -1 },
906 { "name": "properties", "$ref": "Video.Fields.Episode" },
907 { "name": "limits", "$ref": "List.Limits" },
908 { "name": "sort", "$ref": "List.Sort" }
910 "returns": { "type": "object",
912 "limits": { "$ref": "List.LimitsReturned", "required": true },
913 "episodes": { "type": "array",
914 "items": { "$ref": "Video.Details.Episode" }
919 "VideoLibrary.GetEpisodeDetails": {
921 "description": "Retrieve details about a specific tv show episode",
922 "transport": "Response",
923 "permission": "ReadData",
925 { "name": "episodeid", "$ref": "Library.Id", "required": true },
926 { "name": "properties", "$ref": "Video.Fields.Episode" }
928 "returns": { "type": "object",
930 "episodedetails": { "$ref": "Video.Details.Episode" }
934 "VideoLibrary.GetMusicVideos": {
936 "description": "Retrieve all music videos",
937 "transport": "Response",
938 "permission": "ReadData",
940 { "name": "artistid", "$ref": "Library.Id" },
941 { "name": "albumid", "$ref": "Library.Id" },
942 { "name": "properties", "$ref": "Video.Fields.MusicVideo" },
943 { "name": "limits", "$ref": "List.Limits" },
944 { "name": "sort", "$ref": "List.Sort" }
946 "returns": { "type": "object",
948 "limits": { "$ref": "List.LimitsReturned", "required": true },
949 "musicvideos": { "type": "array",
950 "items": { "$ref": "Video.Details.MusicVideo" }
955 "VideoLibrary.GetMusicVideoDetails": {
957 "description": "Retrieve details about a specific music video",
958 "transport": "Response",
959 "permission": "ReadData",
961 { "name": "musicvideoid", "$ref": "Library.Id", "required": true },
962 { "name": "properties", "$ref": "Video.Fields.MusicVideo" }
964 "returns": { "type": "object",
966 "musicvideodetails": { "$ref": "Video.Details.MusicVideo" }
970 "VideoLibrary.GetRecentlyAddedMovies": {
972 "description": "Retrieve all recently added movies",
973 "transport": "Response",
974 "permission": "ReadData",
976 { "name": "properties", "$ref": "Video.Fields.Movie" },
977 { "name": "limits", "$ref": "List.Limits" },
978 { "name": "sort", "$ref": "List.Sort" }
980 "returns": { "type": "object",
982 "limits": { "$ref": "List.LimitsReturned", "required": true },
983 "movies": { "type": "array",
984 "items": { "$ref": "Video.Details.Movie" }
989 "VideoLibrary.GetRecentlyAddedEpisodes": {
991 "description": "Retrieve all recently added tv episodes",
992 "transport": "Response",
993 "permission": "ReadData",
995 { "name": "properties", "$ref": "Video.Fields.Episode" },
996 { "name": "limits", "$ref": "List.Limits" },
997 { "name": "sort", "$ref": "List.Sort" }
999 "returns": { "type": "object",
1001 "limits": { "$ref": "List.LimitsReturned", "required": true },
1002 "episodes": { "type": "array",
1003 "items": { "$ref": "Video.Details.Episode" }
1008 "VideoLibrary.GetRecentlyAddedMusicVideos": {
1010 "description": "Retrieve all recently added music videos",
1011 "transport": "Response",
1012 "permission": "ReadData",
1014 { "name": "properties", "$ref": "Video.Fields.MusicVideo" },
1015 { "name": "limits", "$ref": "List.Limits" },
1016 { "name": "sort", "$ref": "List.Sort" }
1018 "returns": { "type": "object",
1020 "limits": { "$ref": "List.LimitsReturned", "required": true },
1021 "musicvideos": { "type": "array",
1022 "items": { "$ref": "Video.Details.MusicVideo" }
1027 "VideoLibrary.GetGenres": {
1029 "description": "Retrieve all genres",
1030 "transport": "Response",
1031 "permission": "ReadData",
1033 { "name": "type", "type": "string", "required": true, "enum": [ "movie", "tvshow", "musicvideo"] },
1034 { "name": "properties", "$ref": "Library.Fields.Genre" },
1035 { "name": "limits", "$ref": "List.Limits" },
1036 { "name": "sort", "$ref": "List.Sort" }
1041 "limits": { "$ref": "List.LimitsReturned", "required": true },
1042 "genres": { "type": "array", "required": true,
1043 "items": { "$ref": "Library.Details.Genre" }
1048 "VideoLibrary.Scan": {
1050 "description": "Scans the video sources for new library items",
1051 "transport": "Response",
1052 "permission": "UpdateData",
1056 "VideoLibrary.Export": {
1058 "description": "Exports all items from the video library",
1059 "transport": "Response",
1060 "permission": "WriteFile",
1062 { "name": "options", "type": [
1063 { "type": "object", "required": true, "additionalProperties": false,
1065 "path": { "type": "string", "required": true, "minLength": 1, "description": "Path to the directory to where the data should be exported" }
1068 { "type": "object", "required": true, "additionalProperties": false,
1070 "overwrite": { "type": "boolean", "default": false, "description": "Whether to overwrite existing exported files" },
1071 "images": { "type": "boolean", "default": false, "description": "Whether to export thumbnails and fanart images" },
1072 "actorthumbs": { "type": "boolean", "default": false, "description": "Whether to export actor thumbnails" }
1080 "VideoLibrary.Clean": {
1082 "description": "Cleans the video library from non-existent items",
1083 "transport": "Response",
1084 "permission": "RemoveData",
1088 "System.GetProperties": {
1090 "description": "Retrieves the values of the given properties",
1091 "transport": "Response",
1092 "permission": "ReadData",
1094 { "name": "properties", "type": "array", "uniqueItems": true, "required": true, "items": { "$ref": "System.Property.Name" } }
1096 "returns": { "$ref": "System.Property.Value", "required": true }
1098 "System.Shutdown": {
1100 "description": "Shuts the system running XBMC down",
1101 "transport": "Response",
1102 "permission": "ControlPower",
1108 "description": "Suspends the system running XBMC",
1109 "transport": "Response",
1110 "permission": "ControlPower",
1114 "System.Hibernate": {
1116 "description": "Puts the system running XBMC into hibernate mode",
1117 "transport": "Response",
1118 "permission": "ControlPower",
1124 "description": "Reboots the system running XBMC",
1125 "transport": "Response",
1126 "permission": "ControlPower",
1132 "description": "Navigate left in GUI",
1133 "transport": "Response",
1134 "permission": "Navigate",
1140 "description": "Navigate right in GUI",
1141 "transport": "Response",
1142 "permission": "Navigate",
1148 "description": "Navigate down in GUI",
1149 "transport": "Response",
1150 "permission": "Navigate",
1156 "description": "Navigate up in GUI",
1157 "transport": "Response",
1158 "permission": "Navigate",
1164 "description": "Select current item in GUI",
1165 "transport": "Response",
1166 "permission": "Navigate",
1172 "description": "Goes back in GUI",
1173 "transport": "Response",
1174 "permission": "Navigate",
1180 "description": "Goes to home window in GUI",
1181 "transport": "Response",
1182 "permission": "Navigate",
1186 "Application.GetProperties": {
1188 "description": "Retrieves the values of the given properties",
1189 "transport": "Response",
1190 "permission": "ReadData",
1192 { "name": "properties", "type": "array", "uniqueItems": true, "required": true, "items": { "$ref": "Application.Property.Name" } }
1194 "returns": { "$ref": "Application.Property.Value", "required": true }
1196 "Application.SetVolume": {
1198 "description": "Set the current volume",
1199 "transport": "Response",
1200 "permission": "ControlPlayback",
1202 { "name": "volume", "type": "integer", "minimum": 0, "maximum": 100, "required": true }
1204 "returns": "integer"
1206 "Application.SetMute": {
1208 "description": "Toggle mute/unmute",
1209 "transport": "Response",
1210 "permission": "ControlPlayback",
1212 { "name": "mute", "required": true, "type": [
1213 { "type": "boolean", "required": true },
1214 { "type": "string", "enum": [ "toggle" ], "required": true }
1218 "returns": { "type": "boolean", "description": "Mute state" }
1220 "Application.Quit": {
1222 "description": "Quit application",
1223 "transport": "Response",
1224 "permission": "ControlPower",
1228 "XBMC.GetInfoLabels": {
1230 "description": "Retrieve info labels about XBMC and the system",
1231 "transport": "Response",
1232 "permission": "ReadData",
1234 { "name": "labels", "type": "array", "required": true, "items": { "type": "string" }, "minItems": 1, "description": "See http://wiki.xbmc.org/index.php?title=InfoLabels for a list of possible info labels" }
1238 "description": "List of key-value pairs of the retrieved info labels"
1241 "XBMC.GetInfoBooleans": {
1243 "description": "Retrieve info booleans about XBMC and the system",
1244 "transport": "Response",
1245 "permission": "ReadData",
1247 { "name": "booleans", "type": "array", "required": true, "items": { "type": "string" }, "minItems": 1 }
1251 "description": "List of key-value pairs of the retrieved info booleans"