# Kodi (software)

Kodi (formerly XBMC) is a free and open-source media player and technology convergence software application developed by the Kodi Foundation, a non-profit technology consortium. Kodi is available for multiple operating systems and hardware platforms, with a software 10-foot user interface for use with televisions and remote controls. It allows users to play and view most streaming media, such as videos, music, podcasts, and videos from the Internet, as well as all common digital media files from local and network storage media, or TV gateway viewer.
Kodi was initially designed as a multi-platform home-theater PC (HTPC) application that has grown to become a multi-purpose technological convergence platform. It is customizable: skins can change its appearance, and plug-ins allow users to access streaming media content via online services such as Amazon Prime Video, Crackle, Pandora, Napster, Spotify, and YouTube. The later versions also have a personal video-recorder (PVR) graphical front end for receiving live television with electronic program guide (EPG) and high-definition digital video recorder (DVR) support.
The software was originally created in 2002 as an independently developed homebrew media player application named Xbox Media Player for the first-generation Xbox game console, changing its name in 2004 to Xbox Media Center (abbreviated as XBMC, which was adopted as the official name in 2008) and was later made available under the name XBMC as a native application for Android, Linux, BSD, macOS, iOS/tvOS, and Microsoft Windows-based operating systems. Then the project was renamed again from XBMC to "Kodi" in July 2014 with the release of Kodi 14 (instead of the expected XBMC 14 release), while still keeping "XBMC Foundation" as the name for its legal entity that owns Kodi's code as well as directly related trademarks and logos.
Because of its open source and cross-platform nature, with its core code written in C++, modified versions of Kodi XBMC together with JeOS have been used as a software appliance suite or software framework in a variety of devices, including smart TVs, set-top boxes, digital signage, hotel television systems, network connected media players and embedded systems based on armhf platforms like Raspberry Pi. Derivative applications such as MediaPortal and Plex have been spun off from XBMC or Kodi, as well as just enough operating systems like LibreELEC.
Kodi has attracted negative attention from the news media and law enforcement agencies due to some add-ons as plug-ins made available by third parties for the software that facilitates unauthorized access and playback of media content by different means of copyright infringement, as well as sellers of digital media players that pre-load them with third-party add-ons for the express purpose of making piracy easy. The XBMC Foundation have expressed that they do not endorse the use of third-party add-ons that are designed for the purpose of piracy, and it takes active steps to disassociate and distance the Kodi project from third-party add-ons that violate copyright. These steps include blocking such add-ons and banning all discussions about piracy in their community forums, as well as threatening legal action against those using the Kodi trademarks or logos to promote add-ons and digital media players that come with them pre-installed with such add-ons.

## Overview

Kodi supports many common audio, video, and image formats, playlists, audio visualizations (FishBMC, Goom, Matrix, MilkDrop, Shadertoy), slideshows, weather forecast reporting, and third-party plugins. It is network-capable (internet and home network shares). Unlike other media center applications such as Windows Media Center, MediaPortal and MythTV, Kodi does not include its own internal digital TV-tuner code for Live TV or DVR/PVR recording functionality, as instead it acts as a unified DVR/PVR front-end with an EPG TV-Guide graphical user interface (GUI) interface which, via a common application programming interface (API), abstracts and supports multiple back-ends via PVR client add-ons from third parties, with those running either locally on the same machine or over the network.
Plug-ins, using either C/C++ programming languages to create binary add-ons or the Python scripting language to create Script Addons, expand Kodi to include features such as television program guides, YouTube, Hulu, Netflix, Veoh, online movie trailer support, and Pandora Radio and podcast streaming. Kodi also functions as a game launcher on any operating system.
Kodi's source code is distributed as open source under the GNU General Public License (GPL-2.0-or-later), it is governed by the tax-exempt registered non-profit US organization, XBMC Foundation, and is owned and developed by a global free software community of unpaid volunteers.
Even though the original XBMC project no longer develops or supports XBMC for the Xbox, XBMC on the Xbox is still available via the third-party developer spin-off project "XBMC4Xbox", which forked the Xbox version of the software and completely took over the development and support of XBMC for the old Xbox. The ending of Xbox support by the original project was also the reason that it was renamed "XBMC" from the old "Xbox Media Center" name, and why it later was renamed "Kodi". The Xbox version of XBMC had the ability to launch console games, and homebrew applications such as emulators. Since the XBMC for Xbox version was never distributed, endorsed, or supported by Microsoft, it always required a modchip or softmod exploit to run on the Xbox game-console.

### Hardware requirements

Kodi has greater basic hardware requirements than traditional 2D style software applications: it needs a 3D capable graphics hardware controller for all rendering. Powerful 3D GPU chips are common today in most modern computer platforms, including many set-top boxes, and XBMC, now Kodi, was from the start designed to be otherwise very resource-efficient, for being as powerful and versatile a framework as it is. It runs well on what (by Intel Atom standards) are relatively underpowered OpenGL 1.3 (with GLSL support), OpenGL ES 2.0 or Direct3D (DirectX) 9.0 capable systems that are IA-32/x86, x86-64, ARM (AArch32 and AArch64), RISC-V, or PowerPC G4 or later CPU based.
When software decoding of a full HD 1080p high-definition and high bit-rate video is performed by the system CPU, a dual-core 2 GHz or faster CPU is required in order to allow for perfectly smooth playback without dropping frames or giving playback a jerky appearance. Kodi can, however, offload most of the video decoding process onto graphics hardware controller or embedded video processing circuits that support one of the following types of hardware-accelerated video decoding: Google's MediaCodec API for Android, Intel's VAAPI, Nvidia's VDPAU API, AMD's XvBA API, Microsoft's DXVA API, Apple's VDADecoder/VideoToolbox APIs, and the Khronos Group's OpenMAX API, AMLogic VPU, Freescale's i.MX6x series VPU, and Raspberry Pi's GPU MMAL. By taking advantage of such hardware-accelerated video decoding, Kodi can play back most videos on many inexpensive, low-performance systems, as long as they contain a supported VPU or GPU.

