Simple python module that allow xbmc full control over HTTP Json API.
Python
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.

README.md

Python Versions Wheel status Licence Travis codecov

Deprecated. Code moved to https://github.com/jcsaaddupuy/python-kodijson

python xbmc json client

Simple python module that allow xbmc control over HTTP Json API. Virtually support all availables commands.

Install it :

pip install xbmc-json

Usages examples :

Client instanciation

from xbmcjson import XBMC, PLAYER_VIDEO
#Login with default xbmc/xbmc credentials
xbmc = XBMC("http://YOURHOST/jsonrpc")

#Login with custom credentials
xbmc = XBMC("http://YOURHOST/jsonrpc", "login", "password")

Ping XBMC

print xbmc.JSONRPC.Ping()

UI interaction :

# Navigate throught windows
xbmc.GUI.ActivateWindow({"window":"home"})
xbmc.GUI.ActivateWindow({"window":"weather"})

# Show some notifiations :
xbmc.GUI.ShowNotification({"title":"Title", "message":"Hello notif"})

# ...and so on

Parameters can alos be passed as python parameters:

xbmc.GUI.ActivateWindow(window="home")
xbmc.GUI.ActivateWindow(window="weather")
xbmc.GUI.ShowNotification(title="Title", message = "Hello notif")

Library interaction :

xbmc.VideoLibrary.Scan()
xbmc.VideoLibrary.Clean()
# ...and so on

Everything to build a script thats act as a full remote

xbmc.Application.SetMute({"mute":True})
xbmc.Player.PlayPause([PLAYER_VIDEO])
xbmc.Player.Stop([PLAYER_VIDEO])
xbmc.Input.Left()
xbmc.Input.Right()
xbmc.Input.Up()
xbmc.Input.Down()
xbmc.Input.Back()
xbmc.Input.Down()
xbmc.Input.Info()
# ...and so on

See http://wiki.xbmc.org/index.php?title=JSON-RPC_API/v6 for availables commands.

Every XBMC namespaces are accessible from the instanciated xbmc client.

Every commands presents in the API documentation should be available.

You can take a look at xbmc-client for an implementation example.

Contribute

Please make your PR on the branch develop :)