Skip to main content

Python remote control for Kodi

License: MIT PyPI - Python Version

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

PyPI

pip install kodi_remotecontrol

Docker Hub

docker pull dmachard/kodi-remotecontrol:latest

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

VueJS front end

A web interface for this project is available.

Basic demo

Copy/paste the following html content in a file and open-it in your web browser. Configure the websocket address.

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

About

Author Denis Machard d.machard@gmail.com
License MIT
PyPI https://pypi.org/project/kodi-remotecontrol/

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

kodi_remotecontrol-0.8.0.tar.gz (6.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

kodi_remotecontrol-0.8.0-py3-none-any.whl (7.5 kB view details)

Uploaded Python 3

File details

Details for the file kodi_remotecontrol-0.8.0.tar.gz.

File metadata

  • Download URL: kodi_remotecontrol-0.8.0.tar.gz
  • Upload date:
  • Size: 6.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/50.3.1 requests-toolbelt/0.9.1 tqdm/4.50.2 CPython/3.7.9

File hashes

Hashes for kodi_remotecontrol-0.8.0.tar.gz
Algorithm Hash digest
SHA256 837a83a00e8308445e2f8bc725f4debca5d9c445ba836c9026ccd6d6511ac29a
MD5 2c2de16ef3f2fb10c6da91a1917f1857
BLAKE2b-256 0ed72dc719e39940b5f440937860aa5a7e749871a5b5cc62c902a17b9cf598b1

See more details on using hashes here.

File details

Details for the file kodi_remotecontrol-0.8.0-py3-none-any.whl.

File metadata

  • Download URL: kodi_remotecontrol-0.8.0-py3-none-any.whl
  • Upload date:
  • Size: 7.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/50.3.1 requests-toolbelt/0.9.1 tqdm/4.50.2 CPython/3.7.9

File hashes

Hashes for kodi_remotecontrol-0.8.0-py3-none-any.whl
Algorithm Hash digest
SHA256 3423397faff5a731cbfdb122a2e759d32d13737bde58e4435ad795461ae0f3eb
MD5 62e8d6b7b823964110cea9cd589c8ac6
BLAKE2b-256 8a886e77a299c6e1d0f844c19d4ea22e58f9ab4a480b0bfdfc30138e19c9bfef

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.8.0 This release

2 files

0.7.0

2 files

0.6.0

2 files

0.5.0

2 files

0.4.0

2 files

0.3.0

2 files

0.2.0

2 files

0.1.0

1 file

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page