## Core features
### Live TV with EPG and PVR/DVR frontend

The TV feature allows users to watch some TV broadcasts that may be transmitted by a digital terrestrial television, asymmetric digital subscriber line (ADSL), cable, or Internet streaming, depending on the chosen add-on.
From version 12.0 (Frodo), Kodi has a native Live TV with EPG (Electronic Program Guide) and DVR (Digital Video Recorder) features with a PVR (Personal Video Recorder) frontend GUI, which enables video capture and playback to and from a hard disk drive with PVR Client Addons for most popular PVR backends (TV tuner card server). These addons can be installed separately as plugins in Kodi.
The PVR backend can either be a DVR set-top box connected to the network or a PC with a digital video recorder software. This software can run on the same computer or on other computers on the same network. The PVR software can turn computers or other appliances into DVRs. The operating system can be Linux, macOS, Microsoft Windows, and Android devices.
Several types of PVR Client Addons are available:
* addons used for many PVR software and hardware such as Argus TV, DVBLogic DVBLink, DVBViewer, ForTheRecord, Tvheadend, MediaPortal, MythTV, NextPVR (formerly GB-PVR), VDR, Windows Media Center,
* addons used for Enigma2-based DVR set-top boxes such as Dreambox, DBox2, and Vu+.,
* addons used for direct LAN connection to network-attached TV-Tuners such as HDHomeRun, PCTV Systems Broadway, VBox Home TV Gateway, and Njoy Digital AnySee N7 DVB-S2 Network-Tuner.
* addons used for the Internet-based television providers FilmOn (FilmOn.TV Networks), and Stalker Middleware,
* addons used for IPTV in general, e.g. the simple PVR client addon.

### Video playback
#### Video Library

The Video Library, one of the Kodi metadata databases, is a key feature of Kodi. It allows the organization of video content by information associated with the video files (e.g., movies and recorded TV shows) themselves. This information can be obtained in various ways, like through scrapers (e.g., web scraping sites like IMDb, TheMovieDB, TheTVDB), and nfo files. Automatically downloading and displaying movie posters and fan art backdrops as background wallpapers. The Library Mode view allows users to browse their video content by categories; Genre, Title, Year, Actors and Directors.

#### Video player cores

Kodi uses one multimedia video player "core" for video-playback. This video-player "core" for video-playback is an in-house developed cross-platform media player, "DVDPlayer", which was designed to play back DVD-Video movies, and this includes support native for DVD-menus, (based on the free open source libraries code libdvdcss and libdvdnav). This FFmpeg based video-player "core" today supports all widespread mainstream formats. One relatively unusual feature of this DVD-player core is the capability to on-the-fly pause and play DVD-Video movies that are stored in ISO and IMG DVD-images or DVD-Video (IFO/VOB/BUP) images (even directly from uncompressed RAR and ZIP archives), from either local harddrive storage or network-share storage.

### Audio playback
#### Music Library

The Music Library, one of the Kodi metadata databases, is another key feature of Kodi. It allows the organization of a music collection to allow searching, and creating smart playlists by information stored in music file ID meta tags, like title, artist, album, production year, genre, and popularity. Automatically downloading and displaying album covers and fan art backdrops as background wallpapers.

### Digital picture/image display

Kodi handles all common digital picture/image formats with the options of panning/zooming and slideshow with the Ken Burns effect, with the use of CxImage open source library code. XBMC can handle CBZ (ZIP) and CBR (RAR) comic book archive files, this feature lets users view/read, browse and zoom the pictures of comics pages these contain without uncompressing them first.

### Games Manager and game console emulators

Development was in progress in 2013 on new core features integrating a built-in Games Manager and Game Launcher front-end GUI with a Games Library, and Game Console Emulator API into XBMC. The code for all was being developed in a separate branch to be incorporated into the mainline tree.
The Games Manager, once integrated into Kodi, provides a unified games manager library and GUI front-end launcher with online metadata web scraping support for information about the games. It also introduces Game Addons as new type of addon with just-in-time emulator installation. Adding a Games Library for Game Metadata, exposing info (current level, number of lives, number of coins earned, etc.) to GUI, as well as extending the Addon API to support Game Client Addons, supporting Kodi's VFS (Virtual File System). It also provides a joystick and gamepad abstraction layer for common joystick API and input clients.

#### RetroPlayer

Also under development is the RetroPlayer video game console emulator (ROMs) interface, supporting the libretro API and emulator cores (from the RetroArch project, which is its reference front-end). Libretro itself is a modular multi-system game/emulator system designed to be fast, lightweight, and portable.
RetroPlayer supports emulators for popular retro game consoles, including Atari 2600, Lynx, Jaguar, Nintendo Entertainment System, Super NES, Nintendo 64, Game Boy, PlayStation, Master System, Genesis, Sega CD, and Game Gear, plus multiple arcade video games via MAME and Final Burn Alpha, as well as ScummVM and MS-DOS based games.
From version 18 Kodi supports a player core, Retroplayer, to play games using game emulator addons available for libretro.

### Audio, video, and pictures media formats

