arnold
arnold copied to clipboard
🎬 A modern Kodi web interface
Arnold

🎬 A modern Kodi web interface
Arnold is a modern Kodi web interface which aims to provide relevant information and functionality in a sleek and intuitive design. Arnold is designed to be able to run directly as a Kodi addon, but also as a completely standalone web app.
Written in JavaScript using React, Flux and Semantic-UI-React and bootstrapped by create-react-app.
Demo
Check out the demo to see how Arnold works.
Features
- Remotely control Kodi.
- Browse your movies, TV shows and music.
- Search your entire library through a single search bar.
- Track your progress and hide seen movies and episodes.
- Receive automatic update notifications.
- Choose between multiple transport layers - WebSocket and AJAX.
- Access your library even if your Kodi is offline thanks to client-side caching.
- Works as a Kodi addon but also as a standalone web app.
Installation
Served by Kodi
This is the most common way to install Kodi web interface - simply let Kodi serve all the files on your local network.
- Download latest zip package from releases section.
- Install addon from the zip file.
- Navigate your browser to
http://<KODI_IP_ADDRESS>:<PORT>/addons/webinterface.ARNOLD
, e.g.http://192.168.1.1:8080/addons/webinterface.ARNOLD/
- Optional: Set Arnold as your default web interface.
Running Arnold on a separate server
Arnold can run standalone on any machine on your local network and can connect to Kodi via WebSockets. These instructions are for advanced users.
- Download latest zip package from releases section.
- Unzip the file.
- Serve the contents of
webinterface.ARNOLD
folder with an HTTP server. - Do not forget to set the IP address and transport layer in the settings.
Development
- Clone this repo.
- Run
npm i
to install all dependencies. - Create custom Semantic-UI stylesheet by running
npm run customize-semantic
. - Start with
npm start
and navigate your browser tolocalhost:3000
. - Once you are satisfied with your changes, build a zip package with
npm run make
. - Submit a pull request here if possible.
Note: Depending on how your Kodi is setup, when using AJAX transport layer, you might want to use browser extension that allows you to bypass CORS headers, such as this one.
Debugger
This project uses debug module for debugging. You can turn debugging on and off via the localStorage.debug
value in your browser.
The most important values are:
localStorage.debug = 'arnold:*' // debug everything
localStorage.debug = null // turn debug off
Once you change the flag, you need to refresh your browser to see the changes in debug output.
LICENSE
MIT. See LICENSE
.