Skip to content
Stuart Boston edited this page Mar 17, 2015 · 1 revision

How to use .NFO files to enhance MovieJukebox's lookup

Purpose of .NFO files

MovieJukebox uses .NFO files to specifically identify which movie title is associated with a given movie file. This can be helpful when IMDB incorrectly selects a movie other than the one you want.

It is also useful for overriding movie details by using the XBMC xml nfo file layout, as specified at the bottom of this page.

Note: The scanner is case sensitive for the filename extension, so please make sure that you use either "nfo" or "NFO" and not any other version.

When you update a NFO file for a video that has already been scanned by MovieJukebox, it will force the re-creation of all associated files, such as the XML, Artwork, etc. This is to ensure that all the data is used correctly.

How to create an NFO file

An NFO file is simply a plain text file that has an NFO extension instead of TXT. To create a file use any text editor such as Notepad in windows or vi in Linux.

WARNING: If you are creating a NFO file in windows with notepad, ensure that notepad doesn't "helpfully" add a ".txt" extension to the file, otherwise it won't work. You can show the extensions by going to an explorer window, tools menu, folder options, clicking on the "view" tab and un-check the "Hide extensions for known file types"

Basic Usage

MovieJukebox will automatically use a NFO file if it finds one in the same directory with the exact same name as a movie but with a .NFO extension.

Example

For instance if you had the file twb_blood.mkv for "There Will Be Blood", MovieJukebox will try to search IMDB for a match, but in this case the closest match will be "Town Bloody Hall (1979)" which is clearly not what you want.

In this case, create a file called "twb_blood.nfo". Edit the file, and add the URL

http://www.imdb.com/title/tt0469494/

as the only content of the file.

The next time that you run MovieJukebox the new NFO file will take precedence and the movie inforamtion will be updated using the link you have included in the .NFO file

Note: The whole .NFO file will be searched for the IMDB reference URL so other, non-XML based, information can be stored in the file. If you wish to use the XML format NFO file, do not mix and match with the URL format.

Automatically Create NFO Files

MovieJukebox can automatically create the NFO files for you with the filename.nfo.writeFiles property.

Setting this to true, will create a NFO folder in your jukebox that contains NFO files for the movies that have been written.

Note: NFO files are only created for new videos. These NFO files are NOT used by default (as they are not with the videos). You will need to move the NFO files to the folder with the video file for them to be used.


VIDEO_TS and BluRay

In the case of DVD folder structures containing a VIDEO_TS or BDMV folder the NFO file must either be at the same level as the top level movie folder or inside the movie folder itself. It must be named the same as the movie folder.

Examples

For instance if C:\Movies is where I have my movies stored, and inside that file I have the movie Casino.

C:\Movies\Casino\VIDEO_TS\movie.vob

OR

C:\Movies\Casino\BDMV\STREAM\movie.mt2s

There are two places that you can save the NFO file. The first is in the C:\Movies folder and the second is in the C:\Movies\Casino folder.

Either of these will work for both VIDEO_TS and BluRay:

C:\Movies\Casino.nfo
C:\Movies\Casino\Casino.nfo

TV Series

For TV Series, the .NFO file should be named the same as the first episode of the series. There is no need to have an .NFO file for each episode.

Alternatively you can name the .NFO file the same as the directory that it is in. Note: You will need to copy the whole TheTVDB.com URL into the file to ensure it is recognized by YAMJ. This URL should be from the Series home page and not the Season or Episode pages within TheTVDB.com

Example

If you TV series is here:

C:\TV\Series Name\Season 1\file S01E01.avi
C:\TV\Series Name\Season 1\file S01E02.avi

Then your .NFO file name should be either of these options:

C:\TV\Series Name\Season 1\file S01E01.NFO
C:\TV\Series Name\Season 1\Season 1.NFO

Multi-Part Films

If you have a film that is in two (or more) parts, then the easiest way for MovieJukebox to pick this up is to name each part with a suffix of `[## Example

Movie [CD1](CDx]`).avi
Movie [Movie [CD1](CD2].avi).nfo

Poster URL

Another use for the nfo file is to specify the poster URL of the movie. To specify the poster file, simply enter a url that ends with .jpg

Example

http://www.themoviedb.org/image/backdrops/1118/tt0120667-2.jpg

XBMC NFO movie XML

Utilizes the XBMC movie layout as specified here http://xbmc.org/wiki/?title=Import_-_Export_Library#Video_nfo_Files The episodedetails, & musicvideo layouts are not currently implemented, and will require additional internet database scanning features to be implemented first.

Some fields map directly to YAMJ, and others do not currently have a YAMJ counterpart. These fields are commented on below.

Any fields may be populated or left blank as the user sees fit. If a field is populated, then it will take precedence over anything retrieved from the Internet. However, if a field is left blank in the NFO, then that field will still be loaded as before.

