Skip to content

Kodi: Open Source Media Center Software

DarkSword

Kodi provides a secure, open-source media center

Table of contents

Open Table of contents

Overview

Kodi is a free, open-source media player and entertainment hub. It supports a vast array of audio and video formats, functioning as a central hub for local and network streaming. Unlike proprietary alternatives, Kodi does not mandate a cloud account or user registration. It runs on Linux, macOS, Windows, Android, and iOS, designed primarily for the “10-foot interface” of a living room.

Privacy & Security Audit

Telemetry & Data

Kodi is designed for local operation. The core application does not phone home to track usage statistics. However, I have identified one specific default behavior that requires explicit disclosure.

In xbmc/settings/AdvancedSettings.cpp, the initialization logic sets a default address for CDDB (Compact Disc Database) lookups:

// xbmc/settings/AdvancedSettings.cpp
void CAdvancedSettings::Initialize()
{
  // ...
  m_cddbAddress = "gnudb.gnudb.org";
  // ...
}

This means that if you insert an audio CD, Kodi will attempt to contact this server to fetch track names. This is the only default “phone home” feature found in the configuration. Crucially, this is not a “telemetry” function that tracks what you watch; it is a legacy metadata lookup. The application does not send file lists, viewing habits, or hardware specs to Kodi Foundation servers.

Cryptography

Kodi does not implement application-level encryption for its databases. The VideoDatabase.cpp file confirms that the application relies on standard SQLite databases for the media library.

// xbmc/video/VideoDatabase.cpp
bool CVideoDatabase::Open()
{
  return CDatabase::Open(CServiceBroker::GetSettingsComponent()->GetSettingsComponent()->GetAdvancedSettings()->m_databaseVideo);
}

void CVideoDatabase::CreateTables()
{
  KODI::DATABASE::CVideoDatabaseDDL::CreateTables(*this);
}

There is no call to encryption APIs (like SQLCipher) in the CreateTables or initialization routines. All text, including file paths and metadata, is stored in plain text within the SQLite database. To protect this data at rest, users must rely on full-disk encryption (eBooker, LUKS, BitLocker) or filesystem permissions.

Network Security & Add-ons

Kodi manages network requests primarily through its add-on system. The Repository.cpp file demonstrates a security-conscious approach to fetching add-on updates. The code explicitly warns against insecure HTTP connections.

// xbmc/addons/Repository.cpp
CRepository::CRepository(const AddonInfoPtr& addonInfo) : CAddon(addonInfo, AddonType::REPOSITORY)
{
  // ...
  for (auto const& dir : m_dirs)
  {
    CURL datadir(dir.datadir);
    if (datadir.IsProtocol("http"))
    {
      CLog::Log(LOGWARNING, "Repository add-on {} uses plain HTTP for add-on downloads in path {} - this is insecure and will make your Kodi installation vulnerable to attacks if enabled!", ID(), datadir.GetRedacted());
    }
    // ...
  }
}

This log message proves that the software actively identifies insecure configurations. While users can install third-party repositories, the core software discourages insecure HTTP transfers. Add-on integrity is verified using checksums (MD5/SHA) before installation, ensuring the downloaded package hasn’t been tampered with.

Source Code & Auditing

Kodi is licensed under GPL-2.0-or-later. The header in xbmc/addons/Repository.cpp confirms this:

/*
 *  Copyright (C) 2005-2018 Team Kodi
 *  This file is part of Kodi - https://kodi.tv
 *
 *  SPDX-License-Identifier: GPL-2.0-or-later
 */

Being GPL ensures the code is free from proprietary blobs. The source code is fully available on GitHub (xbmc/xbmc), allowing for independent security audits. The build process uses CMake, which ensures reproducibility of binaries, meaning anyone can verify that the official download matches the source code.

Identity

Kodi has no centralized identity layer. The application runs entirely in user space. Authentication for network resources (like SMB, FTP, or UPnP) uses the credentials provided by the user for those specific services. There is no “Kodi Account” linking your local libraries together.

Usability

Kodi offers powerful features but suffers from a steep learning curve. The “10-foot interface” is intuitive for watching movies, but configuring sources, scraping options, and advanced settings requires significant technical knowledge. While it supports Python scripting and skinning for customization, the sheer number of options can overwhelm non-technical users.

Pros & Cons

Pros

Cons

Verdict

Kodi is the premier choice for users prioritizing privacy. It operates entirely offline by default. The code audit confirms a secure architecture with no hidden surveillance. The primary risks are external (malicious add-ons) rather than internal. For users willing to manage their own backups and add-on selection, Kodi offers a robust, auditable alternative to cloud-based media centers.

Anterior
Krita: Digital Painting & Image Editing
Siguiente
ONLYOFFICE Desktop Editors: Secure Document Processing