Kodi

From wikinotes

Kodi, formerly Xbmc is a video/audio library tool.

Locations

~/.kodi/temp/kodi.log
~/Library/Logs/kodi.log
%APPDATA%\Kodi\kodi.log
log

Customization

Homescreen

Homescreen

## Home Page > System > Settings > Appearance > Skin > - Settings > Home Window
# Hide - Music
# Hide - Pictures

Weather

## Home Page > Weather > Settings > Advanced Options
# Location 1 Display name: Ottawa
# Location 1 ID: CYOW

Movies

## System > File Manager > Add Source
http://fusion.xbmchub.com

## System > Settings > Add-Ons > Install from Zip
# fusion.xbmchub > video > repositories
# 1channel
# icefilms
# projectfreetv

## Home Page > Video > Video Add-Ons
# 1 Channel
# Ice Films
# Project Free TV

## Home Page > System > Settings > Appearance > Skin > - Settings > Add-on > Home Page Video Submenu
# 1 Channel
# Project Free TV
# Ice Films
# Youtube

Repositories

Kodi can be extended with Addons, Addons can be submitted to a repository so that users can get access to several at once. Here are the most useful addons that I have found to date:


WARNING:

I have had some issues installing plugins for the kodi krypton under linux. Installing this seems to have helped.

fusion -> xbmc-scripts -> scripts.module.urlresolver

XBMC HTTP sources (System > File Manager > Add Source)
http://fusion.tvaddons.ag/ Fusion Repo (oneChannel, iceFilms, exodus, etc..)
http://srp.nu/ SuperRepo (kissAnime, much, much more)
http://kodi.emby.media Emby Addon
Favourite Repositories
Bstrdskmr(?)
theHighway https://github.com/HIGHWAY99/repository.thehighway
Favourite Addons
Default Youtube
Fusion OneChannel
Project Free TV
Exodus
SuperRepo KissAnime
AnimeFate
AnimeGet
KissCartoon
Video Add-Ons/NetfliXBMC

Installing Workflow

System > File Manager > Add Source   # Add HTTP Source

System > Addons > Add from Zip File  # Navigate to HTTP Source and choose Repo or Addon
                                     # (Note that you may need to RightClick and refresh a few times)

Video > Addons > Get Addons          # Enable/Install Addons

Custom Keybindings

Resources
https://github.com/xbmc/xbmc/blob/master/xbmc/input/ButtonTranslator.cpp List of all bindable kodi/xbmc actions
http://kodi.wiki/view/Keymaps Official Kodi Keymap Docs (Also with list of bindable kodi/xbmc actions, possibly less current)
http://kodi.wiki/view/Window_IDs 'Window Names' for assigning kodi keys in. (key can behave differently in HOME than VIDEO).
Locations
~/.kodi/userdata/keymaps/keyboard.xml Custom-User Keybindings

Settings Tweaks

Settings >> Playback >>  # Crop Widescreen Videos

Emby Addon

## Create Addon Respository
http://kodi.emby.media 

# Install from zipfile
# the emby user we're using is 'Alex' (since she's most likely to be using this)

Addons > Emby > Settings > Playback > Play from HTTP instead of SMB
# Make sure that you check 'ok' or the setting will not be saved.

jsonRPC Interface

Enable RPC

# Enable RPC interface
HOME > System > Services > Web Server
    >> Allow Remote Control via HTTP
    >> Port      5634  # (Spells KODI in numbers)
    >> Username  will
    >> Password  *****
# Enable Logging
HOME > System > System > Debugging
    >> Enable Debug Logging                     # Graphical & Output to a log file
    >> Enable Component Specific Logging        # Fine Tuned Logging
    >> Specify Component Specific Logging       # Make RPC requests extra verbose
        >>> Verbose Logging for RPC Requests

# You'll need to reset kodi for logging to begin

xbmc-client

xbmc-client allows you to control xbmc from the commandline (or over SSH) through XBMC's jsonRPC API. This is the lazy way, someone else has gone through all of the work to talk to xbmc for you.

xbmc-client --ping test connection
xbmc-client --up/--down/--right/--left up/down/left/right
xbmc-client --select enter key
xbmc-client --weather/--home shortcuts to other locations
xbmc-client --sendtext="text to send" enter info into field


sudo pip2 install xbmc-client
System/Settings/Network/Services: activate Allow control of XBMC via HTTP
# ~/.config/xbmc-client/config
[xbmc]
host=http://localhost:8080
user=will
password=test


python jsonrpclib

As usual, with any connection over TCP, the best way to find out about it is to send it to netcat listening on a particular port. Note that as of this time, jsonrpclib does not support username/password authentication, and it's contents are compressed using gzip. This means it cannot be used with xbmc .

sudo pip2 install jsonrpclib
server = jsonrpclib.Server('http://localhost:5643')		## Connect to kodi's rpc server
server.Input.Down( window=settings )							## Interface with kodi's rpc API

## What this actually looks like on the other side is:
{"jsonrpc": "2.0", "params": {"window": "settings"}, "id": "bk7fnzb1", "method": "Input.Down"}
http://www.simple-is-better.org/rpc/#example Good documentation on jsonrpclib
https://github.com/joshmarshall/jsonrpclib official documentation

python-xbmc

This is another json-rpc interface written entirely in python. This is the path of least resistance for communicating with xbmc.

from xbmcjson import XBMC, PLAYER_VIDEO
xbmc = XBMC('http://localhost:8643/jsonrpc', 'will', 'password')

xbmc.Input.Down()										## Down
xbmc.GUI.ActivateWindow(window="home")			## From here you can use the API