On fields where multiple may exist, like <genre> or <actor>, if even one is present in the NFO, then YAMJ will not attempt to scrape any additional information.

Turn Off Internet Scraping

If you want only the information from the NFO file to be used and not have MovieJukebox search the internet for information you should use an ID value of 0 (Zero) or -1

Example

<movie>
  <id>-1</id>
</movie>

Format

<movie>
    <title></title>
    <originaltitle></originaltitle>
    <sorttitle></sorttitle>
    <rating></rating>               <!-- 0 - 10 rating, can be decimal -->
    <ratings>
        <rating moviedb="imdb"></rating>
        <rating moviedb="allocine"></rating>
    </ratings>
    <year></year>
    <top250></top250>               <!-- the IMDB top 250 ranking, integer 1 - 250 or empty -->
    <votes></votes>                 <!-- currently unused in YAMJ -->
    <outline></outline>             <!-- a short plot description -->
    <plot></plot>                   <!-- a longer plot description -->
    <tagline></tagline>             <!-- The tagline for the movie -->
    <runtime></runtime>
    <premiered></premiered>         <!-- the release date of the movie -->
    <thumb></thumb>                 <!-- url of poster image. use URL formatting, such as http:// for internet resources or file:/// for local resources -->
    <fanart></fanart>               <!-- url of fanart image. use URL formatting, such as http:// for internet resources or file:/// for local resources -->
    <mpaa></mpaa>
    <certification></certification> <!-- Used for all certification that isn't MPAA and only used if imdb.getCertificationFromMPAA=false -->
    <playcount></playcount>         <!-- currently unused in YAMJ -->
    <watched></watched>             <!-- This will mark the movie watched or unwatched -->
    <id></id>                       <!-- the IMDB id of the movie. includes the leading "tt". Use an id of 0 or -1 to disable further internet plugin scraping. -->
    <id moviedb="allocine"></id>    <!-- the allocine id of the movie. This should work for other plugins using their PLUGIN_ID as "moviedb" value -->
    <id moviedb="filmweb"></id>     <!-- the filmweb id of the movie. This should work for other plugins using their PLUGIN_ID as "moviedb" value -->
    <filenameandpath></filenameandpath> <!-- currently unused since YAMJ determines path from searching the configured libraries -->
    <trailer></trailer>             <!-- multiple trailer records may exist -->
    <genre></genre>                 <!-- multiple genre records may exist, including any custom ones -->
    <credits>
        <writer></writer>           <!-- Writer name, one per entry -->
    </credits>
    <director></director>
    <company></company>             <!-- The studio company that produced the movie -->
    <studio></studio>               <!-- Synonym for company tag -->
    <country></country>             <!-- Country the video was produced in -->
    <actor>                         <!-- Multiple actor records may exist -->
        <name></name>
        <role></role>               <!-- Currently unused in YAMJ -->
    </actor>
    <sets>
      <set>First Set Name</set>
      <set order="?">Another Set With An Order</set>
    </sets>
<!-- NOTE: All of the following tags will OVERWRITE the derived data -->
    <videosource></videosource>     <!-- The video source of the file -->
    <videooutput></videooutput>     <!-- The video output of the file -->
    <fps></fps>                     <!-- The Frames Per Second value for the movie. NOTE: This should be a valid float value (with a ".") -->
    <fileinfo>
        <container></container>     <!-- Container of the video -->
        <streamdetails>
            <video>
                <codec></codec>
                <aspect></aspect>
                <width></width>     <!-- Width of the video file -->
                <height></height>   <!-- Height of the video file -->
            </video>
            <audio>
                <codec></codec>
                <language></language>
                <channels></channels>
            </audio>
            <subtitle>
                <language></language>
            </subtitle>
        </streamdetails>
    </fileinfo>
</movie>

XML Encoding

XML must be either provided in UTF-8 charset or the encoding must be explicitly specified in the xml header

Example:

<?xml version="1.0" encoding="windows-1252"?>
<movie>
...

If existing(old) NFO files do not have the described header and you do not want to re-encode or add the header to all the files, there is a parameter in the {{{moviejukebox.properties}}} which can be used to force the XML parser to read all the NFO files using the specified encoding.

mjb.forceNFOEncoding=YOUR-ENCODING

XBMC NFO tvshow xml

Utilizes the XBMC tvshow layout as specified here http://xbmc.org/wiki/?title=Import_-_Export_Library#TV_Shows However, unlike the xbmc docs, this nfo file should be named the same as the TV Series naming mentioned above, and this nfo only needs to exist for the first episode of a given season.

Some fields map directly to YAMJ, and others do not currently have a YAMJ counterpart. These fields are commented on below.

Any fields may be populated or left blank as the user sees fit. If a field is populated, then it will take precedence over anything retrieved from the Internet. However, if a field is left blank in the NFO, then that field will still be loaded as before.

On fields where multiple may exist, like <genre> or <actor>, if even one is present in the NFO, then YAMJ will not attempt to look up additional.

