Databases: Difference between revisions

From Official Kodi Wiki
Jump to navigation Jump to search
>Nmrs
>Alexpoet
(Filled in some of the stub paragraphs and cleaned up the text a little.)
Line 1: Line 1:
{{Incomplete}}
{{Incomplete}}
=XBMC Database Details=
=XBMC Database Details=
XBMC utilizes [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 $HOME\UserData\Database\.
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 $HOME\UserData\Database\.


Also XBMC puts a video in it's database if you change any OSD setting while watching, resume points are also stored here.
In addition to indexing media files when 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.
That is independant of if the video is part of the Video Library or not.
These entries are added to the database whether the affected video is part of the Video Library or not.


==Accessing the Database via SQLite application==
==Accessing the Database via SQLite application==
Line 10: Line 10:
We recommend you use [http://www.yunqa.de/delphi/doku.php/products/sqlitespy/index SQLiteSpy version 1.5.2] or higher.
We recommend you use [http://www.yunqa.de/delphi/doku.php/products/sqlitespy/index SQLiteSpy version 1.5.2] or higher.
*[[HOW-TO: Use your computer to edit XBMC's (SQL) database-files]].
*[[HOW-TO: Use your computer to edit XBMC's (SQL) database-files]].
==Accessing the Database via XBMC Python==
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 the HTTPAPI call QueryMusicDatabase or QueryVideoDatabase.


==Database Structure==
==Database Structure==
Line 17: Line 20:
===Video Database===
===Video Database===
Stored in userdata/Database/MyVideos34.db
Stored in userdata/Database/MyVideos34.db
====tables====
====Tables====
=====actorlinkepisode=====
=====actorlinkepisode=====
This table links actors to episodes and stores role information.
This table links actors to episodes and stores role information.
Line 220: Line 223:
[TODO]
[TODO]


====views====
====Views====
=====episodeview=====
=====episodeview=====
View that joins episode to file and tvshow (through tvshowlinkepisode) and path.
View that joins episode to file and tvshow (through tvshowlinkepisode) and path.

Revision as of 15:58, 5 March 2009

Incomplete.png INCOMPLETE:
This page or section is incomplete. Please add information or correct uncertain data which is marked with a ?

XBMC Database Details

XBMC uses SQLite, an open source light-weight SQL database-engine, to store all its library related data (Music, Video, and Program databases). By default, the database files (*.db) are stored in The UserData Folder, specifically $HOME\UserData\Database\.

In addition to indexing media files when 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. These entries are added to the database whether the affected video is part of the Video Library or not.

Accessing the Database via SQLite application

Database files can be transferred via FTP to a Windows-based computer and edited or analyzed with a SQLite graphical client. XBMC's version of the database engine should be compatible with the standard clients such as SQLiteBrowser or SQLiteCC, (more available management-tools can be found in sqlite.org WIKI).
We recommend you use SQLiteSpy version 1.5.2 or higher.

Accessing the Database via XBMC Python

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 the HTTPAPI call QueryMusicDatabase or QueryVideoDatabase.

Database Structure

Music Database

Stored in userdata/Database/MyMusic7.db

Video Database

Stored in userdata/Database/MyVideos34.db

Tables

actorlinkepisode

This table links actors to episodes and stores role information.

Column Name Data Type Description
idActor integer Foreign key to actors table
idEpisode integer Foreign key to episode table
strRole text Role the actor played in this episode
actorlinkmovie

This table links actors to movies and stores role information.

Column Name Data Type Description
idActor integer Foreign key to actors table
idMovie integer Foreign key to movie table
strRole text Role the actor played in this movie
actorlinktvshow

This table links actors to tv shows and stores role information.

Column Name Data Type Description
idActor integer Foreign key to actors table
idMovie integer Foreign key to tv show table
strRole text Role the actor played in this tv show
actors

This table links actors to tv shows and stores role information.

Column Name Data Type Description
idActor integer Foreign key to actors table
strActor integer Name of the actor
strThumb text Thumbnail URL
artistlinkmusicvideo

[TODO]

bookmark

[TODO]

directorlinkepisode

[TODO]

directorlinkmovie

[TODO]

directorlinkmusicvideo

[TODO]

directorlinkmusictvshow

[TODO]

episode

This table stores television episode information.

Column Name Data Type Description
idEpisode integer Primary Key
c00 text Episode Title
c01 text Plot Summary
c02 text [unknown]
c03 text Rating
c04 text Writer
c05 text First Aired
c06 text Thumbnail URL
c07 text [unknown]
c08 text Has the episode been watched?
c09 text [unknown]
c10 text Director
c11 text [unknown]
c12 text Season
c13 text Episode Number
c14 text [unknown]
c15 text [unknown]
c16 text [unknown]
c17 text [unknown]
c18 text [unknown]
c19 text [unknown]
c20 text [unknown]
idFle integer Foreign key to the file for this episode
files

[TODO]

genre

[TODO]

genrelinkmovie

[TODO]

genrelinkmusicvideo

[TODO]

genrelinktvshow

[TODO]

movie

[TODO]

movielinktvshow

[TODO]

musicvideo

[TODO]

path

[TODO]

settings

[TODO]

stacktimes

[TODO]

studio

[TODO]

studiolinkmovie

[TODO]

studiolinkmusicvideo

[TODO]

tvshow

This table stores television show information.

Column Name Data Type Description
idShow integer Primary Key
c00 text Show Title
c01 text Show Summary
c02 text [unknown]
c03 text [unknown]
c04 text Rating
c05 text First Aired
c06 text Thumbnail URL
c07 text [unknown]
c08 text Genre
c09 text [unknown]
c10 text Episode Guide URL
c11 text Fan Art URL
c12 text [unknown]
c13 text [unknown]
c14 text [unknown]
c15 text [unknown]
c16 text [unknown]
c17 text [unknown]
c18 text [unknown]
c19 text [unknown]
c20 text [unknown]
tvshowlinkepisode

This table is a simple linker table to join TV Shows and Episodes.

Column Name Data Type Description
idShow integer Foreign Key to tvshow table
idEpisode integer Foreign Key to episode table
tvshowlinkpath

[TODO]

version

[TODO]

writerlinkepisode

[TODO]

writerlinkmovie

[TODO]

Views

episodeview

View that joins episode to file and tvshow (through tvshowlinkepisode) and path.

movieview

View that joins movie to file and path.

musicvideoview

View that joins movie 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.

View Modes Database

Stored in userdata/Database/ViewModes.db

TO-DO (what needs to be added to this database article)

  • The layout, etc. will be explained in more detail here later.