Full-featured controller for Kodi instances on the local network
The Kodi Controller Skill allows Mycroft to control Kodi, whether locally installed or on another device on the local network. It will allow a high degree of control over Kodi, including the ability for the user to specify a device IP for the Kodi player (allowing the skill to control Kodi on multiple different devices without requiring the user to manually edit the skill's settings), to search for videos and music, and to control playback.
- "Connect to Kodi at <IP address>"
- "Pause Kodi"
- "Pause playback in Kodi"
- "Resume Kodi"
- "Resume playback in Kodi"
- "Stop Kodi"
- "Stop playback in Kodi"
- "Enable subtitles in Kodi"
- "Disable subtitles in Kodi"
- "Search Kodi for <title>"
Matt Burns
While three other skills for Kodi are already available for Mycroft, none are in active development, none provide the degree of control this skill intends to provide, and none allow an easy way to switch between different devices.
The Kodi Controller Skill uses Kodi's JSON-RPC API, and requires the kodipydent Python module.
In Kodi, enable "Allow remote control via HTTP".
Enter the connection information in the Skills settings page of Mycroft Home. Eventually, the user will be able to connect to Kodi (if using the default port with no password) using the device's IP address using any of the following commands: "Mycroft, connect to Kodi on <IP address>" "Mycroft, connect to Kodi at <IP address>" "Mycroft, Kodi connect <IP address>"
- Connect: "Connect to Kodi on <IP address>", "Connect to Kodi at <IP address>", "Kodi connect <IP address>" [WIP] (For now, you must specify an IP using the Skills settings on Mycroft Home as mentioned in the Setup section above.)
- Up: "Kodi up"
- Down: "Kodi down"
- Left: "Kodi left"
- Right: "Kodi right"
- Select: "Kodi select", "Kodi click", "Kodi enter"
- Info: "Kodi info"
- Home: "Kodi home"
- Context menu: "Kodi context"
- Back: "Kodi back"
- Pause: "Kodi pause", "Kodi pause playback", "Pause Kodi", "Pause playback in Kodi"
- Play: "Kodi play", "Play Kodi", "Kodi unpause", "Unpause Kodi"
- Stop: "Kodi stop", "Kodi stop playback", "Stop Kodi"
- Resume/rewatch last played: "Kodi resume", "Kodi resume playback", "Resume playback in Kodi", "Kodi play last watched" [WIP]
- Seek forward: "Kodi skip ahead", "Kodi seek forward"
- Seek backward: "Kodi skip back", "Kodi seek backward"
- Show on-screen display: "Kodi display", "Kodi show on-screen display"
- Search/open media: "Kodi find <title>", "Kodi search for <title>", "Search Kodi for <title>", "Search in Kodi for <title>" [WIP]
- Play random movie: "Kodi play a random movie", "Play a random movie in Kodi", "Kodi random movie" [WIP]
- Enable subtitles: "Kodi enable subtitles", "Enable subtitles in Kodi", "Kodi turn on subtitiles" [WIP]
- Disable subtitles: "Kodi disable subtitles", "Disable subtitles in Kodi", "Kodi turn off subtitles" [WIP]
- Scan for new video: "Kodi scan movies", "Kodi scan videos"
- Scan for new audio: "Kodi scan audio"
- Fix ability to enable/disable subtitles
- Add ability to search for and play movies
- Add ability to play a random movie
- Add ability to play last watched video
Update (July 2018): Yes, this skill is still in development. I ran into issues with the Kodi API concerning searching for and playing specific videos, and then I had to set this aside for a while due to focus on other personal and professional projects. I hope to make some significant updates and improvements in the next couple of weeks, and to make sure the skill is updated for Python 3.4+.