Kodi can play media from CD/DVD media using an internal DVD-ROM drive. It can play media from an internal built-in hard disk drive and SMB/SAMBA/CIFS shares (Windows File-Sharing), NFS, or stream them over ReplayTV DVRs/PVRs, Universal Plug and Play (UPnP) or Digital Living Network Alliance (DLNA) shares, or stream iTunes-shares via Digital Audio Access Protocol (DAAP). Kodi can take advantage of a broadband Internet connection if available to stream Internet-video-streams like YouTube, Hulu, Netflix, and Veoh, and play Internet-radio-stations (such as Pandora Radio). Kodi includes the option to submit music usage statistics to Last.fm and Libre.fm. It has music/video-playlist features, picture/image-slideshow functions, an MP3+CDG karaoke function and many audio-visualizations and screensavers. Kodi can upscale/upconvert all standard-definition resolution videos and output them to 720p, 1080i, and 1080p high-definition resolutions.
Under Microsoft Windows, Kodi supports Directsound and WASAPI; since WASAPI performs no mixing or resampling, it provides best audio quality.

#### Format support

Kodi can be used to play/view all common multimedia formats through its native clients and parsers. It can decode these audio and video formats in software or hardware, and optionally pass-through AC3/DTS audio, or encode to AC3 in real time from movies directly to S/PDIF digital output to an external audio-amplifier/receiver for decoding.

### Addons Manager, addons and plugins

Kodi features several open APIs to enable third-party developers to create capabilities which extend Kodi with a multitude of addons, such as audio and video streaming plugins for online sources, screensavers, skins and themes, visualizations, weather forecasts, web interfaces, web scrapers, widget scripts, and more. Kodi developers encourage users to make and submit their own addons to expand media content and value-added services accessible from within Kodi.
Kodi/XBMC features, since version 10.0 (codename: "Dharma"), an Addons Framework architecture and an Addons Manager GUI client that connects to a decentralized digital distribution service platform that serves add-on apps and plug-ins which among other things provide online content to Kodi, the "Addons Manager" (or "Addons Browser") inside Kodi allows users to browse and download new addons directly from Kodi's GUI.
Many of these online content sources are in over-the-top content high definition services and use video streaming site as sources for the media content that is offered. Kodi has extensibility and integration with online sources for free and premium streaming content, and offers content from everything from commercial video to free educational programming, and media from individuals and small businesses. Not all content sources on add-ons are available in every country, however. Due to rights agreements, many content sources are geo-restricted to prevent users in outside countries from accessing content, although some have taken to bypassing the regional restrictions in order to unblock these sources, disregarding the usage rights.

#### Plugins and scripts

Kodi features an integrated Python Scripts interpreter for addon extensions, and WindowXML application framework (a XML-based widget toolkit engine for creating a GUI for apps and widgets) in a similar fashion to Apple macOS Dashboard Widgets and Microsoft Gadgets. Python widget scripts allow normal users to add new functionality to Kodi themselves, using Python scripting language. Current plugin scripts include functions like Internet-TV and movie-trailer browsers, cinemaguides, weather forecast, over-the-top content video streaming services like YouTube, BBC iPlayer, Hulu, Netflix, Veoh, MLB.tv, Internet-radio-station browsers such as Pandora Radio, online picture sharing sites like Flickr, TV guides such as TVShow Time, e-mail clients, instant messaging, different timetables, home automation scripts to front-end control PVR software and hardware, P2P file-sharing downloaders (BitTorrent), IRC, also casual games such as Tetris.

#### Metadata extraction and web scrapers

Kodi has the built-in optional function to automatically download metadata information, cover art and other related media artwork online through its web scrapers that looks for media in the user's audio and video folders and their sub-directories. These "scrapers" are used as importers to obtain detailed information from various Internet resources about movies and television shows. It can get synopses, reviews, movie posters, titles, genre classification, and other similar data. XBMCGUI then provides a rich display for audio and video files that the scrapers have identified.
Scrapers use sites like The Movie Database (TMDb) or IMDb.com to obtain thumbnails and information on movies, thetvdb.com for TV show posters and episode plots, CDDB for audio CD track listings, and Allmusic (AMG) and MusicBrainz for album thumbnails, reviews, and metadata.
Fanart.tv has been added to the list of information sources and XBMC can use it to retrieve logos, backgrounds, CDs with transparent backgrounds, album covers and banners among other image types for music artists, TV shows and movies, the popularity of which contributed to XBMC being able to handle new image types.

### Skins and themes

Like the majority of applications that originated from a 'homebrew' scene, modification and customization of the interface using skins is very popular among Kodi users and hundreds of skins and themes are available for users to install. The Kodi skinning engine's flexibility is also advantageous to third parties wanting to create derivative works, as it facilitates rebranding the environment and making deeper changes to the look and feel of the user interface.
As of Kodi version 17, the official default skins for new installs are "Estuary", for typical home-theater usage, and "Estouchy" for touchscreens. These newly designed skins replace the longtime default skin "Confluence", and are intended to present more content on the homescreen, be easier for new users, and bring "Kodi into the present day of UI design."
Users can also create their own skin (or simply modify an existing skin) and share it with others via public websites that are used for Kodi skin trading and development. Many such third-party skins exist that are well maintained by the community, and while some skins are originals with unique designs, most begin as a clone or an exact replica of other multimedia software interfaces, such as Apple Front Row, Windows Media Center Edition (MCE), MediaPortal, Wii Channel Menu (Xii), Xbox 360 interface, and others.
In addition to skins and themes users can create a themed package called a 'build'. Within this package homebrew developers are able to distribute a skin and multiple addons. The delivery mechanism used within the Kodi scene is called a wizard with the Replicant Wizard being the most prominent.

### Web Interfaces

Web Interface addons for Kodi normally allow browsing a media library remotely, to handle music playlists from a computer instead of television. Others allow remotely controlling the navigation of XBMC like a remote for remote controlling of an installed and concurrently active Kodi session running on a computer if it runs on an internet tablet or similar device with a touch interface. Others act like a media manager to allow modifying metadata and artwork in XBMC's video and music libraries.

