My favorites | Sign in
Project Home Downloads Wiki Issues Source
Search
for
NFO_Files  
How to use .NFO files to enhance MovieJukebox's lookup
Phase-Deploy, NFO
Updated Dec 30, 2011 by Stuart.Boston

Contents

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.

Note (before version 1.0.14): If you create/edit a NFO file for a movie that has already been scanned by MovieJukebox, you will need to delete the generated files from the jukebox directory to enable MovieJukebox to re-generate the files. (Advanced Usage: Use the parameters mjb.force* to avoid this, see PropertiesConfiguration).

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.

You can then clear the movie specific files from the jukebox (twb_blood.html, twb_blood.jpg, twb_blood.png, twb_blood_small.jpg) and when MovieJukebox regenerates the files it will now use the link you have included in the .NFO file

Note: The whole .NFO file will be searched for the IMDB reference URL so other information can be stored in the file.

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 [CDx]

Example

Movie [CD1].avi
Movie [CD2].avi
Movie [CD1].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>
        <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>    <!-- currently unused in YAMJ -->
            </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>
    <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>
        <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>    <!-- currently unused in YAMJ -->
            </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>
...
Comment by project member altman.m...@gmail.com, Dec 10, 2008

< > and & are invalid XML cdata you can use their escape code equivalents: &lt; for < &gt; for > &amp; for &

Comment by fr.gra...@gmail.com, Dec 12, 2008

Thanks for the reply, but I can't get it to work:

ABCDEFG &lt;br&gt; ABCDEFG &lt;br /&gt;

Isn't it supposed to be right?

Comment by cyklone...@gmail.com, Dec 17, 2008

Cannot get the <thumb> to work. I have a jpg in same folder as .avi and .nfo. Am using <thumb>file://filename</thumb> But YAMJ not using the image for thumbs. no folders being used. Is there somewhere where the file has to go? Do you need a path also?

Comment by project member garp999@gmail.com, Dec 27, 2008

The ending tag for <tvshow> is incorrect, needs to be </tvshow>

For Multi-part movies, square brackets are NOT required and besides CDx, you can also use DISCx, DISKx or PARTx (keywords are NOT case sensitive)

Comment by TomasHal...@gmail.com, Dec 28, 2008

Same problem as cyklonefij. Dosen't even work with complete search path.

Comment by tomer.be...@gmail.com, Jan 1, 2009

I have a lot of Music videos going like this:

Folder MUSIC_VIDEOS contains all of this:

Folder: "AEROSMITH" contains: Aerosmith - Crazy.vob Aerosmith - Amazing.vob

Folder "The Corrs": The Corrs - Only when I sleep.vob The corrs - Radio.vob

What is the best way to handle these directories/files

Thanks in advance. Tomer

Comment by m0rp...@gmail.com, Jan 22, 2009

How does a NFO entry look like to reference a poster in the same folder as the movie itwself?

Comment by felgam...@gmail.com, Mar 25, 2009

i've heard specials on thetvdb should be treated as season 0, haven't tried it myself

Comment by chris.bu...@gmail.com, Apr 10, 2009

This wiki simply is not correct regarding XBMC NFO files. XBMC compatible generated NFO files, generated via MediaInfoPlus?, will not work with YAMJ. Please see http://code.google.com/p/moviejukebox/issues/detail?id=685&start=100

Comment by leighhun...@gmail.com, Apr 10, 2009

I'm having trouble with replacing the cover art for a tv series. I have created the .nfo file and entered only the URL. I have deleted the files for the series in the Jukebox folder and I have just edited the .nfo file and let the application detect the change and rescan the file.

I've also saving the image and using file://folder.jpg, without success.

Any advise? much appreciated. thanks in advance.

Comment by davidro...@gmail.com, Apr 22, 2009

tomer.ben.arye ... has the same issue I think there should be an easy way to do this. I have music videos all in one folder and they are all part1?..etc looks great except it is labeled from IMDB some crazy title. So someone please tell me how do I use the name I gave it "HD Videos" and have the titles show up, no .nfo file is what I thought would do it but it is titled wrong from IMDB and I can't change it.

Comment by hannson@gmail.com, Jun 4, 2009

I've got a question.

Can I define the spoken language for dubbed movies? If so, how and where can I find the country codes?

Comment by dw15...@gmail.com, Jun 13, 2009

