TV Shows (Video Library)

From XBMC4Xbox
Jump to navigation Jump to search


XBMC has had the ability to lookup meta data and present information on TV Shows in the Video Library.

TV Show support in XBMC

TV show support is through new scrapers and requires a connection to the internet. The information gathered is stored locally in the Video Library so that it is available when you are offline. The scrapers scan your TV shows and retrieve the information about them from sites like TheTVDB.com (which is the default) and TV.com.

Note! you can refresh the main TV show information without rescanning all episode information by selecting refresh from the information screen and say no to the 'refresh information for all episodes' question.

Tv.shows.jpg

TV Show files naming conventions

The TV Show lookup scraper relies on the following naming conventions in order to work as intended.

Directory Structure and File Names

Each TV show needs to be in its own folder for XBMC to be able to scan it into the library. The file names for TV shows have to be matched by the regular expressions set in tvshowmatching.

Wide1.jpg

Directory layout example:

TV Shows
     |----TV Show 1
     |       |___ TV Show 1 Media files
     |
     |----TV Show 2
     |       |___ TV Show 2 Media files
     |
      ----TV Show 3
             |___ TV Show 3 Media files

Where Content is Set on the top level "TV Shows" folder. You can have different seasons in different season subfolders under the individual TV Show folders if it suits you. XBMC does not use them, but they do not cause issues either.

The defaults will match the following structures/file name formats
foo.s01e01.*
foo.s01.e01.*
foo.s01_e01.*
foo_[s01]_[e01]_*
foo.1x01.*
foo.101.*
Defaults for two-part TV Show Episode will match
foo.s01e01-02.*
foo_[s01]_[e01-02]_*
foo.1x01.1x02.*
Same with three- or four-part TV Show Episode
foo.s01e01-02-03-04.*
foo_[s01]_[e01-02-03-04]_*
foo.1x01.1x02.1x03.1x04.*

Where foo can be anything (including nothing).

Multi-part Episodes

Handling of multi-part episodes (two part episodes in one file, multiple episodes in DVD images, etc.) is supported. The first matched tvshowmatching regexp and "[-EeXx]+([0-9]+)" will be repeatedly applied against a file name until no more seasons or episodes are found.

This allows for file names such as
foo_s01e01e02e03_s02e01e02
foo104-05-06-201-02
foo1x07x08x09

Multi-file Episodes

This feature has been temporarily disabled, the plan is to implement it in a better fashion at a future date.
You can stack multiple files into one episode. For that to be available the Stack Duplicate TV Shows Video Library setting needs to be enabled. All the files must have the same season and episode number and they all have to be in the same folder. (This is to prevent unwanted stacking of true duplicates in different folders). The items will be automatically stacked in sequential order based off the filenames being sorted in a "natural" order (like this: -part1.avi, -part2.avi, ..., -part10.avi.)

TV Show Specials

Special episodes are currently supported with TheTVDB.com scraper. In order for the XBMC scraper regular expressions to recognize them, they should be part of season 0. (Specials naming order can be observed in the Specials Season of the relevant TV show at TheTVDB.com).

Example
Black Adder's Christmas Carol should have a file name that matches season 0 episode 2 (e.g. contain s00e02).

Examples

  • Doctor Who (1963) - Season 1 Episode 12: The Edge of Destruction

Troubleshooting TV Shows lookups

The scraper picks the wrong TV Show

You can influence the search by having nfo files alongside your media

You can also try appending the year to the TV Show folder-name. (Note the showname on the selected site to be scraped must then include the year). This might be needed for some TV Shows such as "Battlestar Galactica", "Doctor Who", "Jericho", and "Knight Rider" which will have multiple entries on a given TV metadata database because of remakes of the original show.

See the examples below:

\TV Shows\Battlestar Galactica\Season 1\Battlestar Galactica - S01E01.avi (TheTVDB omits the year from the original shows)
\TV Shows\Battlestar Galactica 2003\Season 1\Battlestar Galactica - S01E01.avi (Remakes will include year at theTVDB.com)
\TV Shows\Cupid 1998\Season 1\Cupid - S01E01.avi
\TV Shows\Cupid 2003\Season 1\Cupid - S01E01.avi
\TV Shows\Cupid 2009\Season 1\Cupid - S01E01.avi
\TV Shows\Doctor Who\Season 1\Doctor Who - S01E01.avi
\TV Shows\Doctor Who 2005\Season 1\Doctor Who - S01E01.avi
\TV Shows\Jericho 1995\Season 1\Jericho - S01E01.avi
\TV Shows\Jericho 2006\Season 1\Jericho - S01E01.avi
\TV Shows\Knight Rider 1982\Season 1\Knight Rider - S01E01.avi
\TV Shows\Knight Rider 2008\Season 1\Knight Rider - S01E01.avi