### Application launcher

Kodi has a "My Programs" section which is meant to function as an application launcher for third-party software such as computer games and video game emulators, all from a GUI with thumbnail and different listings options. However, while this feature was fully functioning on the Xbox version of XBMC, it is still in its infant stage on Android, iOS, Linux, macOS, and Windows, thus requiring third-party launcher plugins to function properly.

## Mobile remotes and second screen apps

There are many companion apps for mobile devices available for and associated with Kodi. Some of these mobile apps work as simple remote controls, while others function as more advanced second screen companion apps, offering additional information about what users are viewing or listening to on Kodi, such as metadata about movie actors and music artists, with links to other works available from those persons in their collection or online.
"XBMC Remote for Android" and "XBMC Remote for iOS" are free and open source official apps for mobile devices released by Team-Kodi/Team-XBMC on Google Play for Android devices and the App Store for iOS Devices, such as iPad, iPhone, and iPod Touch. These applications act as a second screen and remote control solution which allows for fully browsing the media library and for remote controlling of an installed and concurrently active XBMC session running on a computer via the handheld touchscreen user interface of these device.
Several third-party developers have also released multiple other unofficial Kodi remote control apps for iOS, Android, BlackBerry, Symbian, Ubuntu Touch, Windows Mobile, and Windows Phone devices. Some of these remote control apps are made specifically for controlling Kodi, while some universal remote control apps are capable of controlling many different media center and media player applications, and some of these third-party remote apps cost money while others are free.

## Official versions

Due to the dated hardware of the first-generation Xbox game console that Kodi-XBMC was designed for, and a desire to expand the project's end-user and developer-base, many official ports of XBMC to computer operating-systems and hardware platforms have been created. Through the processing power of more recent computer hardware, XBMC can decode high-definition video up to and beyond 1080p resolutions, bypassing hardware limitations of the Xbox version of XBMC.
In recent releases of Kodi-XBMC there is hardware accelerated video decoding for DXVA, VDPAU, VA-API GPU hardware video decoding, as well as hardware accelerated video decoding via ARM NEON, and OpenMAX, Broadcom Crystal HD. The source code for XBMC is actively updated by developers in a public Git repository, which may contain features and functionality not yet incorporated into the most recent "stable" releases.

### Native applications

Kodi for Linux (formerly XBMC for Linux) is primarily developed for Ubuntu Linux and Kodi's developers' own Kodibuntu (formerly XBMCbuntu). Third-party packages for most other Linux distributions are also available, and it is possible to compile XBMC Media Center from scratch for any Linux distribution, as long as the required dependency libraries are installed first. Hardware accelerated video decoding is achieved via the VDPAU API on Nvidia's GPUs, the VAAPI API for AMD/ATI Radeon, S3 Graphics, and Intel's newer Integrated Graphics Processors, as well as hardware accelerated video decoding via OpenMAX, ARM NEON, and Broadcom Crystal HD on systems with supporting hardware. Development version of Kodi/XBMC for Linux is available at Launchpad as PPA (Personal Package Archive) for the standard Ubuntu Desktop version 8.04 and later, as well as DEB packages for Debian.
Kodi for OS X (formerly XBMC for Mac) runs natively on Mac OS X Tiger and later, as well as on the Apple TV. 1080p playback can be achieved on Apple computers either via software decoding on the CPU, if it is powerful enough, or by hardware-accelerated video decoding for hardware supporting Apple's VDA API or video decoders such as the Broadcom Crystal HD.
1080p playback on the first-generation Apple TV (a.k.a. "ATV1") can only be achieved by hardware accelerated video decoding via Broadcom Crystal HD; the user must replace the ATV's internal WiFi adapter with a Broadcom Crystal HD PCI Express Mini (mini-PCIe) card in order to activate this functionality.
Kodi for Windows (formerly XBMC for Windows) runs natively on Windows 7, Windows 8, and Windows 10 as a 32-bit or 64-bit application. 1080p and Ultra HD (4K) playback can be achieved on Windows computers either via software decoding on the CPU, if it's powerful enough, or by hardware accelerated video decoding.
Hardware video decoding via DirectX Video Acceleration is supported, although this enhancement only runs on Windows 7 (or later?) since it uses the DXVA 2.0 API, which was not supported in Windows XP.
Kodi for iOS (formerly XBMC for iOS), a full port of Kodi to Apple's iOS operating system, was released publicly on 20 January 2011. It supported both 720p and 1080p hardware accelerated video decoding of H.264 videos, and was compatible with Apple's iDevices that use Apple A4 or Apple A5 (ARM-based) processors with a jailbroken iOS operating system.
In late 2017 MacWorld UK described how to install on iOS devices before iOS 11 without jailbreak.
Kodi for Android (formerly XBMC for Android) is a full port of the complete Kodi/XBMC application to Google's Android operating system, officially compatible with Android 4.0 (Ice Cream Sandwich) and later versions supporting API Level 14. It was first announced and its source code released publicly on 13 June 2012. This is a full port of Kodi's C++ and C source code with all its dependencies to Android with a build-system that was designed to handle multiple processor architectures, like ARM, MIPS, and x86 with the Android NDK (Native Development Kit for Android) without using a single line of Java, and the XBMC.APK is running natively under Android as a NativeActivity application. Hardware accelerated video decoding on Android is currently only officially available for some specific hardware platforms, such as the Amlogic SoC based Pivos XIOS series which have been used as the reference hardware platform during the development so far. XBMC source code must be compiled with Google's official Android NDK revision 10d or later, and be built for the android-17 toolchain (Android API Level 17) using GCC version 4.8, which Kodi for Android code currently requires to compile correctly but is not supported by Google's Android NDK. This is also the real reason why XBMC for Android does not support the original Google TV; since the Android NDK was not made available for older Google TV devices it means that Kodi/XBMC could not be compiled for it today.

