Player software for Media Centre nodes.

Hardware

Configuration

Remote Config

Set in .kodi/remote.conf.

This is a non-userdata setting so must be restored after upgrades.

AppleTV remote.conf:

# Apple TV  remote
factory_code    = 0x87ee0001
work_mode   = 1
repeat_enable   = 1
release_delay   = 150
debug_enable    = 1
reg_control = 0xfbe40

key_begin
    0x0b 103    ;UP
    0x0d 108    ;DOWN
    0x08 105    ;LEFT
    0x07 106    ;RIGHT
    0x04  28    ;OK
    0x02  14    ;MENU
key_end

Disable Logging

<advancedsettings>
    <loglevel>-1</loglevel>
</advancedsettings>

Buffer Media

Kodi does not buffer local media (including smb:// and nfs://) by default.

Set advancedsettings/network/buffermode (v17 Krypton: advancedsettings/cache/buffermode) to 1 (cache all):

<advancedsettings>
  <network>
    <buffermode>1</buffermode>
    <readbufferfactor>5</readbufferfactor>
    <!-- <cachemembuffersize>52428800</cachemembuffersize> -->
  </network>
</advancedsettings>

Shared Database

<advancedsettings>
  <musicdatabase>
    <type>mysql</type>
    <host>${MYSQL_IP}</host>
    <port>3306</port>
    <user>${USER}</user>
    <pass>${PASSWORD}</pass>
  </musicdatabase>
  <videodatabase>
    <type>mysql</type>
    <host>${MYSQL_IP}</host>
    <port>3306</port>
    <user>${USER}</user>
    <pass>${PASSWORD}</pass>
  </videodatabase>
  <videolibrary>
    <importwatchedstate>true</importwatchedstate>
    <importresumepoint>true</importresumepoint>
  </videolibrary>
</advancedsettings>

${MYSQL_IP} : Hostname or IP address of MySQL server.

${USER} : MySQL username

${PASSWORD} : MySQL password

Server permissions

Give user permission to use and create new Kodi databases.

grant all privileges on `MyMusic%`.* to ${USER};
grant all privileges on `MyVideos%`.* to ${USER};

Services

Enables Airplay, UPnP, web interface (no username or password)

<settings>
    <services>
        <airplay>true</airplay>
        <airplaypassword default="true"></airplaypassword>
        <airplayvolumecontrol default="true">true</airplayvolumecontrol>
        <devicename>${LOCATION}</devicename>
        <esallinterfaces>true</esallinterfaces>
        <escontinuousdelay default="true">25</escontinuousdelay>
        <esenabled default="true">true</esenabled>
        <esinitialdelay default="true">750</esinitialdelay>
        <esmaxclients default="true">20</esmaxclients>
        <esport default="true">9777</esport>
        <esportrange default="true">10</esportrange>
        <upnpannounce default="true">true</upnpannounce>
        <upnpcontroller default="true">false</upnpcontroller>
        <upnprenderer>true</upnprenderer>
        <upnpserver default="true">false</upnpserver>
        <useairplaypassword default="true">false</useairplaypassword>
        <webserver>true</webserver>
        <webserverpassword></webserverpassword>
        <webserverport default="true">80</webserverport>
        <webserverusername default="true"></webserverusername>
        <webskin default="true">${WEB_INTERFACE}</webskin>
        <zeroconf default="true">true</zeroconf>
    </services>
</settings>

${LOCATION} : the name of the room the player is in.

${WEB_INTERFACE} : webinterface.chorus if it is installed, otherwise webinterface.default

Multi Room Audio

Add-on : http://kodi.wiki/view/Add-on:XSqueeze

Troubleshooting

Migrating database paths

use MyVideos119;
update path set strPath = REPLACE(strPath, 'smb://MEDIA/', '/auto/');

Fixing broken databases

  • Enable loglevel=0 in advancedsettings.xml Check for log messages about upgrade failures

    NOTICE: Attempting to update the database MyVideos99 from version 93 to 99
    ERROR: SQL: [MyVideos99] Undefined MySQL error: Code (1060)
           Query: ALTER TABLE movie ADD userrating integer
    
  • Stop media nodes

    rake HOSTS="lounge ballroom bedroom-mark" media_stop
    
  • Login to Hastur mysql

  • Drop old database

    drop database MyVideos99
    
  • Start master media node

    rake HOSTS="lounge" media_restart
    
  • Check logs for successful upgrade

  • Restart other media nodes

    rake HOSTS="lounge ballroom bedroom-mark" media_restart