<tvshow>
    <title></title>
    <originaltitle></originaltitle>
    <sorttitle></sorttitle>
    <rating></rating>               <!-- 0 - 10 rating, can be decimal -->
    <ratings>
        <rating moviedb="imdb"></rating>
        <rating moviedb="allocine"></rating>
    </ratings>
    <season></season>               <!-- currently unused at series level -->
    <episode></episode>             <!-- currently unused at series level -->
    <displayseason></displayseason> <!-- currently unused at series level -->
    <displayepisode></displayepisode> <!-- currently unused at series level -->
    <plot></plot>                   <!-- a longer plot description -->
    <thumb></thumb>                 <!-- url of poster image. use URL formatting, such as http:// for internet resources or file:/// for local resources -->
    <fanart></fanart>               <!-- url of fanart image. use URL formatting, such as http:// for internet resources or file:/// for local resources -->
    <mpaa></mpaa>
    <certification></certification> <!-- Used for all certification that isn't MPAA and only used if imdb.getCertificationFromMPAA=false -->
    <tvdbid></tvdbid>                       <!-- the TheTVDB id of the series. An alternative to using id. For support of other scrapers -->
    <id></id>                       <!-- the TheTVDB id of the series. Use an id of 0 or -1 to disable further internet plugin scraping. -->
    <id moviedb="imdb"></id>        <!-- the IMDB id of the movie. includes the leading "tt" -->
    <id moviedb="allocine"></id>    <!-- the allocine id of the movie. This should work for other plugins using their PLUGIN_ID as "moviedb" value -->
    <id moviedb="filmweb"></id>     <!-- the filmweb id of the movie. This should work for other plugins using their PLUGIN_ID as "moviedb" value -->
    <trailer></trailer>             <!-- multiple trailer records may exist -->
    <genre></genre>                 <!-- multiple genre records may exist, including any custom ones -->
    <premiered></premiered>         <!-- the original air date of the series (YYYY-MM-DD) -->
    <company></company>             <!-- The studio company that produced the TV Show -->
    <studio></studio>               <!-- Synonym for company tag -->
    <country></country>             <!-- Country the video was produced in -->
    <watched></watched>             <!-- This will mark the WHOLE TV Season watched or unwatched -->
    <actor>                         <!-- multiple actor records may exist -->
        <name></name>
        <role></role>               <!-- currently unused in YAMJ -->
        <thumb></thumb>             <!-- currently unused in YAMJ -->
    </actor>
    <credits>
        <writer></writer>           <!-- Writer name, one per entry -->
    </credits>
    <director></director>
    <sets>
      <set>First Set Name</set>
      <set order="?">Another Set With An Order</set>
    </sets>
<!-- NOTE: All of the following tags will OVERWRITE the derived data -->
    <videosource></videosource>     <!-- The video source of the file -->
    <videooutput></videooutput>     <!-- The video output of the file -->
    <fps></fps>                     <!-- The Frames Per Second value for the movie. NOTE: This should be a valid float value (with a ".") -->
    <fileinfo>
        <container></container>     <!-- Container of the video -->
        <streamdetails>
            <video>
                <codec></codec>
                <aspect></aspect>
                <width></width>     <!-- Width of the video file -->
                <height></height>   <!-- Height of the video file -->
            </video>
            <audio>
                <codec></codec>
                <language></language>
                <channels></channels>
            </audio>
            <subtitle>
                <language></language>
            </subtitle>
        </streamdetails>
    </fileinfo>
</tvshow>

XBMC NFO episodedetails xml

Utilizes the XBMC tvshow layout as specified here http://xbmc.org/wiki/?title=Import_-_Export_Library#TV_Episodes_2

There are two ways that this detail can be used to override the jukebox either in individual NFO files saved with each episode, or as a group NFO named the same as the first episode.

The basic format of the NFO data is:

<episodedetails>
    <season>?</season>
    <episode>?</episode>
    <title>Title Of The Episode</title>
    <plot>The plot of the episode</plot>
    <aired></aired>        <!-- the air date of the epsiode (YYYY-MM-DD) -->
    <airsAfterSeason></airsAfterSeason>
    <airsBeforeSeason></airsBeforeSeason>
    <airsBeforeEpisode></airsBeforeEpisode>
</episodedetails>

You must fill in the Season and episode details for each episode.

For multiple episodes, simply repeat the episodedetails block multiple times, but they MUST be within an XML block:

<xml>
    <tvshow>
    </tvshow>

    <episodedetails>
    </episodedetails>

    <episodedetails>
    </episodedetails>

    <episodedetails>
    </episodedetails>
</xml>

XML Format

XML must be either provided in UTF-8 charset or the encoding must be explicitly specified in the xml header. See also mjb.forceNFOEncoding.

Example:

<?xml version="1.0" encoding="ISO 8859-2"?>
<tvshow>
Clone this wiki locally