### Xbox (first-generation)

XBMC 9.04 (codename: Babylon) point-release version of XBMC for Xbox, now obsolete, was released on 6 May 2009 as the last official version of XBMC for Xbox. The original developers of XBMC have since issued a statement stating they will no longer develop or support XBMC for Xbox as part of the XBMC project as of 27 May 2010. The development of XBMC for Xbox ended because the focus for all Team XBMC developers has completely shifted to the Linux, Mac, and Windows versions of XBMC instead.
Even though the original XBMC project no longer develops or supports XBMC for the Xbox, an XBMC version for the Xbox is still available via the third-party developer spin-off project "XBMC4Xbox", who have completely taken over the development and support of XBMC for the original Xbox.
XBMC for Xbox was never an authorized/signed Microsoft product, therefore a modification of the Xbox is required in order to run XBMC on an Xbox game-console. XBMC for Xbox can be run as an application (like any Xbox game), or as a dashboard that appears directly when the Xbox is turned on. Since XBMC for Xbox was part of an open source software program, its development source code was stored on a publicly accessible subversion repository. Accordingly, unofficial executable builds from the subversion repository are often released by third parties on sites unaffiliated with the official XBMC project.

### Xbox One

On 29 December 2017, Kodi developers announced via the news section of their official website that a Kodi app had been released for the Xbox One. It is noted that the UWP version will retain the characteristic Kodi appearance, however, many core features are missing or broken.

## Commercial systems

The developers of Kodi (formerly XBMC) state that as long as the GPL licensing of the Kodi software is respected they would love Kodi to run on as many third-party hardware platforms and operating systems as possible, as "Powered by Kodi" (or "Powered by XBMC") branded devices and systems. They envision Kodi being pre-installed as a third-party software component that commercial and non-commercial ODMs and OEMs and systems integrator companies can use royalty-free on their own hardware, hardware such as set-top boxes from cable-TV companies, Blu-ray Disc and DVD players, game-consoles, or embedded computers and SoC (System-on-a-Chip) built into television sets for web-enabled TVs, and other entertainment devices for the living room entertainment system, home cinema, or similar uses.
Below is a list of third-party companies that sell hardware bundled with Kodi or XBMC software pre-installed, or sell uninstalled systems that specifically claim to be Kodi- or XBMC-compatible. Many of these third-party companies help submit bug fixes and new features back upstream to the original Kodi-XBMC project.

### Computer hardware

ARCTIC is a company based in Germany best known for their cooling solutions working in partnership with the OpenELEC team. On 5 February 2013, together they released a fully passively cooled entertainment system: the MC001 media centre (US and EU version), equipped with the latest XBMC 12 (OpenELEC 3.0) platform. OpenELEC and ARCTIC are planning on their next release, aim to provide a more dedicated builds for the ARCTIC MC001 media centre systems.
AIRIS Telebision, sold by Telebision in Spain and designed specifically for the Spanish market, is a nettop based on Nvidia Ion chipset, pre-installed Ubuntu base with XBMC for Linux and a customized AEON skin and Spanish plugins. Other than the modified skin, what is unique with the AIRIS Telebision's XBMC build is that it comes with a digital distribution service platform that they call their "App Store" which lets users download new Spanish plugins and updates for existing plugins. Telebision also lets users download a Live CD version of their software as freeware, which lets users install their Telebision distribution on any Nvidia Ion based computer.
Lucida TV II, made by LUCIDQ inc, is a nettop based on Nvidia Ion chipset which can be ordered with Xubuntu and XBMC software installed.
Pulse-Eight Limited sells both custom and off-the-shelf hardware primarily designed for Kodi-XBMC, such as remote controls, HTPC systems and accessories, including a custom HTPC PVR set-top-box pre-installed with XBMC that they call "PulseBox" Pulse-Eight also offers free performance tuned embedded versions of XBMC that they call "Pulse" which is based on OpenELEC and a custom PVR-build of XBMC that is meant to run on a dedicated HTPC system.
Xtreamer Ultra and Xtreamer Ultra 2, manufactured by the South Korean company Unicorn Information Systems, are nettops based on Nvidia graphics and Intel Atom processors which come with OpenELEC and Kodi-XBMC software pre-installed. The first-generation Xtreamer Ultra uses Nvidia Ion chipset with a 1.80 GHz dual-core Intel Atom D525 CPU, while the Xtreamer Ultra 2 uses discrete GeForce GT 520M graphics with a 2.13 GHz dual-core Intel Atom D2700 CPU.
Since 10 September 2010, ZOTAC has been shipping a software bundle that they call ZOTAC Boost XL with all their new motherboards and Mini-PCs, such as Zotac's ZBOX and MAG series of Nettops which Zotac also does demos of with XBMC. This ZOTAC Boost XL software bundle consist of the software applications; Auslogics BoostSpeed, Cooliris, Kylo (HDTV-optimized Web Browser), and XBMC Media Center.
Zotac's ZBOX and MAG series of small mini-PCs are nettops based on Intel, AMD, or Nvidia graphics, and they are all sold in both as complete ready-to-use computer and as barebone computers (without memory and hard drive). Zotac Zbox ID33, ID34, ID81, ID80 and AD04 are all specifically marketed towards the HTPC market, with some coming with slot-loading Blu-ray Disc optical disc drive, and some with a remote control.
The mintBox by the Linux Mint team is an OEM version of the Israeli company CompuLab's fit-PC, which comes pre-installed with Linux Mint open source operating-system and software, MATE desktop, and XBMC. Available in two fanless models, both with AMD APUs, HDMI output port, eight USB slots, two eSATA ports, Gigabit Ethernet, 802.11 b/g/n Wi-Fi, built-in Bluetooth, and an infrared media center remote control.

