Python remote control for Kodi server
Project description
Python remote control for Kodi
Author | Denis Machard d.machard@gmail.com |
License | MIT |
PyPI | https://pypi.org/project/kodi-remotecontrol/ |
This is a Python remote control for Kodi with minimal but sufficient basic controls.
This remote control acts as a websocket Gateway of the UDP Event Server API for more reactivity.
Table of contents
Installation
pip install kodi_remotecontrol
Start remote control
As prerequisite, go to System/Settings/Network/Services
and activate the two following options
Allow programs on other systems to control Kodi
Allow control of Kodi via HTTP
After that, you can start the remote control and provides the address of your kodi server.
kodi_remotecontrol --desthost=10.0.0.200
Other available options:
kodi_remotecontrol --help
usage: kodi_remotecontrol [-h] [--destport DESTPORT] [--desthost DESTHOST]
[--bindport BINDPORT] [--bindhost BINDHOST]
optional arguments:
-h, --help show this help message and exit
--destport DESTPORT destination kodi port default=9777
--desthost DESTHOST destination kodi host default=127.0.0.1
--bindport BINDPORT bind on port default=8081
--bindhost BINDHOST bind on host default=0.0.0.0
Available buttons
To interact with the remote control, you need to use a websocket client and
send the following JSON commands to the address ws://<remotecontrol_ip>:8081
.
UI Navigation
{"button": "press_up"} // press on up button
{"button": "press_down"} // press on down button
{"button": "press_left"} // press on left button
{"button": "press_right"} // press on right button
{"button": "press_back"} // press on back button
{"button": "press_enter"} // press on enter button
{"button": "press_ctxmenu"} // display contextual menu
{"button": "press_playlist"} // display playlist
{"button": "press_logoff"} // press on logoff button
Player interaction
{"button": "press_play"} // press on play button
{"button": "press_stop"} // press on stop button
{"button": "press_pause"} // press on pause button
{"button": "press_previous"} // press on previous button
{"button": "press_next"} // press on next button
{"button": "press_osd"} // display OSD
Subtitle selection
{"button": "press_subtitle"} // toggle subtitle
Audio track selection
{"button": "press_language"} // toggle language
Websocket client
Basic demo
<html>
<head>
<title>RemoteControl demo</title>
<style type="text/css">
.buttons {
font-size: 1em;
display: flex;
justify-content: center;
}
.button {
padding: 2rem;
border: medium solid;
min-height: 1em;
min-width: 1em;
cursor: pointer;
user-select: none;
}
</style>
</head>
<body>
<div class="buttons">
<div class="play button">Play</div>
<div class="pause button">Pause</div>
</div>
<script>
var websocket = new WebSocket("ws://localhost:8081/");
var play = document.querySelector('.play')
var pause = document.querySelector('.pause')
play.onclick = function (event) {
websocket.send(JSON.stringify({button: 'press_play'}));
}
pause.onclick = function (event) {
websocket.send(JSON.stringify({button: 'press_pause'}));
}
</script>
</body>
</html>
Systemd service
Example of system service file for Centos7
vim /etc/systemd/system/kodi_remotecontrol.service
[Unit]
Description=Kodi remote control Service
After=network.target
[Service]
ExecStart=/usr/local/bin/kodi_remotecontrol --desthost=10.0.0.200
Restart=on-abort
Type=simple
User=root
[Install]
WantedBy=multi-user.target
systemctl daemon-reload
systemctl start kodi_remotecontrol
systemctl status kodi_remotecontrol
systemctl enable kodi_remotecontrol
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file kodi_remotecontrol-0.6.0.tar.gz
.
File metadata
- Download URL: kodi_remotecontrol-0.6.0.tar.gz
- Upload date:
- Size: 5.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.7.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a38b78206353bae6d707a9854cb6831e5265274ae083d1257acd781a0085faf2 |
|
MD5 | bf2e8f0c92335f953ab032dba6058380 |
|
BLAKE2b-256 | db6494f8533d10c43598f61bcb3b2eeff9b0ad36a4e3309500a1ac73bf5fcbca |
File details
Details for the file kodi_remotecontrol-0.6.0-py3-none-any.whl
.
File metadata
- Download URL: kodi_remotecontrol-0.6.0-py3-none-any.whl
- Upload date:
- Size: 7.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.7.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7b883583763c5aab54355012df9b5c85b3a5f3e99349ca302e8f352f28cdb862 |
|
MD5 | 64e37d4010c7eb8ee4087aa1d22cf566 |
|
BLAKE2b-256 | 87d9e1445f5232e55898945d748d50c6d9a0d08fa1b2c29a6e87216f143ca04f |