Archive:JSON-RPC API/v2 and Template:Divbox: Difference between pages

From Official Kodi Wiki
(Difference between pages)
Jump to navigation Jump to search
>NedBot
m (Robot: Cosmetic changes)
 
No edit summary
 
Line 1: Line 1:
{{DevsHeader|'''XBMC (Dharma) JSON-RPC API'''}}
<div class="boilerplate metadata" id="{{{2}}}" style="{{divstyle{{{1}}}}}"><center><b>{{{2}}}</b></center>{{{3}}}</div>
{{DISPLAYTITLE:JSON-RPC v2 (Dharma)}}{{JSON-RPC API nav}}<br />


Version 2 is the first official version of the JSON-RPC API. It does not fullfil all the features, functionalities and requirements of the [http://jsonrpc.org/spec.html JSON-RPC 2.0 specification] and should therefore not be used anymore.
<noinclude>
==How to use==
<nowiki>{{divbox|color of box|Headtitle|Message}}</nowiki>
==Example==
<nowiki>{{divbox|green|An example|This is only an example of how this template works.}}</nowiki>


{{TOC right}}
Writing this code will give you...
== JSON-RPC 2.0 compatibility ==
{| class="wikitable" style="margin-right: 0;"
!style="padding-left: 5px; width: 7em; text-align: left;"|Version
!style="padding-left: 10px; padding-right: 10px;"|Method calls
!style="padding-left: 10px; padding-right: 10px;"|Notifications<br />(server-side)
!style="padding-left: 10px; padding-right: 10px;"|Notifications<br />(client-side)
!style="padding-left: 10px; padding-right: 10px;"|Parameters<br />by-name
!style="padding-left: 10px; padding-right: 10px;"|Parameters<br />by-position
!style="padding-left: 10px; padding-right: 10px;"|Batch requests
|-
|style="padding-left: 5px;"|Version 2
|{{yes}}
|{{yes}}
|{{no}}
|{{yes}}
|{{no}}
|{{no}}
|-
|}


== Documentation ==
{{divbox|green|An example|This is only an example of how this template works.}}
Using the [[#JSONRPC.Introspect|JSONRPC.Introspect]] method results in a weakly formated documentation of all available methods and some of their parameters. Unfortunately not all the parameters are listed and some of them are even invalid.


== Namespaces ==
[[Category:Templates|Divbox]]
XBMC's JSON-RPC API is split up into namespaces, which contain methods that can be called. These namespaces are:
</noinclude>
<pre>
JSONRPC          A variety of standard JSONRPC calls
Player          Manages all available players
AudioPlayer      Audio playback control
VideoPlayer      Video playback control
Slideshow        Picture playback control
Playlist        Playlist Modification
Files            Shares information
AudioLibrary    Audio Library Information
VideoLibrary    Video Library Information
System          System Controls and Information
XBMC            Application controls
</pre>


== Methods ==
woohoo were cool
=== JSONRPC ===
==== JSONRPC.Introspect ====
Returns a list of all available method calls
<pre>
PARAMETERS
getpermissions    boolean    OPTIONAL: return list of required permissions
getdescriptions    boolean    OPTIONAL: return list of method descriptions
filterbytransport  boolean    OPTIONAL: Return only methods available on this transport
</pre>
 
==== JSONRPC.Version ====
Returns the version of this API (not JSONRPC version). An even number refers to a stable version while odd number is development.
 
==== JSONRPC.Permission ====
Returns a list of client permissions
 
==== JSONRPC.Ping ====
Returns pong!
 
==== JSONRPC.GetAnnouncementFlags ====
Returns what announcements the client is listening for
 
==== JSONRPC.SetAnnouncementFlags ====
Sets what announcements the client is listening for
 
==== JSONRPC.Announce ====
Send a message to other clients. An announcement made by a client will fall under the "Other" announcement category so a client can't pretend to send XBMC messages (which will never send on "Other").
<pre>
 
PARAMETERS
sender            string    the sender of the announcement (your client name)
message            string    description of the announcement
data              string    OPTIONAL: data associated with this message
</pre>
 
=== Player ===
==== Player.GetActivePlayers ====
Returns which players are active (available for querying)<br />
Note: AudioPlayer, VideoPlayer and Slideshow methods are only available if there respective player is active, use this function to obtain that information
<pre>
RESULT
video              boolean    True if video is available, false otherwise
audio              boolean    True if audio is available, false otherwise
picture            boolean    True if pictures are playing, false otherwise
</pre>
 
=== AudioPlayer ===
==== AudioPlayer.State ====
Gets the state of the audio player
<pre>
RESULT
playing            boolean    True if audio is currently playing
paused            boolean    True if audio is currently paused
partymode          boolean    True if party mode is enabled
</pre>
 
==== AudioPlayer.PlayPause ====
Pauses or unpauses playback, returns new state
<pre>
RESULT
playing            boolean    True if audio is currently playing
paused            boolean    True if audio is currently paused
</pre>
 
==== AudioPlayer.Stop ====
Stops playback
 
==== AudioPlayer.SkipPrevious ====
Skips to the previous item in the playlist
 
==== AudioPlayer.SkipNext ====
Skips to the next item in the playlist
 
==== AudioPlayer.BigSkipBackward ====
Skips backward in the current track by a big amount
 
==== AudioPlayer.BigSkipForward ====
Skips forward in the current track by a big amount
 
==== AudioPlayer.SmallSkipBackward ====
Skips backward in the current track by a small amount
 
==== AudioPlayer.SmallSkipForward ====
Skips forward in the current track by a small amount
 
==== AudioPlayer.Rewind ====
Rewind current track
 
==== AudioPlayer.Forward ====
Play current track forwards (Fast Forwards? unknown)
 
==== AudioPlayer.GetTime ====
Gets the state of the audio player, including time information, to the second
<pre>
RESULT
time              number    Position in current track in seconds
total              number    Duration of current track in seconds
playing            boolean    True if audio is currently playing
paused            boolean    True if audio is currently paused
</pre>
 
==== AudioPlayer.GetTimeMS ====
Gets the state of the audio player, including time information, to the millisecond
<pre>
RESULT
time              number    Position in current track in milliseconds
total              number    Duration of current track in milliseconds
playing            boolean    True if audio is currently playing
paused            boolean    True if audio is currently paused
</pre>
 
==== AudioPlayer.GetPercentage ====
Gets a percentage, of what is not obviously documented, presumably Position/Duration*100
<pre>
RESULT            number    Percentage
</pre>
 
==== AudioPlayer.SeekTime ====
Seek to a position in the track defined by position in seconds
<pre>
PARAMETER          number    Position to seek to
</pre>
 
==== AudioPlayer.SeekPercentage ====
Seek to a position in the track defined by a percentage (of total duration?)
<pre>
PARAMETER          number    Percentage to seek to
</pre>
 
=== VideoPlayer ===
VideoPlayer contains exactly the same methods as AudioPlayer, see method in that namespace.
 
=== PicturePlayer ===
==== PicturePlayer.PlayPause ====
Pauses or unpauses slideshow.
 
==== PicturePlayer.Stop ====
Stops playback.
 
==== PicturePlayer.SkipPrevious ====
Skips to the previous item in the slideshow.
 
==== PicturePlayer.SkipNext ====
Skips to the next item in the slideshow.
 
==== PicturePlayer.MoveLeft ====
In a zoomed view, pans the viewport to the left.
 
==== PicturePlayer.MoveRight ====
In a zoomed view, pans the viewport to the right.
 
==== PicturePlayer.MoveDown ====
In a zoomed view, pans the viewport downwards.
 
==== PicturePlayer.MoveUp ====
In a zoomed view, pans the viewport upwards.
 
==== PicturePlayer.ZoomOut ====
Zooms the viewport out.
 
==== PicturePlayer.ZoomIn ====
Zooms the viewport in.
 
==== PicturePlayer.Zoom ====
Zoom to a defined level
<pre>
PARAMETER          number    Zoom level to seek to, as a whole number between 1-10
</pre>
 
==== PicturePlayer.Rotate ====
Rotate the current picture (clockwise or anticlockwise?)
 
=== AudioPlaylist ===
==== AudioPlaylist.Play ====
Starts playing a playlist
<pre>
PARAMETER          number    id number of a song to play
OR
PARAMETER
songid            number    id number of a song to play
 
RESULT
status            boolean    whether method succeeded
</pre>
 
==== AudioPlaylist.SkipPrevious ====
Skips to the previous track in the playlist
 
==== AudioPlaylist.SkipNext ====
Skips to the next track in the playlist
 
==== AudioPlaylist.GetItems ====
Returns a list of items in the playlist, if you chose the right playlist type, also returns state information
<pre>
RESULT
items              array      a list of items in the playlist (This result is optional)
an item: {"fanart":"", "file":"", "label":"", "thumbnail":""}
current            number?    (id? of) current song    (This result is optional)
playing            boolean    whether currently playing  (This result is optional)
paused            boolean    whether currently paused  (This result is optional)
 
start              number
total              number
end                number
</pre>
 
==== AudioPlaylist.Add ====
Adds a track to the current audio playlist
<pre>
PARAMETER       
file              string            uri of the file to add
</pre>
 
==== AudioPlaylist.Clear ====
Clears the current audio playlist
 
==== AudioPlaylist.Shuffle ====
Shuffles the current audio playlist
 
==== AudioPlaylist.UnShuffle ====
Removes the shuffle from the current audio playlist
 
=== VideoPlaylist ===
Contains exact the same methods as AudioPlaylist, except it affects the current video playlist, see AudioPlaylist method calls
 
=== Playlist ===
==== Playlist.Create ====
Creates a virtual playlist, optionally from another file or virtual playlist
 
<pre>
PARAMETER
playlist-virtual  string    OPTIONAL: id of an existing virtual playlist to copy from
playlist-file      string    OPTIONAL: id of an existing file playlist to copy from
 
RESULT
playlist-virtual  string    id of the new playlist
</pre>
 
==== Playlist.Destroy ====
Destroys (deletes) a virtual playlist
<pre>
PARAMETER      string    id of virtual playlist to delete
</pre>
 
==== Playlist.GetItems ====
Returns a list of items in the playlist, if you chose the right playlist type, also returns state information
<pre>
PARAMETER
playlist-file      string    OPTIONAL: id of file playlist
playlist-virtual  string    OPTIONAL: id of virtual playlist
 
RESULT
items              array      a list of items in the playlist
name              string    name of the playlist
 
 
playing            boolean    whether currently playing  (This result is optional)
paused            boolean    whether currently paused  (This result is optional)
 
start              number
total              number
end                number
 
 
</pre>
 
==== Playlist.Add ====
Adds file(s) to a given playlist (file or virtual)
<pre>
PARAMETER
playlist-file      string    OPTIONAL: id of file playlist
playlist-virtual  string    OPTIONAL: id of virtual playlist
file              string    the file to add (path)
</pre>
 
==== Playlist.Remove ====
Removes file from a given playlist (file or virtual)
<pre>
PARAMETER
playlist-file      string        OPTIONAL: id of file playlist
playlist-virtual  string        OPTIONAL: id of virtual playlist
item              string/number id of item to remove
</pre>
 
==== Playlist.Swap ====
Swaps the position of two items in a given playlist
<pre>
PARAMETER
playlist-file      string    OPTIONAL: id of file playlist
playlist-virtual  string    OPTIONAL: id of virtual playlist
item1              number    id of first item
item2              number    id of second item
</pre>
 
==== Playlist.Shuffle ====
Shuffles the playlist
<pre>
PARAMETER
playlist-file      string    OPTIONAL: id of file playlist
playlist-virtual  string    OPTIONAL: id of virtual playlist
</pre>
 
==== Playlist.UnShuffle ====
Removes the shuffle from the playlist
<pre>
PARAMETER
playlist-file      string    OPTIONAL: id of file playlist
playlist-virtual  string    OPTIONAL: id of virtual playlist
</pre>
 
=== Files ===
Many functions in this namespace allow filtering by type, valid types are the following:
<pre>
video
music
pictures
files
programs
</pre>
==== Files.GetSources ====
Returns a list of available source directories (directories in root folder)
<pre>
PARAMETER
media              string    media type filter, see Files namespace documentation for details, media entry not included if no data
 
RESULT
shares            array      a list of file items in the directory {"fanart":"", "file":"","label":""}
 
 
start              number
total              number
end                number
 
</pre>
 
==== Files.Download ====
Returns information about how to download a file (does not return the file itself)
<pre>
PARAMETER        string    URI to a file (not a folder)
 
 
RESULT
path              string
</pre>
 
==== Files.GetDirectory ====
Returns a list of items in a directory, items can be filtered by type.
<pre>
PARAMETER
directory          string    the directory to list, e.g. foo/bar
media              string    media type filter, see Files namespace documentation for details
 
RESULT
directories        array      sub-directories in this directory
files              array      files in this directory
 
 
start              number
total              number
end                number
 
 
</pre>
 
=== AudioLibrary ===
==== AudioLibrary.GetArtists ====
Returns a list of artists in the audio library
<pre>
PARAMETER
genreid            number    filters by this genre id, -1 means all.
 
RESULT
artists            array      artists in the library { "artistid" : number ,"fanart":string,"label":string, "thumbnail" :stringORnotpresent}
 
start              number
total              number
end                number
 
</pre>
 
==== AudioLibrary.GetAlbums ====
Returns a list of albums in the audio library
<pre>
PARAMETER
genreid            number    filters by this genre id
artistid          number    filters by this artist id
start              number    integer value to start result listing from
end                number    integer value to end result listing from
 
RESULT
albums            array      artists in the library {"albumid" : number, "fanart" : string, "label" : string, "thumbnail" : string}
 
start              number
total              number
end                number
 
</pre>
 
==== AudioLibrary.GetSongs ====
Returns a list of albums in the audio library
<pre>
PARAMETER
fields            string    OPTIONAL: fields to return information for
genreid            number    filters by this genre id
artistid          number    filters by this artist id
albumid            number    filters by this album id
 
RESULT
albums            array      artists in the library {"fanart" : string, "file" : string, "label" : string, "songid" : number, "thumbnail" : string}
 
start              number
total              number
end                number
 
</pre>
 
==== AudioLibrary.ScanForContent ====
Scans file system for new audio content using ExecBuiltIn("updatelibrary(music)") command
 
=== VideoLibary ===
==== VideoLibrary.GetMovies ====
Returns a list of movies in the video library
 
for a list of available fields look to : libjsonrpc/FileItemHandler.cpp
 
<pre>
PARAMETER
fields            string    OPTIONAL: fields to return information for
sortmethod        string    OPTIONAL: method to sort the returned list
sortorder        string    OPTIONAL: order of sorting, "ascending" or "descending"
start            number    OPTIONAL: index to start listing from
end              number    OPTIONAL: index to end listing at
 
RESULT
movies            array      movies in the library { "fanart" : string, "file" : string, "label" : string, "movieid" : number, "thumbnail" : string}
</pre>
 
==== VideoLibrary.GetTVShows ====
Returns a list of tv shows in the video library
<pre>
PARAMETER
fields            string    OPTIONAL: fields to return information for
sortmethod        string    OPTIONAL: method to sort the returned list
sortorder        string    OPTIONAL: order of sorting, "ascending" or "descending"
start            number    OPTIONAL: index to start listing from
end              number    OPTIONAL: index to end listing at
 
RESULT
tvshows          array      movies in the library
</pre>
 
==== VideoLibrary.GetSeasons ====
Returns a list of seasons for a given tv show
<pre>
PARAMETER
tvshowid          number    id of the tv show to get seasons for
 
RESULT
seasons          array      seasons for the tv show
</pre>
 
==== VideoLibrary.GetEpisodes ====
Returns a list of episodes for a tv show and season
<pre>
PARAMETER
tvshowid          number    id of the tv show
season            number    id of the season to get episodes for
 
RESULT
episodes          array      seasons for the tv show
</pre>
 
==== VideoLibrary.GetMusicVideos ====
Returns a list of Music videos in the video library
<pre>
PARAMETER
artistid          number    id of the artist
albumid          number    id of the album
fields            string    OPTIONAL: fields to return information for
sortmethod        string    OPTIONAL: method to sort the returned list
sortorder        string    OPTIONAL: order of sorting, "ascending" or "descending"
start            number    OPTIONAL: index to start listing from
end              number    OPTIONAL: index to end listing at
 
RESULT
musicvideos      array      music videos in the library
</pre>
 
==== VideoLibrary.GetRecentlyAddedMovies ====
eturns a list of recently added movies in the video library
<pre>
PARAMETER
fields            string    OPTIONAL: fields to return information for
sortmethod        string    OPTIONAL: method to sort the returned list
sortorder        string    OPTIONAL: order of sorting, "ascending" or "descending"
start            number    OPTIONAL: index to start listing from
end              number    OPTIONAL: index to end listing at
 
RESULT
movies            array      movies in the library
</pre>
 
==== VideoLibrary.GetRecentlyAddedEpisodes ====
Returns a list of recently added episodes to the library
<pre>
PARAMETER
 
RESULT
episodes          array      seasons for the tv show
</pre>
 
==== VideoLibrary.GetRecentlyAddedMusicVideos ====
Returns a list of Music videos in the video library
<pre>
PARAMETER
fields            string    OPTIONAL: fields to return information for
sortmethod        string    OPTIONAL: method to sort the returned list
sortorder        string    OPTIONAL: order of sorting, "ascending" or "descending"
start            number    OPTIONAL: index to start listing from
end              number    OPTIONAL: index to end listing at
</pre>
 
==== VideoLibrary.ScanForContent ====
Scans file system for new video content
 
=== System ===
==== System.Shutdown ====
Shuts down the system
 
==== System.Suspend ====
Suspends the system
 
==== System.Hibernate ====
Hibernates the system
 
==== System.Reboot ====
Reboots the system
 
==== System.GetInfoLabels ====
Get info labels about the system
 
<pre>
PARAMETER        array      of string    <field name>s to return information for
 
RESULT            array      of object
<field name>    string    label that field 
</pre>
 
==== System.GetInfoBooleans ====
Get info booleans about the system
Available field names: <code>system.canshutdown system.canpowerdown system.cansuspend system.canhibernate system.canreboot</code>
<pre>
PARAMETER        array      of string    <field name>s to return information for
 
RESULT            array      of object
<field name>    boolean    value of that field 
</pre>
Example parameters:<br />
<code>[ 'system.canshutdown', 'system.cansuspend' ]</code>
 
Example result: <br />
<code>[ { 'system.canshutdown' : true }, { 'system.cansuspend' : true }]</code>
 
=== XBMC ===
==== XBMC.GetVolume ====
Gets the current volume
<pre>
RESULT            number    volume 
</pre>
 
==== XBMC.SetVolume ====
Sets the current volume as an int percent
<pre>
PARAMETER        number    volume to set to
</pre>
 
==== XBMC.ToggleMute ====
Toggle volume mute on/off, returns same as XBMC.GetVolume
 
==== XBMC.Play ====
Starts playback
 
==== XBMC.StartSlideshow ====
Starts slideshow
<pre>
PARAMETER        string    command to start slideshow with
OR
PARAMETER
directory        string    directory to show pictures from
random          boolean    True if show in random order
recursive        boolean    True if include pictures from subdirectories
</pre>
==== XBMC.Log ====
Logs a line in xbmc.log
<pre>
PARAMETER        string    text to log
OR
PARAMETER
message          string    text to log
level            string    log level, "debug", "info", "notice", "warning", "error", "severe", "fatal", "none"
</pre>
 
==== XBMC.Quit ====
Exits XBMC
 
== See also ==
* [[JSON-RPC API]]
* [[JSON-RPC API/v3|JSON-RPC API v3 (pre Eden)]]
 
[[Category:Development]]

Revision as of 06:33, 15 April 2007


How to use

{{divbox|color of box|Headtitle|Message}}

Example

{{divbox|green|An example|This is only an example of how this template works.}}

Writing this code will give you...


woohoo were cool


woohoo were cool