### Dedicated devices

PrismCube Ruby by Marusys is a DVB-S2 twin-tuner high-definition DVR-PVR set-top-box running XBMC as its main interface on-top of embedded Linux.
The Little Black Box is a Linux kernel-based ARM media player with XBMC as its main interface.
Marusys MS630S and MS850S are high-definition PVR-ready set-top-boxes with the ability to run Linux kernel-based media players like XBMC, and Marusys is advertising these two devices as compatible with XBMC.
Myka ION is a fanless Nvidia Ion-based set-top device designed to bring Internet television and media stored on the home network to the living room; it comes pre-installed with XBMC Media Center, Boxee, and Hulu Desktop as applications that can be started from the main menu.
The MK-X1 by Modified Konstructs is an Nvidia Ion-based set-top device based on Acer Aspire Revo that comes pre-loaded with XBMC, and the device has a recommended retail price of $300 (US).
Neuros LINK made by Neuros Technology is an open Ubuntu-based set-top device and media extender designed to bring internet television and other video to the television, it comes pre-installed with XBMC Media Center.
BryteWerks Model One Projector is a 1080p HD digital video projector designed for home cinema use; it has an integrated home theater PC running a custom version of XBMC. In addition it features a remote control, as well as a 720p 8.9-inch touch screen panel display on the back of the projector for controlling the system. It also has a built-in Wi-Fi and Ethernet adapters, as well as a slot-loaded Blu-ray Disc player, and includes a 500 GB solid-state drive and an additional internal 2 TB hard disk drive can be added.
The Primus by Mediaimpact Technologies is a Linux Mint-based media center and set-top-box that integrates MythTV, Netflix Desktop, Hulu Desktop, and Steam Gaming through Kodi for a seamless home entertainment system ready for the living room. It comes complete with SMK-Link remote control.

## Derivatives and forks

Kodi/XBMC media center source code have over the years become a popular software to fork and to use as an application framework platform for others to base their own media player or media center software on, as if Kodi were a GUI toolkit, windowing system, or window manager. And today at least Boxee, Plex, Tofu, MediaPortal, LibreELEC, OpenELEC, OSMC, GeeXboX, Voddler, DVDFab Media Player, and Horizon TV are all separate derivative products that are all openly known to at least initially have forked the graphical user interface (GUI) and media player part of their software from XBMC's source code. Many of these third-party forks and derivative work of Kodi-XBMC are said to still assist with submitting bug fixes upstream and sometimes help getting new features backported to the original Kodi-XBMC project so that others can utilize it as well, shared from one main source. However some which was initially a fork of XBMC have since fully or partially been rewritten to use closed source proprietary software. For more information see the main "List of software based on XBMC" article.
Some examples on building on Kodi-XBMC are LibreELEC, OSMC, OpenELEC and GeeXboX which are free and open source embedded operating systems providing complete media center software suite that comes with a preconfigured version of Kodi/XBMC and DVR/PVR plugins. They are both designed to be extremely small and very fast booting embedded Linux-based distributions, primarily optimized to be booted from flash memory or a solid-state drive, and specifically targeted to a minimum set-top box hardware setup based on ARM SoC's or Intel x86 processor and graphics.
Similar embedded Linux distributions to LibreELEC/OpenELEC/GeeXboX are the professionally made E2BMC and OpenPCTV which are commercial Kodi/XBMC-based software platform for DVR/PVR set-top boxes, with both being designed as a hybrid integration between Kodi media center software and Dreambox's Enigma2 PVR software scripts.
Another example is XBMC4Xbox, which is a third-party developer spin-off project of XBMC, with still active development and support of the Xbox platform. This project was created as a fork of XBMC as a separate project to continue having a version of XBMC for the Xbox hardware platform. It was not started by official members of the official XBMC project, nor will it be supported by the official Team Kodi in any way. It started when support for the Xbox branch was officially dropped by Team XBMC, which was announced on 27 May 2010.

## Programming and developing

Kodi is a non-profit and free software community driven open-source software project that is developed only by volunteers in their spare time without any monetary gain. XBMC Foundation and the team of developers leading the development of Kodi/XBMC, "Team-Kodi"/"Team-XBMC", encourage anyone and everyone to submit their own source code patches for new features and functions, improve existing ones, or fix bugs to the Kodi/XBMC project.
The online user manual is wiki-based and community driven, and it also works as a basic developers' guide for getting a good overview of Kodi's architecture. However, as with most non-profit software projects, to delve deeper into programming, looking at the actual source code and the Doxygen formatted "code documentation" comments inside that code is needed.

### Architecture