This is a great help! But it does not handle home movies well. I have to re-title my home movies with some name that it will not find in IMDB. Is there a way to easily tell it "don't look up info for this title" and have it just use the generic movie reel and file name for the info?

Comment by henrik.j...@gmail.com, Jun 18, 2009

Almost same question as dw15308.. How do i force it NOT to lookup a movie. I have a docu that is not on IMDB, and it keeps finding a wrong movie. I just want yamj to show my own poster...

Comment by mattwil...@deloitte.com, Aug 18, 2009

I'm not sure if my question belongs in this section, but here goes. I have a couple of films that list alphatbetically, but due to the naming convention the 2nd film comes before the first, for example.

Star Wars Star Wars I Star Wars II Star Wars III Star Wars V Star Wars VI

the first entry is actually IV but due to the IMDB naming, this moves forward. Anyone know any neat tricks to move this into order? Also get this problem with Batman and other trilogy or 4 series films. Someone has suggested changing the NFO's, but I have no idea of what and where I need to change the info in the NFO.

Comment by thehunte...@gmail.com, Sep 6, 2009

My movie library consists mainly of VOBs. Some have the VIDEO_TS directory structure but many do not. In this case, all the VOBs are all in a single directory.

Everything works great with the VIDEO_TS folder movies but YAMJ does not process the other movies correctly. Instead it discovers each single VOB file as a "movie". Is this an NFO config issue or a YAMJ issue?

Any ideas?

Comment by spin...@gmail.com, Nov 6, 2009

Looking for some direction on DVD Sets.

I have the Jack Ryan Collection ( 4 DVDs ) Patriot Games.iso Clear And Present Danager.iso The Hunt For Red October.iso The Sum Of All Fears.iso

Do most people just break the set apart and list them individually or is their a more slick way to do with with the "set" command?

Comment by atikans...@gmail.com, Dec 22, 2009

I have some hindi movies whose information not available on IMDB Site, when i created my custome NFO file, its getting extra information from some closest english movie. i just want to use the my custom nfo file for YAMJ. any idea? how can YAM read and create the movie information using my custom NFO file.

Comment by project member Stuart.Boston, Dec 23, 2009

Just use 0 or -1 as the ID for the movie and information won't be scraped for it

Comment by ssole...@gmail.com, Feb 26, 2010

Does it work for alternative engines?. Would it work for filmaffinity plugin?

Comment by SegaZ...@gmail.com, Mar 20, 2010

can anyone help me? I have a series with episode names that are not match s0xe0y template. How can I generate a correct nfo file to create series page without episodes renaming? Are there any opportunities except hardlinks?

Comment by project member Stuart.Boston, Mar 21, 2010

No, the only option is to rename your files

Comment by SegaZ...@gmail.com, Mar 21, 2010

thats too bad. can' rename them because I seed them in torrents an option for that would be a great thing

Comment by SegaZ...@gmail.com, Mar 21, 2010

for example some config file that would say that filename.avi is s01e02.avi now i have to use hardlinks and filtering real files. this is not useful

Comment by babo...@numericable.fr, May 1, 2010

How can I assign a specific poster to a specific set ? It seems that the poster displayed on the wall view for a set is the poster of the first movie within the set. I expected YAMJ to use "setname.jpg" as default poster for a set, but it does not seem to work like that... Any way to assign a poster to a set ?

Comment by project member Stuart.Boston, May 2, 2010

Set<setname>1.jpg Set<setname>1.fanart.jpg Set<setname>1.banner.jpg

Comment by krab...@gmail.com, May 24, 2010

Is there a way to turn off internet scraping without setting the <id> element of all of my NFO files? It would be helpful to have a property in moviejukebox.properties.

Comment by project member Stuart.Boston, May 24, 2010
Comment by sbare...@gmail.com, Oct 31, 2011

Hello everybody, I'm experiencing the same problem as cyklone. Using XBMC NFO movie XML, the tag <thumb></thumb> dosen't work at all neither with "file://filename.jpg" (relative and complete path) nor with "http://filename.jpg". Any suggestion??

Comment by project member Stuart.Boston, Oct 31, 2011

Currently this functionality does not work well. I would suggest not using anything but http links to external services. You can try to specify the "file://" locations but it has to be defined correctly for your filesystem.

Comment by sbare...@gmail.com, Oct 31, 2011

Thank you for your prompt reply. I verified that the only way to have correct poster display is using a image file named as the video and leave empty the tag <thumb></thumb>.


Sign in to add a comment
Powered by Google Project Hosting