XBMC will be renamed to Kodi for v14. Read here for more details

XBMC databases, Intro FAQ

From Kodi
(Difference between pages)
Jump to: navigation, search
(files)
 
m (Enabled TOC again)
 
Line 1: Line 1:
{{Cleanup}}
+
{{XBMC wiki toc Inline}}
{{incomplete}}
+
__TOC__
XBMC uses [http://www.sqlite.org/ SQLite], an open source light-weight SQL database-engine, to store all its library related data ([[Music Library|Music]], [[Video Library|Video]], and Program databases). By default, the database files (*.db) are stored in [[The UserData Folder]], specifically in userdata/Database.
+
__NOEDITSECTION__
 +
==What is XBMC?==
  
In addition to indexing media files when activated by user-selected Content settings, XBMC also puts a video in its database if you change any OSD setting while watching it. Resume points are stored in this database as well.
+
XBMC (formerly "Xbox Media Center") is a free, [http://www.gnu.org/copyleft/gpl.html open source (GPL)] multimedia player that runs on the [http://en.wikipedia.org/wiki/Xbox Microsoft Xbox™], as well as on PCs running Linux, Mac OS X, and Windows. The software is in the process of being ported from its original Xbox version, and currently some platforms are not yet feature-complete.
These entries are added to the database whether the affected video is part of the Video Library or not.
+
  
 +
==What can XBMC do?==
  
== Using the Databases ==
+
*XBMC can be used to play/view the most popular video, audio, and picture formats, and many more lesser-known formats, including:
The XBMC databases are automatically maintained whenever you use XBMC. You can activate the most powerful database functionality by setting the Content property on all of your media sources, and using XBMC Library Mode. This view mode allows you to browse your media based on the details available in the databases, rather than using simple folder and filenames for details. You can read more about Library Mode for [[Music Library|Music]] and [[Video Library|Video]] files on their respective pages.
+
  
Since XBMC maintains the databases on its own, the only time a developer really needs to access the databases is for display information. The following sections discuss how you can access the information contained in the XBMC databases, and give some brief examples of how to use it.
+
* ''Video'' - DVD-Video, VCD/SVCD, MPEG-1/2/4, DivX, XviD, Matroska
 +
* ''Audio'' - MP3, AAC.
 +
* ''Picture'' - JPG, GIF, PNG.
  
=== Building SQL Queries ===
+
These can all be played directly from a CD/DVD, or from the hard-drive. XBMC can also play multimedia from a computer over a [http://en.wikipedia.org/wiki/Local_area_network local network] (LAN), or play media streams directly from the Internet.  
SQLite queries can be incredibly powerful (and extraordinarily complicated). If you are not already familiar with SQL syntax, it would probably be a good idea to check out a general tutorial, such as [http://www.1keydata.com/sql/sql.html this one].
+
  
For most XBMC development projects, you're going to be doing select statements. "Select" is a SQL command used to gather data (in the form of "rows") out of a SQL database. Your select statement will include:
+
*XBMC can play DVD-Video movies (with and without menus) from ISO/IMG images and even ZIP/RAR-archives.  
 +
*XBMC has playlist and slideshow functions, a weather forecast feature and many audio visualizations.
 +
*XBMC can in addition run [http://en.wikipedia.org/wiki/Python_(programming_language) python-scripts] written for XBMC as plugin widgets.
 +
*XBMC has a simple user interface that's pleasant and easy to use.
  
* A list of all the data fields (columns in the database table) you want for each row.
+
All these features enable your device to function as a full multimedia jukebox.  
* A list of all the tables you need to get information from
+
* A list of comparisons used to narrow down your results. This last component is optional, but it makes sure your results are relevant and is often used to link database entries across multiple tables.
+
  
Below are a few sample select statements, so you can see how it works.
+
'''Notes'''
 +
*XBMC is a non-profit hobby project that is only developed by volunteers in their spare time, for free.
 +
*To run XBMC on an Xbox, you must have a  [http://en.wikipedia.org/wiki/Xbox#Modding_the_Xbox modded Xbox] to run on or it will not function (see [http://en.wikipedia.org/wiki/Modchip modchip] or [http://www.xbox-scene.com/xbox-tutorials.php?p=151|#151 software exploit/hack]).
 +
*For a complete list a functions and features see the [[XBMC_Features_and_Supported_Formats/Codecs| supported features/formats list here]].
  
This query grabs all of the information for every movie in the Video Library.
+
==What features does XBMC have?==
<pre><nowiki>select * from movie</nowiki></pre>
+
See the [[XBMC_Features_and_Supported_Formats/Codecs| complete list of supported features]].
Note that "*" is used to indicate all fields. Also,there is no "where" clause in this statement, so it returns every row in the table.
+
  
This query narrows down the results to just those movies released in 2007.
+
===Does XBMC support or feature ''this'' and ''that'' function...?===
<pre><nowiki>select * from movie where c07 = 2007</nowiki></pre>
+
See the [[XBMC_Features_and_Supported_Formats/Codecs| complete list of supported features/formats here]] or try it yourself and find out!
Note that the column containing the movie's release year is labelled simply "c07." The tables further down this page help you find out which columns contain the information you're looking for.
+
  
This query example is more semantic. Lists your movies including, in this order, internal ID, internal file ID, rating, movie year, IMDB ID, movie name and movie plot.
+
You might also want to look in the [[Xbox_Media_Center_Online_Manual|manual]].
<pre><nowiki>select idMovie,idFile,c05,c07,c09,c00,c03,c02 from movie;</nowiki></pre>
+
  
Now the following query is a bit more complex because it joins 3 movie-related tables ([[movie]], [[files]] and [[path]]) to list a single useful view of your movies. In human language it lists movie ID, movie year, IMDB rating, IMDB ID, movie name and full path of the movie file, ordered by IMDB rating with highest rating appearing first:
+
===Exactly which media formats  can XBMC play? ===
<pre><nowiki> select idMovie,c07,c05,c09,c00,path.strPath||files.strFilename from movie, files,path where movie.idFile=files.idFile and files.idPath=path.idPath order by c05 desc;</nowiki></pre>
+
See the [[XBMC_Features_and_Supported_Formats/Codecs| complete list of supported features/formats here]], if it is not listed there then XBMC does not support it (yet)!
  
You could also use less than or greater than symbols to get newer or older movies.
+
==== What media codec versions can XBMC play? ====
 +
Again, See the [[XBMC_Features_and_Supported_Formats/Codecs| complete list here]]
  
This query gets just the path and filename of all of the video files from season two of Chuck.
+
==Does XBMC support High Definition (HD) resolution media? ==
<pre><nowiki></nowiki></pre>
+
Yes and no, but the answer is a little more complicated than that, see bellow:
If you're not familiar with SQL queries, this query probably looks pretty complicated. It serves as a good demonstration of why there are so many tables in the list below, and how to use them. Many of the elements of a TV show's path and filename and used repeatedly, so SQL allows us to save space and speed up our searches by storing each of those elements just once, in one place, and referencing them repeatedly by the same ID.
+
===XBMC for XBox===
 +
In general, XBMC running on a standard Xbox '''cannot''' play native [http://en.wikipedia.org/wiki/High-definition_video HD] format videos, but '''can''' upscale standard definition or lower format video to HD resolutions.
  
In this case, the root path that contains your video files is a long string that repeats at the beginning of many files. The name of a TV series, too, is repeated in every single episode of that series, so it makes the most sense to save the series name once (along with all information relevant to the series). We do that in the table tvshow, and every episode of the TV show can access all of that information using just the TV show's ID.
+
The XBox's 733Mhz Intel Pentium-III CPU, is too slow to play [http://en.wikipedia.org/wiki/High-definition_video native HD] video (Microsoft® and DivX® recommends a 2.4 Ghz PC + 384MB RAM for 720p MPEG-4 playback!). This means that you might only get maybe 10-20fps (frames per second) displayed, which will appear jerky and un-viewable.
  
=== Accessing the Databases with a SQLite application ===
+
On a standard XBox the following HD formats are supported:
Database files can be transferred via FTP to a Windows-based computer and edited or analysed with a SQLite graphical client. XBMC's version of the database engine should be compatible with the standard clients such as [http://sqlitebrowser.sourceforge.net SQLiteBrowser] or [http://bobmanc.home.comcast.net/sqlitecc.html SQLiteCC], (more available management-tools can be found in [http://www.sqlite.org/cvstrac/wiki?p=ManagementTools sqlite.org WIKI]).<br />
+
* 480i/480p/576i/576p output at 480p (Not Scaled).
We recommend you use [http://www.yunqa.de/delphi/doku.php/products/sqlitespy/index SQLiteSpy version 1.5.2] or higher.
+
* 480i/480p/576i/576p output at 720p (Upscaled).
* [[HOW-TO: Use your computer to edit XBMC's (SQL) database-files]].
+
* 480i/480p/576i/576p output at 1080i (Upscaled).
  
These applications are generally quite powerful. Once you find one you like, you can easily browse the XBMC databases. This is probably the best way to make modifications to the Video or Music Library.
+
The following video resolutions are '''NOT''' supported, at any output resolution:
 +
* 720p
 +
* 1080i
  
=== Accessing the Databases with XBMC Python ===
+
==== Upgraded Processor ====
Many Python plugins (and some scripts) can use the information in the XBMC database to offer users additional convenience and functionality. The easiest way to access the XBMC database via XBMC Python is using [[JSON RPC]]
+
It is possible to upgrade the processor in an Xbox (for example, with the [http://www.friendtech.com DreamX-1400 from FriendTech], to one which is at capable of decoding some native HD videos
 +
(i.e. those encoded with MPEG-2 or MPEG-4 ASP (H.263) at up to 720p).
 +
[http://www.upgrade123.com/catalog/index.php FriendTech do offers trade-in]). Note! You must enable/setup your HDTV settings in Microsoft dashboard, (on NTSC Xboxes).
  
== The Music Library ==
+
=== XBMC for Linux, XBMC for Mac, and XBMC for Windows ===
This database contains all information concerning music files that you've added to the Music Library. It is used in the Music portion of XBMC. The following information is for version 32.
+
Since the components in a personal computer running Linux, Mac or Windows operating systems can be upgraded, the limit of resolution that XBMC is able to playback will be dependent on the exact hardware in that system. Note however that the primary dependency is the CPU, because XBMC uses software decoding for all video streams.
  
The music database is stored in userdata/Database/MyMusicXX.db, where XX is the version number.
 
  
=== Views ===
 
Views are standard queries, often long or complicated queries saved in the database for convenience. The views below allow you to easily access all the information about songs and albums in the Music Library, across all the linking tables.
 
  
==== albumview ====
+
===Does XBMC support Blu-ray or HD DVD playback with out without menus?===
A view that joins album to artist, genre, thumb, and albuminfo.
+
No. There is not yet any C/C++ open source software out there yet capable of fully playing back Blu-ray or HD DVD so we can not add the code from somewhere in any case. [http://www.ffmpeg.org FFmpeg (the open source codec-suit that XBMC uses)] will probably relativly soon be able to decode all audio and video codecs used in both Blu-ray and HD DVD, but even when that happens you
{|class="wikitable"
+
still have to get around the DRM encryptions used by the disc formats and there is not yet any C/C++ open source software library capable of that on-the-fly, nither is there any C/C++ open source software library out there capable of displaying Blu-ray or HD DVD menus. XBMC need C/C++ open source software libraries for all of these things to fully support Blu-ray or HD DVD playback.
! Column Name || Data Type || Description
+
|-
+
|idAlbum || integer || ID from Album Table
+
|-
+
|strAlbum || varchar(256) || Album Name
+
|-
+
|strArtists || text || Album Artists
+
|-
+
|strGenres || text || Album Genres
+
|-
+
|iYear || integer || Album Release Year
+
|-
+
|idAlbumInfo || integer || ID from AlbumInfo Table
+
|-
+
|strMoods || integer || [unknown]
+
|-
+
|strStyles || text || [unknown]
+
|-
+
|strReview || text || [unknown]
+
|-
+
|strLabel || text || [unknown]
+
|-
+
|strType || text || [unknown]
+
|-
+
|strImage || text || [unknown]
+
|-
+
|iRating || integer || [unknown]
+
|-
+
|bCompilation || integer || [unknown]
+
|-
+
|iTimesPlayed || integer || # of Times Played
+
|}
+
  
==== artistview ====
+
==Where can I suggest/request a new feature or function to be implemented into XBMC?==
A view that joins artist to artistinfo.
+
You can log a NEW feature/function request in our [http://trac.xbmc.org RFE Request Feature Tracking System], (we recommend you [http://forum.xbmc.org/register.php register] and login on our [http://trac.xbmc.org Trac] tracking-system, if you are already registered on on the [http://forum.xbmc.org XBMC Community Forum] then know it is the same login so no need to re-register). Just make sure that you first remember to search for existing "Feature Requests" before logging a new request! You should take note that we guesstimate that 99% of all ''new'' requests XBMC users post have already been requested before so it is imperative that you search thoroughly! You may also post a copy of your suggestion in the feature-suggestion section of our community-forums if you want it open for discussion, however, again you must search there too before you can post, (we do not enjoy reorganising duplicate posts). Please respect that your request only counts as a suggestion, there' s no guarantee that it will implemented soon or ever. Known that almost all users think their own ideas is the most important, and a very common comment is: "''if you only add these features then XBMC will be perfect for me''". Note! Only one feature per [http://trac.xbmc.org RFE Request] and Forum Thread is allowed (for easier manageability).
{|class="wikitable"
+
! Column Name || Data Type || Description
+
|-
+
|idArtist || integer || ID from Artist Table
+
|-
+
|strArtist || varchar(256) || Artist Name
+
|-
+
|strBorn || text || [unknown]
+
|-
+
|strFormed || text || [unknown]
+
|-
+
|strGenres || text || [unknown]
+
|-
+
|strMoods || text || [unknown]
+
|-
+
|strStyles || text || [unknown]
+
|-
+
|strInstruments || text || [unknown]
+
|-
+
|strBiography || text || [unknown]
+
|-
+
|strDied || text || [unknown]
+
|-
+
|strDisbanded || text || [unknown]
+
|-
+
|strYearsActive || text || [unknown]
+
|-
+
|strImage || text || [unknown]
+
|-
+
|strFanart || text || [unknown]
+
|}
+
  
==== songview ====
+
==When will ''this'' and ''that'' feature or function be supported by XBMC?==
A view that joins song to album, path, artist, genre, thumb, and karaokedata.
+
XBMC development is driven by the tasks that are important to the individual developers, none of whom are paid for what they do on the project. If there is a feature that is important to you, the best way to get it implemented is to undertake the task yourself, otherwise you have no rights to demand new ''things'' to be implemented and get no guarantees that some specific ''thing'' will be prioritized before something else. You may however suggest/request for ''things'' and if you ask nicely. Please respect that your request only counts as a suggestion, there' s no guarantee that it will implemented soon or ever. Known that almost all users think their own ideas is the most important, and a very common selfish comments are: "''if you only add these features then XBMC will be perfect for me''" and "''I think you should prioritize my idea over anything else''". If you make a good argument and present it in a smart way then developer might then like your idea and implement the ''thing'' you asked for.
{|class="wikitable"
+
! Column Name || Data Type || Description
+
|-
+
|idSong || integer || ID from Song Table
+
|-
+
|strArtists || text || Song Artists
+
|-
+
|strGenres || text || Song Genres
+
|-
+
|strTitle || varchar(512) || Song Title
+
|-
+
|iTrack || integer || Song Track Number
+
|-
+
|iDuration || integer || Song Duration in seconds
+
|-
+
|iYear || integer || Song's Release Year
+
|-
+
|dwFileNameCRC || text || [unknown]
+
|-
+
|strMusicBrainzTrackID || text || Song's MusicBrainz Track ID
+
|-
+
|strMusicBrainzArtistID || text || Song's MusicBrainz Artist ID
+
|-
+
|strMusicBrainzAlbumID || text || Song's MusicBrainz Album ID
+
|-
+
|strMusicBrainzAlbumArtistID || text || Song's MusicBrainz Album Artist ID
+
|-
+
|strMusicBrainzTRMID || text || [unknown]
+
|-
+
|iTimesPlayed || integer || # of Times Played
+
|-
+
|iStartOffset || integer || [unknown]
+
|-
+
|iEndOffset || integer  || [unknown]
+
|-
+
|idThumb || integer || [unknown]
+
|-
+
|lastplayed || varchar(20) || Date & Time Last Played
+
|-
+
|rating || char || Song Rating
+
|-
+
|comment || text || Song Comment
+
|-
+
|idAlbum || integer || ID from Album Table
+
|-
+
|strAlbum || varchar(256) || Album Name
+
|-
+
|strPath || varchar(512) || Media Path
+
|-
+
|iKaraNumber || integer || [unknown]
+
|-
+
|iKaraDelay || integer || [unknown]
+
|-
+
|strKaraEncoding || text || [unknown]
+
|-
+
|bCompilation || integer || [unknown]
+
|-
+
|strAlbumArtists || text || Album Artists
+
|}
+
  
=== Tables ===
+
Meanwhile, we recommend that you read this article on [http://www.catb.org/%7Eesr/faqs/smart-questions.html How To Ask Questions The Smart Way]. Arrogant and 'pushy' people will most likely just be ignored (or even banned if they step over the line which we consider to be acceptable).
  
==== album ====
+
If you are thinking of contributing code to the project, please see "[[Appendix D: Development Notes]]".
This table contains basic album information.
+
  
{|class="wikitable"
+
==Can I update the audio/video codecs in XBMC myself?==
! Column Name || Data Type || Description
+
No. XBMC relies on a built-in open source codec suit called [http://www.ffmpeg.org FFmpeg]. XBMC codecs get updated on a regular basis by the developers of Team-XBMC when FFmpeg programmers add support for newer or updated codecs and file containers. Please see [[Codec and Format requests]] for more information.
|-
+
|idAlbum || integer || Primary Key
+
|-
+
|strAlbum || varchar(256) || Album Name
+
|-
+
|strArtists || text|| Artist Name
+
|-
+
|strGenres || text || Album Genre
+
|-
+
|iYear || integer || Album Year
+
|-
+
|idThumb || integer || Foreign key to [[The XBMC Database#thumb(music)|thumb table]]
+
|-
+
|bCompilation || integer || [unknown]
+
|}
+
  
==== album_artist ====
+
==Where can I request/suggest a new codec-decoder or file-format to be implemented into XBMC?==
{|class="wikitable"
+
The answer (and explanation) to this question is so long that we had to put it in separate page, see; [[Codec and Format requests]].
! Column Name || Data Type || Description
+
|-
+
|idArtist || integer || Primary Key
+
|-
+
|idAlbum || integre || Foreign key to [[The XBMC Database#album|album table]]
+
|-
+
|boolFeatured || integer || [unknown]
+
|-
+
|iOrder || integer || [unknown]
+
|}
+
  
==== album_genre ====
+
==When will ''this'' and ''that'' codec-decoder or file-format be added and supported by XBMC?==
This links albums with their genres.
+
The answer (and explanation) to this question is so long that we had to put it in separate page, see; [[Codec and Format requests]].
{|class="wikitable"
+
! Column Name || Data Type || Description
+
|-
+
|idGenre || integer || Foreign key to [[The XBMC Database#genre(music)|genre(music) table]]
+
|-
+
|idAlbum || integer || Foreign key to [[The XBMC Database#album|album table]]
+
|-
+
|iOrder || integer || [unknown]
+
|}
+
  
==== albuminfo ====
 
This table contains additional information about an album, such as Rating, Moods, Styles, Reviews, Image URL, and type.
 
{|class="wikitable"
 
! Column Name || Data Type || Description
 
|-
 
|idAlbumInfo || integer || Primary Key
 
|-
 
|idAlbum || integer || Foreign key to [[The XBMC Database#album|album table]]
 
|-
 
|iYear || integer || Album Year
 
|-
 
|strMoods || text || Album Moods
 
|-
 
|strStyles || text || Album Styles
 
|-
 
|strThemes || text || Album Themes
 
|-
 
|strReview || text || Album Review
 
|-
 
|strImage || text || URL of Album Image
 
|-
 
|strLabel || text || Album Label
 
|-
 
|strType || text || Album Type
 
|-
 
|iRating || integer || Album Rating
 
|}
 
  
==== albuminfosong ====
+
==Is XBMC, The XBMC Project, or Team-XBMC affiliated with Microsoft in any way?==
This table links songs to albums and stores the duration of each track.
+
No, XBMC, The XBMC Project and its members are not in any way affiliated with Microsoft in any way. [http://xbmc.org XBMC] is only a [http://en.wikipedia.org/wiki/Software software program] that is made by [http://www.xbmc.xbox-scene.com/wiki/index.php?title=Team_XBMC_and_Others Team-XBMC] (ie, the members of the [http://sourceforge.net/projects/xbmc The XBMC Project]) as a free [http://en.wikipedia.org/wiki/Third-party_developer third-party] product that any person can install and run on the [http://en.wikipedia.org/wiki/Xbox Xbox™ game-console hardware] (which is manufactured and sold by [http://www.microsoft.com Microsoft Corporation]).
{|class="wikitable"
+
! Column Name || Data Type || Description
+
|-
+
|idAlbumInfoSong || integer || Primary Key
+
|-
+
|idAlbumInfo || integer || Foreign key to [[The XBMC Database#albuminfo|albuminfo table]]
+
|-
+
|iTrack || integer || Track #
+
|-
+
|strTitle || text || Song Title
+
|-
+
|iDuration || integer || Song Duration in seconds
+
|}
+
  
==== art ====
+
XBMC, The XBMC Project (and its members, Team-XBMC) and the services (including developer tools, resources, download areas, files, source code, product information, documentations and communication forums, collectively called "Services") provided by us has nothing to do with [http://www.microsoft.com Microsoft] by any association or affiliation what so ever.
{|class="wikitable"
+
! Column Name || Data Type || Description
+
|-
+
|art_id || integer || Primary Key
+
|-
+
|media_id || integer || [unknown]
+
|-
+
|media_type || text || [unknown]
+
|-
+
|type || text || [unknown]
+
|-
+
|url || text || [unknown]
+
|}
+
  
==== artist ====
+
XBMC is not approved by Microsoft to run on the Xbox, in fact installing/running XBMC on your Xbox may very well void your warranty! [http://www.microsoft.com Microsoft] does however have similar products to XBMC for the Xbox called "[http://www.microsoft.com/Windowsxp/mediacenter/evaluation/devices/xboxextenderkit.mspx Media Center Extender for Xbox]" (a.k.a. "Xbox Media Center Extender Kit") and "[http://www.xbox.com/en-US/games/m/musicmixer/ Xbox Music Mixer]", which are both very limited feature/function-wise in our own humble opinion.
This table stores the name of each artist.
+
{|class="wikitable"
+
! Column Name || Data Type || Description
+
|-
+
|idArtist || integer || Primary Key
+
|-
+
|strArtist || varchar(256) || Artist Name
+
|}
+
  
==== artistinfo ====
 
This table stores relevant information about each artist, such as when they were born, Fan Art URL's, biographical information, etc.
 
{|class="wikitable"
 
! Column Name || Data Type || Description
 
|-
 
|idArtistInfo || integer || Primary Key
 
|-
 
|idArtist || integer || Foreign key to [[The XBMC Database#artist|artist table]]
 
|-
 
|strBorn || text || Artist Birthday
 
|-
 
|strFormed || text || Band Formation Date
 
|-
 
|strGenres || text || Artist Genres
 
|-
 
|strMoods || text || Artist Moods
 
|-
 
|strStyles || text || Artist Styles
 
|-
 
|strInstruments || text || Artist's Instruments
 
|-
 
|strBiography || text || Artist's Biography
 
|-
 
|strDied || text || Artist Date Died
 
|-
 
|strDisbanded || text || Band Disbanded Date
 
|-
 
|strYearsActive || text || Years Artist is Active
 
|-
 
|strImage || text || URL of Artist Image
 
|-
 
|strFanart || text || URL of Fanart
 
|}
 
  
==== content ====
+
[[Category:FAQ]]
This table is related to the scraper.
+
{|class="wikitable"
+
! Column Name || Data Type || Description
+
|-
+
|strPath || text || [unknown]
+
|-
+
|strScraperPath || text || [unknown]
+
|-
+
|strContent || text || [unknown]
+
|-
+
|strSettings || text || [unknown]
+
|}
+
 
+
==== discography ====
+
Links albums to artists with the year produced.
+
{|class="wikitable"
+
! Column Name || Data Type || Description
+
|-
+
|idArtist || integer || Foreign key to [[The XBMC Database#artist|artist table]]
+
|-
+
|strAlbum || text || Album Name
+
|-
+
|strYear || text || Year Album Produced.
+
|}
+
 
+
==== exartistablum ====
+
Links artists to albums
+
 
+
==== exartistsong ====
+
Links artists to songs
+
 
+
==== exgenrealbum ====
+
Links genres to albums
+
 
+
==== exgenresong ====
+
Links genres to songs
+
 
+
==== genre(music) ====
+
This table contains genre titles.
+
{|class="wikitable"
+
! Column Name || Data Type || Description
+
|-
+
|idGenre || integer || Primary Key
+
|-
+
|strGenre || varchar(256) || Genre Name
+
|}
+
 
+
==== karaokedata ====
+
This table contains karaoke specific information for certain songs
+
{|class="wikitable"
+
! Column Name || Data Type || Description
+
|-
+
|iKaraNumber || integer || [unknown]
+
|-
+
|idSong || integer || Foreign key to [[The XBMC Database#song|song table]]
+
|-
+
|iKaraDelay || integer || [unknown]
+
|-
+
|strKaraEncoding || text || [unknown]
+
|-
+
|strKaralyrics || text || [unknown]
+
|-
+
|strKaraLyFileCRC || text || [unknown]
+
|}
+
 
+
==== path(music) ====
+
This table contains paths and hashes of files in the Music Database.
+
{|class="wikitable"
+
! Column Name || Data Type || Description
+
|-
+
|idPath || integer || Primary Key
+
|-
+
|strPath || varchar(512) || Media Paths
+
|-
+
|strHash || text || [unknown]
+
|}
+
 
+
==== song ====
+
This table contains song information such as Name, Track Title, MusicBrainz information, times played, last played, rating, etc.
+
{|class="wikitable"
+
! Column Name || Data Type || Description
+
|-
+
|idSong || integer || Primary Key
+
|-
+
|idAlbum || integer || Foreign key to [[The XBMC Database#album|album table]]
+
|-
+
|idPath || integer || Foreign key to [[The XBMC Database#path|path table]]
+
|-
+
|strArtists || text || Song Artists
+
|-
+
|strGenres || text || Song Genres
+
|-
+
|strTitle || varchar(512) || Song Title
+
|-
+
|iTrack || integer || Song Track Number
+
|-
+
|iDuration || integer || Song Duration in seconds
+
|-
+
|iYear || integer || Song's Release Year
+
|-
+
|dwFileNameCRC || text || [unknown]
+
|-
+
|strMusicBrainzTrackID || text || Song's MusicBrainz Track ID
+
|-
+
|strMusicBrainzArtistID || text || Song's MusicBrainz Artist ID
+
|-
+
|strMusicBrainzAlbumID || text || Song's MusicBrainz Album ID
+
|-
+
|strMusicBrainzAlbumArtistID || text || Song's MusicBrainz Album Artist ID
+
|-
+
|strMusicBrainzTRMID || text || [unknown]
+
|-
+
|iTimesPlayed || integer || # of Times Played
+
|-
+
|iStartOffset || integer || [unknown]
+
|-
+
|iEndOffset || integer  || [unknown]
+
|-
+
|idThumb || integer || Foreign key to [[The XBMC Database#thumb|thumb table]]
+
|-
+
|lastplayed || varchar(20) || Date & Time Last Played
+
|-
+
|rating || char || Song Rating
+
|-
+
|comment || text || Song Comment
+
|}
+
 
+
==== song_artist ====
+
This table links songs to artists.
+
{|class="wikitable"
+
! Column Name || Data Type || Description
+
|-
+
|idArtist || integer || Foreign key to [[The XBMC Database#artist|artist table]]
+
|-
+
|idSong || integer || Foreign key to [[The XBMC Database#song|song table]]
+
|-
+
|boolFeatured || integer || Is Artist Featured on song?
+
|-
+
|iOrder || integer || [unknown]
+
|}
+
 
+
==== song_genre ====
+
This table links the songs with their genre.
+
{|class="wikitable"
+
! Column Name || Data Type || Description
+
|-
+
|idGenre || integer || Foreign key to [[The XBMC Database#genre(music)|genre(music) table]]
+
|-
+
|idSong || integer || Foreign key to [[The XBMC Database#song|song table]]
+
|-
+
|iOrder || integer || [unknown]
+
|}
+
 
+
==== thumb ====
+
{|class="wikitable"
+
! Column Name || Data Type || Description
+
|-
+
|idThumb || integer || Primary Key
+
|-
+
|strThumb || text || [unknown]
+
|}
+
 
+
==== version(music) ====
+
{|class="wikitable"
+
! Column Name || Data Type || Description
+
|-
+
|idVersion || integer || Version of the music database
+
|-
+
|idCompressCount || integer || Number of times database has been compressed
+
|}
+
 
+
== The Video Library ==
+
This database contains all information concerning TV shows, movies, and music videos. It is used in the Videos portion of XBMC.  The following information is for version 75.
+
 
+
The video database is stored in userdata/Database/MyVideosXX.db, where XX is the version number.
+
 
+
=== Views ===
+
Views are standard queries, often long or complicated queries saved in the database for convenience. The views below allow you to easily access all the information about each of the main media types in the Video Library, across all the linking tables.
+
 
+
==== episodeview ====
+
A view that joins episode to file and tvshow (through tvshowlinkepisode) and path.
+
 
+
==== movieview ====
+
A view that joins movie to file and path.
+
 
+
==== musicvideoview ====
+
A view that joins musicvideo to file and path.
+
 
+
==== tvshowview ====
+
View that joins tvshow to path. Also produces information about total number of episodes as well as number of watched and unwatched episodes.
+
 
+
=== Tables ===
+
The information in the Video Library is organized into the following tables. Several large tables (such as [[The XBMC Database#episode|episode]], [[The XBMC Database#movie|movie]], [[The XBMC Database#settings|settings]], and [[The XBMC Database#tvshow|tvshow]]) contain the bulk of the information, while most of the others are used to link a long string to a common ID key.
+
 
+
==== actorlinkepisode ====
+
This table links actors to episodes and stores role information.
+
{|class="wikitable"
+
! Column Name || Data Type || Description
+
|-
+
|idActor || integer || Foreign key to [[The XBMC Database#actors|actors table]]
+
|-
+
|idEpisode || integer || Foreign key to [[The XBMC Database#episode|episode table]]
+
|-
+
|strRole || text || Role the actor played in this episode
+
|}
+
 
+
==== actorlinkmovie ====
+
This table links actors to movies and stores role information.
+
{|class="wikitable"
+
! Column Name || Data Type || Description
+
|-
+
|idActor || integer || Foreign key to [[The XBMC Database#actors|actors table]]
+
|-
+
|idMovie || integer || Foreign key to [[The XBMC Database#movie|movie table]]
+
|-
+
|strRole || text || Role the actor played in this movie
+
|}
+
 
+
==== actorlinktvshow ====
+
This table links actors to TV shows and stores role information.
+
{|class="wikitable"
+
! Column Name || Data Type || Description
+
|-
+
|idActor || integer || Foreign key to [[The XBMC Database#actors|actors table]]
+
|-
+
|idShow || integer || Foreign key to [[The XBMC Database#tvshow|tvshow table]]
+
|-
+
|strRole || text || Role the actor played in this TV show
+
|}
+
 
+
==== actors ====
+
This table stores actor, artist, director, and writer information.
+
{|class="wikitable"
+
! Column Name || Data Type || Description
+
|-
+
|idActor || integer || Primary Key
+
|-
+
|strActor|| integer || Name of the actor, artist, director, or writer
+
|-
+
|strThumb || text || Thumbnail URL
+
|}
+
 
+
==== art ====
+
This table stores URLs for video art metadata.
+
{|class="wikitable"
+
! Column Name || Data Type || Description
+
|-
+
|art_id|| integer || Primary Key
+
|-
+
|media_id|| integer || The id of the media this piece of art is for
+
|-
+
|media_type|| text || The type of media this art applies to - movie, set, tvshow, season, episode, musicvideo or actor
+
|-
+
|type|| text|| The image type - poster, fanart, thumb, banner, landscape, clearlogo, clearart, characterart or discart
+
|-
+
|url|| text || Thumbnail URL
+
|}
+
 
+
==== artistlinkmusicvideo ====
+
This table links artists to music videos.
+
{|class="wikitable"
+
! Column Name || Data Type || Description
+
|-
+
|idArtist || integer || Foreign key to [[The XBMC Database#actors|actors table]]
+
|-
+
|idMVideo || integer || Foreign key to [[The XBMC Database#musicvideo|musicvideo table]]
+
|}
+
 
+
==== bookmark ====
+
This table stores bookmarks, which are timestamps representing the point in a video where a user stopped playback, an explicit bookmark requested by the user, or an automatically generated episode bookmark.
+
{|class="wikitable"
+
! Column Name || Data Type || Description
+
|-
+
|idBookmark || integer || Primary Key
+
|-
+
|idFile || integer || Foreign key to [[The XBMC Database#files|files table]]
+
|-
+
|timeInSeconds || double || Time in seconds of bookmark location
+
|-
+
|totalTimeInSeconds || integer || Time in seconds of the video
+
|-
+
|thumbNailImage || text || Thumbnail for bookmark
+
|-
+
|player || text || Player used to store bookmark
+
|-
+
|playerState || text || Player's internal state in XML
+
|-
+
|type || integer || Type of bookmark (0=standard, 1=resume, 2=episode
+
 
+
|}
+
 
+
==== country ====
+
This table lists countries.
+
{|class="wikitable"
+
! Column Name || Data Type || Description
+
|-
+
|idCountry || integer || Primary Key
+
|-
+
|strCountry || text || Country Name
+
|}
+
 
+
==== countrylinkmovie ====
+
This table links countries to movies.
+
{|class="wikitable"
+
! Column Name || Data Type || Description
+
|-
+
|idCountry || integer || Foreign key to [[The XBMC Database#country|country table]]
+
|-
+
|idMovie || integer ||Foreign key to [[The XBMC Database#movie|movie table]]
+
|}
+
 
+
==== directorlinkepisode ====
+
This table links directors to TV show episodes.
+
{|class="wikitable"
+
! Column Name || Data Type || Description
+
|-
+
|idDirector || integer || Foreign key to [[The XBMC Database#actors|actors table]]
+
|-
+
|idEpisode || integer || Foreign key to [[The XBMC Database#episode|episode table]]
+
|-
+
|strRole || text || [Appears to be unused]
+
|}
+
 
+
==== directorlinkmovie ====
+
This table links directors to movies.
+
{|class="wikitable"
+
! Column Name || Data Type || Description
+
|-
+
|idDirector || integer || Foreign key to [[The XBMC Database#actors|actors table]]
+
|-
+
|idMovie || integer || Foreign key to [[The XBMC Database#movie|movie table]]
+
|}
+
 
+
==== directorlinkmusicvideo ====
+
This table links directors to music videos.
+
{|class="wikitable"
+
! Column Name || Data Type || Description
+
|-
+
|idDirector || integer || Foreign key to [[The XBMC Database#actors|actors table]]
+
|-
+
|idMVideo || integer || Foreign key to [[The XBMC Database#musicvideo|musicvideo table]]
+
|}
+
 
+
==== directorlinktvshow ====
+
This table links directors to TV shows.
+
{|class="wikitable"
+
! Column Name || Data Type || Description
+
|-
+
|idDirector || integer || Foreign key to [[The XBMC Database#actors|actors table]]
+
|-
+
|idShow || integer || Foreign key to [[The XBMC Database#tvshow|tvshow table]]
+
|}
+
 
+
==== episode ====
+
This table stores television episode information. Information concerning the series is stored in [[The XBMC Database#tvshow|tvshow]]. To link an episode to its parent series, use [[The XBMC Database#tvshowlinkepisode|tvshowlinkepisode]].
+
{|class="wikitable"
+
! Column Name || Data Type || Description
+
|-
+
|idEpisode || integer || Primary Key
+
|-
+
|c00 || text ||  Episode Title
+
|-
+
|c01 || text ||  Plot Summary
+
|-
+
|c02 || text ||  [unknown - listed as Votes]
+
|-
+
|c03 || text ||  Rating
+
|-
+
|c04 || text ||  Writer
+
|-
+
|c05 || text ||  First Aired
+
|-
+
|c06 || text ||  Thumbnail URL
+
|-
+
|c07 || text ||  [unknown - listed as Thumbnail URL Spoof, unused?]
+
|-
+
|c08 || text ||  Has the episode been watched? (unused?)
+
|-
+
|c09 || text ||  Episode length in minutes
+
|-
+
|c10 || text ||  Director
+
|-
+
|c11 || text ||  [unknown - listed as Indentifier]
+
|-
+
|c12 || text ||  Season Number
+
|-
+
|c13 || text ||  Episode Number
+
|-
+
|c14 || text ||  [unknown - listed as Original Title, unused?]
+
|-
+
|c15 || text ||  Season formatted for sorting
+
|-
+
|c16 || text ||  Episode formatted for sorting
+
|-
+
|c17 || text ||  Bookmark
+
|-
+
|c18 || text ||  Not used
+
|-
+
|c19 || text ||  Not used
+
|-
+
|c20 || text ||  Not used
+
|-
+
|idFile || integer ||  Foreign key to the [[The XBMC Database#files|files table]]
+
|}
+
 
+
==== files ====
+
This table stores filenames and links the path.
+
{|class="wikitable"
+
! Column Name || Data Type || Description
+
|-
+
|idFile || integer || Primary Key
+
|-
+
|idPath || integer || Foreign key to [[The XBMC Database#path|path table]]
+
|-
+
|strFilename || text || Full name of file including extension
+
|-
+
|playCount || integer || # of Times Played
+
|-
+
|lastPlayed || text || Date & Time Last Played
+
|-
+
|dateAdded || test || Date & Time Added to Library
+
|}
+
 
+
==== genre ====
+
This table stores genre information. For convenience the contents are duplicated in [[The XBMC Database#movie|movie]] and [[The XBMC Database#tvshow|tvshow]], so a join isn't necessary.
+
{|class="wikitable"
+
! Column Name || Data Type || Description
+
|-
+
|idGenre || integer || Primary Key
+
|-
+
|strGenre || text || Genre label
+
|}
+
 
+
==== genrelinkmovie ====
+
This table links genres to movies. (The contents are also stored in movies.c14, though.)
+
{|class="wikitable"
+
! Column Name || Data Type || Description
+
|-
+
|idGenre || integer || Foreign key to [[The XBMC Database#genre|genre table]]
+
|-
+
|idMovie || integer || Foreign key to [[The XBMC Database#movie|movie table]]
+
|}
+
 
+
==== genrelinkmusicvideo ====
+
This table links genres to music videos.
+
{|class="wikitable"
+
! Column Name || Data Type || Description
+
|-
+
|idGenre || integer || Foreign key to [[The XBMC Database#genre|genre table]]
+
|-
+
|idMVideo || integer || Foreign key to [[The XBMC Database#musicvideo|musicvideo table]]
+
|}
+
 
+
==== genrelinktvshow ====
+
This table links genres to TV show. (The contents are also stored in tvshow.c08, though.)
+
{|class="wikitable"
+
! Column Name || Data Type || Description
+
|-
+
|idGenre || integer || Foreign key to [[The XBMC Database#genre|genre table]]
+
|-
+
|idShow || integer || Foreign key to [[The XBMC Database#tvshow|tvshow table]]
+
|}
+
 
+
==== movie ====
+
This table stores movie information.
+
{|class="wikitable"
+
! Column Name || Data Type || Description
+
|-
+
|idMovie || integer || Primary Key
+
|-
+
|c00 || text ||  Local Movie Title
+
|-
+
|c01 || text || Movie Plot
+
|-
+
|c02 || text ||  Movie Plot Outline
+
|-
+
|c03 || text ||  Movie Tagline
+
|-
+
|c04 || text ||  Rating Votes
+
|-
+
|c05 || text ||  Rating
+
|-
+
|c06 || text ||  Writers
+
|-
+
|c07 || text ||  Year Released
+
|-
+
|c08 || text ||  Thumbnails
+
|-
+
|c09 || text ||  IMDB ID
+
|-
+
|c10 || text ||  Title formatted for sorting
+
|-
+
|c11 || text ||  Runtime (UPnP devices see this as seconds)
+
|-
+
|c12 || text ||  MPAA Rating
+
|-
+
|c13 || text ||  [http://www.imdb.com/chart/top IMDB Top 250] Ranking
+
|-
+
|c14 || text ||  Genre
+
|-
+
|c15 || text ||  Director
+
|-
+
|c16 || text ||  Original Movie Title
+
|-
+
|c17 || text ||  [unknown - listed as Thumbnail URL Spoof]
+
|-
+
|c18 || text ||  Studio
+
|-
+
|c19 || text ||  Trailer URL
+
|-
+
|c20 || text ||  Fanart URLs
+
|-
+
|c21 || text ||  Country (Added in r29886[http://trac.xbmc.org/changeset/29886/trunk])
+
|-
+
|c23 || text ||  idPath
+
|-
+
|idFile || integer ||  Foreign Key to [[The XBMC Database#files|files table]]
+
|}
+
 
+
==== movielinktvshow ====
+
This table links movies to TV shows.
+
{|class="wikitable"
+
! Column Name || Data Type || Description
+
|-
+
|idMovie || integer || Foreign key to [[The XBMC Database#movie|movie table]]
+
|-
+
|idShow || integer || Foreign key to [[The XBMC Database#tvshow|tvshow table]]
+
|}
+
 
+
==== musicvideo ====
+
{|class="wikitable"
+
! Column Name || Data Type || Description
+
|-
+
|idMVideo || integer || Primary Key
+
|-
+
|c00 || text || Title
+
|-
+
|c01 || text || Thumbnail URL
+
|-
+
|c02 || text || [unknown - listed as Thumbnail URL spoof]
+
|-
+
|c03 || text || Play count (unused?)
+
|-
+
|c04 || text || Run time
+
|-
+
|c05 || text || Director
+
|-
+
|c06 || text || Studios
+
|-
+
|c07 || text || Year
+
|-
+
|c08 || text || Plot
+
|-
+
|c09 || text || Album
+
|-
+
|c10 || text || Artist
+
|-
+
|c11 || text || Genre
+
|-
+
|c12 || text || Track
+
|-
+
|idFile || integer ||  Foreign Key to [[The XBMC Database#files|files table]]
+
|}
+
 
+
==== path ====
+
This table stores path information.
+
{|class="wikitable"
+
! Column Name || Data Type || Description
+
|-
+
|idPath || integer || Primary Key
+
|-
+
|strPath || text || Path URL
+
|-
+
|strContent || text || Type of content (tvshows, movies, etc...)
+
|-
+
|strScraper || text || XML file of scraper used for this path
+
|-
+
|strHash || text || Hash
+
|-
+
|scanRecursive || integer || Recursive scan setting
+
|-
+
|useFolderNames || bool || User folder names setting
+
|-
+
|strSettings || text || Custom settings used by scraper
+
|}
+
 
+
==== seasons ====
+
This table stores the links between tv show and seasons.
+
{|class="wikitable"
+
! Column Name || Data Type || Description
+
|-
+
|idSeason || integer || Primary Key
+
|-
+
|idShow|| integer || Foreign key to [[The XBMC Database#tvshow|tvshow table]]
+
|-
+
|season || integer || Season number
+
|}
+
 
+
==== sets ====
+
This table stores the id and name for movie sets. Sets are linked to movies in the movie table (idSet column).
+
{|class="wikitable"
+
! Column Name || Data Type || Description
+
|-
+
|idSet || integer || Primary Key
+
|-
+
|strSet || text || The name of the set
+
|}
+
 
+
==== settings ====
+
This table stores settings for individual files.
+
{|class="wikitable"
+
! Column Name || Data Type || Description
+
|-
+
|idFile || integer || Foreign Key to [[The XBMC Database#files|files table]]
+
|-
+
|Interleaved || bool || Interleaved
+
|-
+
|Nocache || bool || NoCache
+
|-
+
|Deinterlace || bool || Deinterlace
+
|-
+
|FilmGrain|| integer || FilmGrain
+
|-
+
|ViewMode|| integer || ViewMode
+
|-
+
|ZoomAmount|| float || ZoomAmount
+
|-
+
|PixelRatio|| float || PixelRatio
+
|-
+
|AudioStream || integer || Selected audio stream
+
|-
+
|SubtitleStream || integer || Selected subtitle stream
+
|-
+
|SubtitleDelay || float || Amount of delay for subtitles
+
|-
+
|SubtitleOn || bool || Enable subtitles
+
|-
+
|Brightness || integer || Brightness
+
|-
+
|Contrast || integer || Contrast
+
|-
+
|Gamma || integer || Gamma
+
|-
+
|VolumeAmplification || float || VolumeAmplification
+
|-
+
|AudioDelay || float || AudioDelay
+
|-
+
|OutputToAllSpeakers || bool || OutputToAllSpeakers
+
|-
+
|ResumeTime || integer || ResumeTime
+
|-
+
|Crop || bool || Crop
+
|-
+
|CropLeft || integer || CropLeft
+
|-
+
|CropRight || integer || CropRight
+
|-
+
|CropTop || integer || CropTop
+
|-
+
|CropBottom || integer || CropBottom
+
|}
+
 
+
==== stacktimes ====
+
This table stores playing times for files (used for playing multi-file videos).
+
{|class="wikitable"
+
! Column Name || Data Type || Description
+
|-
+
|idFile || integer || Foreign key to [[The XBMC Database#files|files table]]
+
|-
+
|times|| text || Times
+
|}
+
 
+
==== streamdetails ====
+
This table contains information regarding codecs used, aspect ratios etc
+
{|class="wikitable"
+
! Column Name || Data Type || Description
+
|-
+
|idFile || integer || Foreign Key to [[The XBMC Database#files|files table]]
+
|-
+
|iStreamType || integer || 0 = video, 1 = audio, 2 = subtitles
+
|-
+
|strVideoCodec|| text || Video codex (xvid etc)
+
|-
+
|fVideoAspect|| real || Aspect ratio
+
|-
+
|iVideoWidth|| integer || Width of the video
+
|-
+
|iVideoHeight|| integer || Height of the video
+
|-
+
|strAudioCodec|| text || Audio codec (aac, mp3 etc)
+
|-
+
|iAudioChannels|| integer || Number of audio channels (2 for stereo, 6 for 5.1 etc)
+
|-
+
|strAudioLanguage|| text || Language of the audio track
+
|-
+
|strSubtitleLanguage|| text || Language of the subtitles
+
|}
+
 
+
==== studio ====
+
This table stores studio information.
+
{|class="wikitable"
+
! Column Name || Data Type || Description
+
|-
+
|idStudio || integer || Primary Key
+
|-
+
|strStudio || text || Studio Label
+
|}
+
 
+
==== studiolinkmovie ====
+
This table links studios to movies.
+
{|class="wikitable"
+
! Column Name || Data Type || Description
+
|-
+
|idStudio || integer || Foreign key to [[The XBMC Database#studio|studio table]]
+
|-
+
|idMovie || integer || Foreign key to [[The XBMC Database#movie|movie table]]
+
|}
+
 
+
==== studiolinkmusicvideo ====
+
This table links studios to music videos.
+
{|class="wikitable"
+
! Column Name || Data Type || Description
+
|-
+
|idStudio || integer || Foreign key to [[The XBMC Database#studio|studio table]]
+
|-
+
|idMVideo || integer || Foreign key to [[The XBMC Database#movievideo|movievideo table]]
+
|}
+
 
+
==== studiolinktvshow ====
+
This table links studios to tv shows.
+
{|class="wikitable"
+
! Column Name || Data Type || Description
+
|-
+
|idStudio || integer || Foreign key to [[The XBMC Database#studio|studio table]]
+
|-
+
|idShow || integer || Foreign key to [[The XBMC Database#tvshow|tvshow table]]
+
|}
+
 
+
==== tag ====
+
This stores tags.
+
{|class="wikitable"
+
! Column Name || Data Type || Description
+
|-
+
|idTag || integer || Primary Key
+
|-
+
|strTag || integer || Tag
+
|}
+
 
+
==== taglinks ====
+
This table links tags to various media.
+
{|class="wikitable"
+
! Column Name || Data Type || Description
+
|-
+
|idTag || integer || Foreign key to [[The XBMC Database#tag|tag table]]
+
|-
+
|strTag || integer || Foreign key to a media table
+
|-
+
|media_type || text || Media type for link
+
|}
+
 
+
==== tvshow ====
+
This table stores information about a television series. Information concerning the shows episodes is stored in [[The XBMC Database#episode|episode]]. To link a TV show to its episodes, use [[The XBMC Database#tvshowlinkepisode|tvshowlinkepisode]].
+
 
+
{|class="wikitable"
+
! Column Name || Data Type || Description
+
|-
+
|idShow || integer || Primary Key
+
|-
+
|c00 || text ||  Show Title
+
|-
+
|c01 || text || Show Plot Summary
+
|-
+
|c02 || text ||  Status
+
|-
+
|c03 || text ||  Votes
+
|-
+
|c04 || text ||  Rating
+
|-
+
|c05 || text ||  First Aired
+
|-
+
|c06 || text ||  Thumbnail URL
+
|-
+
|c07 || text ||  [unknown - Spoof Thumbnail URL?]
+
|-
+
|c08 || text ||  Genre
+
|-
+
|c09 || text ||  Original Title
+
|-
+
|c10 || text ||  Episode Guide URL
+
|-
+
|c11 || text ||  Fan Art URL
+
|-
+
|c12 || text ||  SeriesId (when using thetvdb.com scraper)
+
|-
+
|c13 || text ||  Content Rating
+
|-
+
|c14 || text ||  Network
+
|-
+
|c15 || text ||  Title formatted for sorting
+
|-
+
|c16 || text ||  Not Used
+
|-
+
|c17 || text ||  Not Used
+
|-
+
|c18 || text ||  Not Used
+
|-
+
|c19 || text ||  Not Used
+
|-
+
|c20 || text ||  [unknown]
+
|}
+
 
+
==== tvshowlinkepisode ====
+
This table links TV shows (series) to episodes.
+
{|class="wikitable"
+
! Column Name || Data Type || Description
+
|-
+
|idShow || integer || Foreign Key to [[The XBMC Database#tvshow|tvshow table]]
+
|-
+
|idEpisode || integer || Foreign Key to [[The XBMC Database#episode|episode table]]
+
|}
+
 
+
==== tvshowlinkpath ====
+
This table links a TV show to its path.
+
{|class="wikitable"
+
! Column Name || Data Type || Description
+
|-
+
|idShow || integer || Foreign key to [[The XBMC Database#tvshow|tvshow table]]
+
|-
+
|idPath || integer || Foreign key to [[The XBMC Database#path|path table]]
+
|}
+
 
+
==== version ====
+
This table stores database information.
+
{|class="wikitable"
+
! Column Name || Data Type || Description
+
|-
+
|idVersion || integer || Version of database
+
|-
+
|idCompressCount || integer || Number of times database has been compressed
+
|}
+
 
+
==== writerlinkepisode ====
+
This table links writers to TV show episodes.
+
{|class="wikitable"
+
! Column Name || Data Type || Description
+
|-
+
|idWriter || integer || Foreign key to [[The XBMC Database#actors|actors table]]
+
|-
+
|idEpisode || integer || Foreign key to [[The XBMC Database#episode|episode table]]
+
|}
+
 
+
==== writerlinkmovie ====
+
This table links writers to movies.
+
{|class="wikitable"
+
! Column Name || Data Type || Description
+
|-
+
|idWriter || integer || Foreign key to [[The XBMC Database#actors|actors table]]
+
|-
+
|idMovie || integer || Foreign key to [[The XBMC Database#movie|movie table]]
+
|}
+
 
+
== The View Modes Database ==
+
XBMC can track a user's View Mode for every path, so you could browse movies using DVD Thumbs and browse TV shows using Fanart. This database contains the last view and sorting method a user chose for each path while navigating XBMC.
+
 
+
The View Modes database is stored in userdata/Database/ViewModes.db.
+
 
+
=== Tables ===
+
The View Modes database uses only two tables. Most of the useful information is in [[The XBMC Database#view|view]].
+
 
+
==== version ====
+
This table stores database information.
+
{|class="wikitable"
+
! Column Name || Data Type || Description
+
|-
+
|idVersion || integer || Version of database
+
|-
+
|idCompressCount || integer || Number of times database has been compressed
+
|}
+
 
+
==== view ====
+
This table stores details on the saved view mode for all known paths.
+
{|class="wikitable"
+
! Column Name || Data Type || Description
+
|-
+
|idView || integer || Primary Key
+
|-
+
|window || integer || Window GUI ID
+
|-
+
|path || text || Path to trigger the view on
+
|-
+
|viewMode || integer || View Mode
+
|-
+
|sortMethod || integer || ID of sort method
+
|-
+
|sortOrder || integer || Sort order (ascending or descending)
+
|}
+
 
+
 
+
==See also==
+
* [[HOW-TO:Synchronize multiple XBMC libraries]]
+
 
+
[[Category:Development]]
+

Revision as of 04:56, 22 April 2009

Home icon grey.png   ▶ Intro FAQ

Contents


1 What is XBMC?

XBMC (formerly "Xbox Media Center") is a free, open source (GPL) multimedia player that runs on the Microsoft Xbox™, as well as on PCs running Linux, Mac OS X, and Windows. The software is in the process of being ported from its original Xbox version, and currently some platforms are not yet feature-complete.

2 What can XBMC do?

  • XBMC can be used to play/view the most popular video, audio, and picture formats, and many more lesser-known formats, including:
  • Video - DVD-Video, VCD/SVCD, MPEG-1/2/4, DivX, XviD, Matroska
  • Audio - MP3, AAC.
  • Picture - JPG, GIF, PNG.

These can all be played directly from a CD/DVD, or from the hard-drive. XBMC can also play multimedia from a computer over a local network (LAN), or play media streams directly from the Internet.

  • XBMC can play DVD-Video movies (with and without menus) from ISO/IMG images and even ZIP/RAR-archives.
  • XBMC has playlist and slideshow functions, a weather forecast feature and many audio visualizations.
  • XBMC can in addition run python-scripts written for XBMC as plugin widgets.
  • XBMC has a simple user interface that's pleasant and easy to use.

All these features enable your device to function as a full multimedia jukebox.

Notes

3 What features does XBMC have?

See the complete list of supported features.

3.1 Does XBMC support or feature this and that function...?

See the complete list of supported features/formats here or try it yourself and find out!

You might also want to look in the manual.

3.2 Exactly which media formats can XBMC play?

See the complete list of supported features/formats here, if it is not listed there then XBMC does not support it (yet)!

3.2.1 What media codec versions can XBMC play?

Again, See the complete list here

4 Does XBMC support High Definition (HD) resolution media?

Yes and no, but the answer is a little more complicated than that, see bellow:

4.1 XBMC for XBox

In general, XBMC running on a standard Xbox cannot play native HD format videos, but can upscale standard definition or lower format video to HD resolutions.

The XBox's 733Mhz Intel Pentium-III CPU, is too slow to play native HD video (Microsoft® and DivX® recommends a 2.4 Ghz PC + 384MB RAM for 720p MPEG-4 playback!). This means that you might only get maybe 10-20fps (frames per second) displayed, which will appear jerky and un-viewable.

On a standard XBox the following HD formats are supported:

  • 480i/480p/576i/576p output at 480p (Not Scaled).
  • 480i/480p/576i/576p output at 720p (Upscaled).
  • 480i/480p/576i/576p output at 1080i (Upscaled).

The following video resolutions are NOT supported, at any output resolution:

  • 720p
  • 1080i

4.1.1 Upgraded Processor

It is possible to upgrade the processor in an Xbox (for example, with the DreamX-1400 from FriendTech, to one which is at capable of decoding some native HD videos (i.e. those encoded with MPEG-2 or MPEG-4 ASP (H.263) at up to 720p). FriendTech do offers trade-in). Note! You must enable/setup your HDTV settings in Microsoft dashboard, (on NTSC Xboxes).

4.2 XBMC for Linux, XBMC for Mac, and XBMC for Windows

Since the components in a personal computer running Linux, Mac or Windows operating systems can be upgraded, the limit of resolution that XBMC is able to playback will be dependent on the exact hardware in that system. Note however that the primary dependency is the CPU, because XBMC uses software decoding for all video streams.


4.3 Does XBMC support Blu-ray or HD DVD playback with out without menus?

No. There is not yet any C/C++ open source software out there yet capable of fully playing back Blu-ray or HD DVD so we can not add the code from somewhere in any case. FFmpeg (the open source codec-suit that XBMC uses) will probably relativly soon be able to decode all audio and video codecs used in both Blu-ray and HD DVD, but even when that happens you still have to get around the DRM encryptions used by the disc formats and there is not yet any C/C++ open source software library capable of that on-the-fly, nither is there any C/C++ open source software library out there capable of displaying Blu-ray or HD DVD menus. XBMC need C/C++ open source software libraries for all of these things to fully support Blu-ray or HD DVD playback.

5 Where can I suggest/request a new feature or function to be implemented into XBMC?

You can log a NEW feature/function request in our RFE Request Feature Tracking System, (we recommend you register and login on our Trac tracking-system, if you are already registered on on the XBMC Community Forum then know it is the same login so no need to re-register). Just make sure that you first remember to search for existing "Feature Requests" before logging a new request! You should take note that we guesstimate that 99% of all new requests XBMC users post have already been requested before so it is imperative that you search thoroughly! You may also post a copy of your suggestion in the feature-suggestion section of our community-forums if you want it open for discussion, however, again you must search there too before you can post, (we do not enjoy reorganising duplicate posts). Please respect that your request only counts as a suggestion, there' s no guarantee that it will implemented soon or ever. Known that almost all users think their own ideas is the most important, and a very common comment is: "if you only add these features then XBMC will be perfect for me". Note! Only one feature per RFE Request and Forum Thread is allowed (for easier manageability).

6 When will this and that feature or function be supported by XBMC?

XBMC development is driven by the tasks that are important to the individual developers, none of whom are paid for what they do on the project. If there is a feature that is important to you, the best way to get it implemented is to undertake the task yourself, otherwise you have no rights to demand new things to be implemented and get no guarantees that some specific thing will be prioritized before something else. You may however suggest/request for things and if you ask nicely. Please respect that your request only counts as a suggestion, there' s no guarantee that it will implemented soon or ever. Known that almost all users think their own ideas is the most important, and a very common selfish comments are: "if you only add these features then XBMC will be perfect for me" and "I think you should prioritize my idea over anything else". If you make a good argument and present it in a smart way then developer might then like your idea and implement the thing you asked for.

Meanwhile, we recommend that you read this article on How To Ask Questions The Smart Way. Arrogant and 'pushy' people will most likely just be ignored (or even banned if they step over the line which we consider to be acceptable).

If you are thinking of contributing code to the project, please see "Appendix D: Development Notes".

7 Can I update the audio/video codecs in XBMC myself?

No. XBMC relies on a built-in open source codec suit called FFmpeg. XBMC codecs get updated on a regular basis by the developers of Team-XBMC when FFmpeg programmers add support for newer or updated codecs and file containers. Please see Codec and Format requests for more information.

8 Where can I request/suggest a new codec-decoder or file-format to be implemented into XBMC?

The answer (and explanation) to this question is so long that we had to put it in separate page, see; Codec and Format requests.

9 When will this and that codec-decoder or file-format be added and supported by XBMC?

The answer (and explanation) to this question is so long that we had to put it in separate page, see; Codec and Format requests.


10 Is XBMC, The XBMC Project, or Team-XBMC affiliated with Microsoft in any way?

No, XBMC, The XBMC Project and its members are not in any way affiliated with Microsoft in any way. XBMC is only a software program that is made by Team-XBMC (ie, the members of the The XBMC Project) as a free third-party product that any person can install and run on the Xbox™ game-console hardware (which is manufactured and sold by Microsoft Corporation).

XBMC, The XBMC Project (and its members, Team-XBMC) and the services (including developer tools, resources, download areas, files, source code, product information, documentations and communication forums, collectively called "Services") provided by us has nothing to do with Microsoft by any association or affiliation what so ever.

XBMC is not approved by Microsoft to run on the Xbox, in fact installing/running XBMC on your Xbox may very well void your warranty! Microsoft does however have similar products to XBMC for the Xbox called "Media Center Extender for Xbox" (a.k.a. "Xbox Media Center Extender Kit") and "Xbox Music Mixer", which are both very limited feature/function-wise in our own humble opinion.

Personal tools
Namespaces

Variants
Actions
Navigation
Wiki help
Toolbox