Kodi is a cross-platform software application whose core is mainly programmed in C++. Kodi uses OpenGL (or OpenGL ES) graphics rendering under Kodi for both Linux and macOS, while Kodi for Windows uses Microsoft DirectX multimedia framework and Direct3D rendering, as the Xbox version of XBMC did. Some of Kodi's own libraries, as well as many third-party libraries that Kodi depends on, are written in the C programming-language, instead of C++ as Kodi's core, but they are then mostly used with a C++ wrapper and, through Kodi's core monolithic nature, are loaded via a dynamic linker loader for on-demand loading and unloading at run time. Kodi also still partially uses the SDL (Simple DirectMedia Layer) multimedia framework for input on Linux, but its developers are working on completely removing that small remaining dependency on SDL.
Because of Kodi/XBMC's origin with the resource constraints on the hardware and environment of the first-generation Xbox game-console platform, all software development of Kodi/XBMC has always been focused on reserving the limited resources that existed on embedded system hardware, like the original Xbox (which was only a 733 MHz Intel Pentium III and 64 MB of RAM in total as shared memory), as well as the still relatively low resources of embedded system devices today, of which the main hindrance has always been the amount of available system RAM and graphics memory at any one time. This means that Kodi/XBMC is purposely programmed to be very resource- and power-efficient and can therefore run on very low-end and relatively non-expensive hardware, especially when compared to other media center software design for HTPC use.
But because of its origins from the Xbox game-console, Kodi/XBMC's legacy graphics renderer still runs in a more game-loop rendering environment rather than using a fully event-driven and on-demand rendering, meaning that it is almost constantly re-drawing the GUI and refreshing the frames as fast as it can, even when nothing is changing on the screen. This results in very high CPU and high GPU usage, which can be observed on embedded systems and low-end machines, and hence cause high temperatures, high fan activity, and high power consumption unless capped at a maximum frame per second configuration for that specific platform build. Work is however constantly ongoing by the developers to make Kodi/XBMC run using much fewer resources on low-power and embedded systems, which will indirectly benefit all non-embedded systems as well. Efficiency improvements in this area are however being worked on in order to move away from that old style game-loop environment in order to reduce high CPU/GPU usage by the GUI, especially as XBMC usage on embedded platforms with limited CPU/GPU resources keeps growing in popularity. XBMC 11.0 (Eden) introduced Dirty-Regions rendering option for texture support to the XBMC skinning engine as an option, and XBMC 12.0 (Frodo) enabled Dirty Regions rendering to redraw the whole screen on a single dirty region by default on all platforms. Work is also in progress for XBMC 14.0 to introduce an abstracted scene-graph deferred rendering for GUI renderer abstraction.

#### Portability

Kodi has a portable code base, with its trunk (mainline source code tree) officially available for IA-32/x86, x86-64, PowerPC, and ARM-based platforms. The Kodi GUI does require 3D hardware accelerated graphics (GPU) that support OpenGL ES, OpenGL, or EGL, or Direct3D with device drivers that support OpenGL ES 2.0, or OpenGL 1.3 or later with GLSL, or DirectX in order to render the GUI at an acceptable frame rate.
Kodi is thus officially not yet available for MIPS upstream in mainline source code repository from Team-Kodi, nor does it as yet support DirectFB or DRI (Direct Rendering Infrastructure) rendering without OpenGL/GLES hardware accelerated graphics support. The combination of MIPS, DirectFB, and DRI is a popular architecture used today by simpler set-top boxes like digital broadcasting (cable/satellite) boxes and low-end digital media players, such as those based on MIPS architecture chipsets from Sigma Designs or Realtek. Kodi ports to MIPS is, however, currently being actively worked on by several independent development teams.
Kodi for Linux supports toolchain building systems for embedded development such as Yocto, Buildroot (uClibc), and the Linaro set of Makefiles and patches for easing the generation of cross-compilation toolchains as well as the creation of a file system on embedded Linux systems across a wide range of hardware, kernel platforms, and CPU architectures (x86, x86-64, ARM, MIPS, PowerPC, etc.).

### Python scripts as plugins and addons (widgets and gadgets)

Kodi allows developers to create addons using a built-in Python interpreter) and its own WindowXML application framework, which together form an XML-based widget toolkit for which they can extend the capability of Kodi by creating a GUI for widgets. Python widget scripts allow non-developers to themselves create new add-ons for Kodi, using Python.

### Application programming interface (API)

Other than the application programming interfaces (APIs) available to third-party Python scripts and addon plugins, Kodi features several other APIs for controlling Kodi remotely or from an external application. These APIs includes a JSON-RPC server, D-Bus Server, Web server, UPnP AV media server (with UPnP MediaServer ControlPoint, UPnP MediaRenderer DCP, UPnP RenderingControl DCP, and UPnP Remote User Interface server), and a custom multi-protocol Event Server for remote controls.

### GUI-engine and skinning (themes)

Kodi/XBMC is noted as having a very flexible GUI toolkit and robust framework for its GUI. With its underlying complex graphical design and layout library (named libGUI in Kodi/XBMC), it provides a simple abstraction layer between the application code and the interface, while allowing extremely flexible dynamic layouts and animations that are easy to work with and makes it possible to create completely unique skins for XBMC. The skin files are written in XAML, using a standard XML base, making theme-skinning and personal customization very accessible.

## Software limitations

Kodi's own internal cross-platform video and audio players (DVDPlayer and PAPlayer) cannot officially play any audio or video files that are protected or encrypted with digital rights management (DRM) technologies for access control, meaning audio files purchased from online music stores such as iTunes Music Store, Audible.com, Windows Media Player Stores, and video files protected with Windows Media DRM or DivX proprietary DRM. Such files can be played only by using another media player supporting DRM, or by removing the DRM protection from the file.

## Reception

Kodi won a Lifehacker Award in 2014 for "Best Media Player" in their entertainment selection. Kodi won two SourceForge 2006 Community Choice Awards. In the 2007 Community Choice Awards, Kodi was nominated finalist in six categories. Also in the 2008 Community Choice Awards Kodi won an award for Best Project for Gamers. With Microsoft's decision to discontinue Windows Media Center (WMC) starting Windows 10, htpcBeginner.com voted Kodi not only as the best WMC alternative but also in many ways better than WMC.

## History

