Simple python module that allow xbmc full control over HTTP Json API.
Python
Latest commit 377f10f Aug 27, 2016 @jcsaaddupuy committed on GitHub Update README.md
Adds deprecation warning

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 :)