Note! "AVI" is just an example, as this applies to all video formats that XBMC supports.

Custom Directory Structure & File Names

You can make your own naming conventions / rules by adding or editing regular expressions in the advancedsettings.xml file, with the tvshowmatching tag. When enumerating episodes for a series, XBMC only cares about the season and episode, so when designing regexps you should only be concerned with these things.

Here are several common naming schemes and corresponding regexps and examples.

\Season #\## (Season# is at very end of directory name, and filename starts with episode name, neither have to be a specific number of digits) :

<tvshowmatching>
    <regexp>Season[\._ ]([0-9]+)[\\/]([0-9]+)[^\\/]*</regexp>
</tvshowmatching>

Example : \Battlestar Galactica\Season 3\01 - Occupation.avi (Season 3, Episode 1)


### ([season#][episode#] with nothing in between all in filename, assumes episode number is always 2 digits) :

<tvshowmatching>
    <regexp>([0-9]+)([0-9][0-9])[^\\/]*</regexp>
</tvshowmatching>

Example : \24\Season 6\601 - 6:00am to 7:00am.avi (Season 6, Episode 1)
Example 2 : \Lost\Season 1\Lost - 101.avi (Season 1, Episode 1)
Example 3 : \24\601 - 6:00am to 7:00am.avi (Season 6, Episode 1)


##x## ([season#]x[episode#] all in filename :

<tvshowmatching>
<regexp>([0-9]+)x([0-9]+)[^\\/]*</regexp>
</tvshowmatching>

Example : \Scrubs\Season 1\1x01.Pilot.avi (Season 1, Episode 1)

If you use leading 0's (for example, \Scrubs\01x01 - Pilot.avi instead of 1x1), and are having difficulty getting the TV Show scraper to work, try

##x## ([season#]x[episode#] all in filename :

<tvshowmatching>
<regexp>[0]*([0-9]+)x[0]*([0-9]+)[^\\/]*</regexp>
</tvshowmatching>

Example : \Scrubs\Season 1\01x01.Pilot.avi (Season 1, Episode 1) which simply strips leading 0's from the result.

s##e## (s[season#]e[episode#] at beginning of filename)

<tvshowmatching>
<regexp>[\\/]s([0-9]+)e([0-9]+)</regexp>
</tvshowmatching>

Example : videos\mytv-comedy\Scrubs\season 1\s01e01 - Pilot (hdtv.xvid).avi

Season ## - Episode ## (Season [season#] - Episode [episode#] in the beginning or middle of filename)

<tvshowmatching>
<regexp>Season ([0-9]+) - Episode ([0-9]+)[^\\/]*</regexp>
</tvshowmatching>

Example : TV Shows\Scrubs\Season 1\Scrubs - Season 1 - Episode 01 - Pilot.avi

TV Shows in DVD Folders Using the same directory structures as above, you can name DVD folders by adding the following xml to advancedsettings.xml. This information was gleaned from forum thread http://www.xbmc.org/forum/showthread.php?t=55497.

<tvshowmatching append="no">
    <regexp>\[[Ss]([0-9]+)\]_\[[Ee]([0-9]+)\]?([^\\/]*)(?:(?:[\\/]video_ts)[\\/]video_ts.ifo)?</regexp>
    <regexp>[\._ \[\-\\/]([0-9]+)x([0-9]+)([^\\/]*)(?:(?:[\\/]video_ts)[\\/]video_ts.ifo)?</regexp>
    <regexp>[Ss]([0-9]+)[\.\-]?[Ee]([0-9]+)([^\\/]*)(?:(?:[\\/]video_ts)[\\/]video_ts.ifo)?</regexp>
    <regexp>[\._ \-\\/]([0-9]+)([0-9][0-9])([\._ \-][^\\/]*)(?:(?:[\\/]video_ts)[\\/]video_ts.ifo)?</regexp>
  </tvshowmatching>

See Also