On 13 December 2003, Xbox Media Player (XBMP) development stopped, by which time its successor, Xbox Media Center (XBMC), was ready for its debut, renamed as it was growing out of its 'player' name and into a 'center' for media playback.
On 29 June 2004, the first stable release of XBMC was out, with the official release of Xbox Media Center 1.0.0. This announcement also encouraged everyone using XBMP or XBMC Beta release to update, as all support for those previous versions would be dropped, and they would only support version 1.0.0. Not featured in XBMP, the addition of embedded Python was given the ability to draw interface elements in the GUI, and allowed user and community generated scripts to be executed within the XBMC environment.
In the middle of 2004, with the release of 1.0.0, work continued on the XBMC project to add more features, such as support for iTunes features like DAAP and Smart Playlists, as well as many improvements and fixes.
On 18 October 2004, the second stable release of XBMC, 1.1.0, was out. This release included support for more media types, file types, container formats, as well as video playback of Nullsoft streaming videos and karaoke support (CD-G).
On 29 September 2006, after two years of heavy development, XBMC announced a stable point final release of XBMC 2.0.0. Even more features were packed into the new version with the addition of RAR and zip archive support, a brand new player interface with support for multiple players. Such players include PAPlayer, the new audio/music player with crossfade, gapless playback and ReplayGain support, and the new DVDPlayer with support for menu and navigation support as well as ISO/img image parsing. Prior to this point release, XBMC just used a modified fork of MPlayer for all of its media needs, so this was a big step forward. Support for iTunes 6.x DAAP, and UPnP Clients for streaming was also added. A reworked Skinning Engine was included in this release to provide a more powerful way to change the appearance of XBMC. The last two features include read-only support for FAT12/16/32 formatted USB mass storage devices, and a "skinnable" 3D visualizer.
On 12 November 2006, the release of XBMC 2.0.1 contained numerous fixes for bugs that made it through the 2.0.0 release. This also marked the change from CVS to SVN (Subversion) for the development tree.
On 29 May 2007, the team behind XBMC put out a call for developers interested in porting XBMC to the Linux operating system. A few developers on Team-XBMC had already begun porting parts of XBMC over to Linux using SDL and OpenGL as a replacement for DirectX, which XBMC was using heavily on the Xbox version of XBMC.
On 27 May 2010, the team behind XBMC announced the splitting of the Xbox branch into a new project; "XBMC4Xbox" which will continue the development and support of XBMC for the old Xbox hardware platform as a separate project, with the original XBMC project no longer offering any support for the Xbox.
On 2 January 2011, XBMC moved the source code repository from subversion to git, hosted at GitHub.
Development on the Git codebase is continuing and the versioning scheme has been changed to reflect the release year and month, e.g., 8.10, 9.04, 9.11, 10.05.
On 1 August 2014, an announcement was made of release 14 and name change to Kodi.
On 19 February 2021, version 19 of Kodi is released.

## Organization and licensing

The XBMC Foundation is the organization behind the Kodi and XBMC projects. It is legally represented by the Software Freedom Law Center (SFLC), which assists the Kodi/XBMC project and its developers in legal matters such as intellectual property. It also assists with economic issues such as handling donations and sponsors that help the project with expenses for dedicated hosting service and activities such as going to developer conferences, trade fairs and computer expos to tech demo Kodi, meeting with potential new developers, and marketing the software.
Kodi's source code is primarily licensed under GNU General Public Licenses, XBMC core is specifically released as "GPL-2.0-or-later", and is hosted through publicly available Git repositories. Add-ons, plug-ins and additional extensions such as skins that are released as official resources made by the Kodi project members are released under various free and open source licenses.

## Controversies
### Use for illegal streaming

Third-party add-ons allow users to stream copyrighted content without the permission of its copyright holder. Some Kodi distributions and hardware devices, often marketed as "fully loaded", are pre-loaded with the software and such add-ons. As a result, some users have incorrectly associated these products and add-ons as being affiliated with the Kodi project. In June 2015, Amazon Appstore pulled Kodi, as it can be "used to facilitate the piracy or illegal download of content", even though the software is not bundled with such content. XBMC Foundation president Nathan Betzen disagreed with the assumption, stating that "We always say we don't care what our users do with the software, and we stand by that position. But we sure do hate it when companies destroy the name of our software in order to make a profit." He also considered it ironic that Amazon would ban the app, given that it, in his opinion, helped to bolster the popularity of Amazon Fire TV products. In December 2015, the Amazon Fire TV Stick experienced a stock shortage in the United Kingdom that was speculated to have been associated with its use with Kodi. It was also pointed out that Amazon still distributed Kodi distributions with infringing add-ons via the same storefront. As of February 2019 the ban still appears to be in effect.
In February 2016, the XBMC Foundation reiterated its stance on third-party Kodi products meant for the streaming of unlicensed content; Betzen explained that the reputation of the Kodi project had been hurt by its association with third-party products whose sellers "make a quick buck modifying Kodi, installing broken piracy add-ons, advertising that Kodi lets you watch free movies and TV, and then vanishing when the user buys the box and finds out that the add-on they were sold on was a crummy, constantly breaking mess." Betzen warned that although it is open source software, the name "Kodi" and its logos are registered trademarks of the XBMC Foundation, and that the foundation intended to strictly enforce its trademark rights to prevent their unauthorized use, especially in association with information and devices meant to enable access to unlicensed content.
In April 2017, following an April Fools' Day stunt where the Kodi website was taken down and replaced with a fake domain seizure notice, Kodi's developers stated that they were considering working with legal third-party content providers to officially support their services within Kodi, to counter the perception that the software is primarily used for piracy.
In March 2018, Google removed "Kodi" from its autocomplete search query, citing that the term was associated with copyright infringement, but failed to remove autocomplete terms for modified, piracy-focused versions of Kodi (that, unlike Kodi, are illegal).