Artwork: Difference between revisions

From Official Kodi Wiki
Jump to navigation Jump to search
m (Robot: Substituting template: Name)
(15 intermediate revisions by 5 users not shown)
Line 1: Line 1:
{{Notice|Most of the naming conventions mentioned on this page have changed for XBMC v12 (Frodo), but haven't been updated yet. Most location conventions are still valid.  For a quick list of naming conventions see '''[[Frodo FAQ#Local images]]'''}}<br />
{{cleanup}}
{{cleanup}}


{{editor box|Here's the idea for the future of this page:
* The page itself will be a landing page for all topics about artwork:
** Move most of this to a "how to make your own artwork" page.
** A guide for using [[Add-on:Artwork Downloader]], which can be its own page or on the existing add-on page for Artwork downloader.
** A better how to guide on using advancedsettings.xml to change artwork size.
* consolidate and reorganize the following pages along with this page:
** [[Extra fanart]]
** [[FanArt]]
** [[Wide banner icons]]
}}
An impressive feature of XBMC is its ability to display custom '''thumbnails''' (also known as an "icon") on most items displayed. You can assign thumbnails to folders, programs, music, videos, bookmarks, and of course pictures. You can choose to let XBMC automatically download thumbnails for music-albums and video/movies from the internet or you can create your very own custom thumbnails. You can also download custom thumbnails that others have created.
An impressive feature of XBMC is its ability to display custom '''thumbnails''' (also known as an "icon") on most items displayed. You can assign thumbnails to folders, programs, music, videos, bookmarks, and of course pictures. You can choose to let XBMC automatically download thumbnails for music-albums and video/movies from the internet or you can create your very own custom thumbnails. You can also download custom thumbnails that others have created.


Line 43: Line 51:
  Movies\path\'''moviename.avi'''
  Movies\path\'''moviename.avi'''
  Movies\path\'''moviename-poster.(jpg/png)'''
  Movies\path\'''moviename-poster.(jpg/png)'''
  Movies\path\'''moviename.tbn''' *Depricated, Eden format but still functional
  Movies\path\'''moviename.jpg'''


== Folder Thumbnails ==
== Folder Thumbnails ==
{|
{|
| valign="top" |
| valign="top" |
If you store each of your media files in separate subfolders to keep things organized, you can also make the folder have a custom thumbnail image. To do this you either need to save your JPG/PNG thumbnail as folder.jpg and place it inside your movie/album folder, or you can save it as <foldername>.tbn and place it at the same level as the folder in the directory tree.
If you store each of your media files in separate subfolders to keep things organized, you can also make the folder have a custom thumbnail image. To do this you either need to save your JPG/PNG thumbnail as folder.jpg and place it inside your movie/album folder, or you can save it as <foldername>deprecated and place it at the same level as the folder in the directory tree.
* Remember, XBMC first checks for <foldername>.tbn before checking for folder.jpg.
* Remember, XBMC first checks for <foldername>.jpg before checking for folder.jpg.
* Some documentation suggests that folder.tbn can be used. In general folder.jpg is superior as it is detected during a scan, i.e. XBMC will correctly use folder.jpg but not folder.tbn.
* Some documentation suggests that folder.jpg can be used. In general folder.jpg is superior as it is detected during a scan, i.e. XBMC will correctly use folder.jpg but not folder.jpg.
* Note that folder.jpg '''must''' be named .jpg, even if it is a .png format image.
* Note that folder.jpg '''must''' be named .jpg, even if it is a .png format image.
* You can force XBMC to look for folder image (Cover Art) files with different file names to "folder.jpg" (eg. cover.jpg, poster.jpg) by setting the [http://wiki.xbmc.org/index.php?title=Userdata/advancedsettings.xml#.3Cdvdthumbs.3E <dvdthumbs>] tag in the [http://wiki.xbmc.org/index.php?title=Userdata/advancedsettings.xml advancedsettings.xml] file.


<br />
<br />
'''Examples:'''
'''Examples:'''
  Movies\path\'''foldername'''\
  Movies\path\'''foldername'''\
  Movies\path\'''foldername.tbn'''
  Movies\path\'''foldername.jpg'''
or
or
  Movies\path\moviename\'''folder.jpg'''
  Movies\path\moviename\'''folder.jpg'''
Line 70: Line 77:


== Program Thumbnails ==
== Program Thumbnails ==
In order to display the image displayed for a game, emulator or application, simply rename the desired image '''default.tbn''' and place it in the folder where the corresponding default.XBE is located.
In order to display the image displayed for a game, emulator or application, simply rename the desired image '''default.jpg''' and place it in the folder where the corresponding default.XBE is located.


== Music Thumbnails ==
== Music Thumbnails ==
Line 90: Line 97:
;1) Cached Album Thumbnail
;1) Cached Album Thumbnail
:This is all the embedded album art read by the tag reader and cached using the album name and album artist.
:This is all the embedded album art read by the tag reader and cached using the album name and album artist.
;2) Cached filename.tbn
;2) Cached filename.jpg
:This includes an embedded thumbnail cached with the fully qualified name.
:This includes an embedded thumbnail cached with the fully qualified name.
;3) Remote filename.tbn
;3) Remote filename.jpg
:This is a filename.tbn on a remote share/folder which is then cached.
:This is a filename.jpg on a remote share/folder which is then cached.
;4) Cached folder.jpg  
;4) Cached folder.jpg  
:This is a folder.jpg which is cached based off the folder path.
:This is a folder.jpg which is cached based off the folder path.
;5) Remote folder.jpg  
;5) Remote folder.jpg  
:This is a folder.jpg on a remote share/folder which is then cached.
:This is a folder.jpg on a remote share/folder which is then cached.
;6) Remote foldername.tbn
;6) Remote foldername.jpg
:This is a foldername.tbn on a remote share/folder which is then cached.<br /><br />
:This is a foldername.jpg on a remote share/folder which is then cached.<br /><br />


'''Examples:'''
'''Examples:'''


In this example audiofilename.mp3 will use audiofilename.tbn as thumbnail:
In this example audiofilename.mp3 will use audiofilename.jpg as thumbnail:
  Music\path\'''audiofilename.mp3'''
  Music\path\'''audiofilename.mp3'''
  Music\path\'''audiofilename.tbn'''
  Music\path\'''audiofilename.jpg'''


The same goes for playlists, cue-sheets, SHOUTcast, and [[HOW-TO: Play Internet Streams|internet-stream files]], example:
The same goes for playlists, cue-sheets, SHOUTcast, and [[HOW-TO: Play Internet Streams|internet-stream files]], example:
  Music\path\'''audioplaylistname.m3u'''
  Music\path\'''audioplaylistname.m3u'''
  Music\path\'''audioplaylistname.tbn'''
  Music\path\'''audioplaylistname.jpg'''
  Music\path\'''cuelistname.cue'''
  Music\path\'''cuelistname.cue'''
  Music\path\'''cuelistname.mp3'''
  Music\path\'''cuelistname.mp3'''
  Music\path\'''cuelistname.tbn'''
  Music\path\'''cuelistname.jpg'''
  Music\path\'''shoutcastlinkname.pls'''
  Music\path\'''shoutcastlinkname.pls'''
  Music\path\'''shoutcastlinkname.tbn'''
  Music\path\'''shoutcastlinkname.jpg'''
  Music\path\'''audiostreamname.strm'''
  Music\path\'''audiostreamname.strm'''
  Music\path\'''audiostreamname.tbn'''
  Music\path\'''audiostreamname.jpg'''
 
::Music fanart
{{see also|FanArt#Music_FanArt_in_XBMC}}


== Video Thumbnails ==
== Video Thumbnails ==
You can either use your own custom thumbnails or XBMC can retrieve video thumbnails from the internet via [[How To use Scrapers|scrapers]] and cache them locally.<br />
[[File:Files.videos.thumbnails.WSCR.jpg|right|500px]]
You can either use your own custom thumbnails or XBMC can retrieve video thumbnails from the internet via [[How To use Scrapers|scrapers]] and cache them locally.
 
 
'''XBMC applies thumbnails to video files in the following order:'''
'''XBMC applies thumbnails to video files in the following order:'''
{|
| valign="top" |
;1) Cached Thumbnail
;1) Cached Thumbnail
Thumbnails are cached to UserData\Thumbnails\Video using the CRC of the path of the file or folder.
Thumbnails are cached to UserData\Thumbnails\Video using the CRC of the path of the file or folder.
Line 130: Line 141:


XBMC looks for '''<filename>-poster.(jpg/png)''' in the folder containing the media files and uses that as the thumbnail.
XBMC looks for '''<filename>-poster.(jpg/png)''' in the folder containing the media files and uses that as the thumbnail.
Note: <filename>.tbn will supersede '''<filename>-poster.(jpg/png)''' (result of Eden backward compatibility)  
Note: <filename>.jpg will supersede '''<filename>-poster.(jpg/png)''' (result of Eden backward compatibility)  


The thumbnail is cached the first time it is read.<br />
The thumbnail is cached the first time it is read.<br />


'''Note: Deprecated, no longer functional as of Frodo''' -If movie.tbn is in the same folder it will override any other thumbnail and will be used as the thumbnail for all movie files in that folder.-
{{redv|Deprecated:|If movie.jpg is in the same folder it will override any other thumbnail and will be used as the thumbnail for all movie files in that folder.}}
'''End Deprecation'''


'''For folders:'''  
'''For folders:'''  
Line 143: Line 153:
*'''poster.(jpg/png)'''
*'''poster.(jpg/png)'''
*'''folder.jpg'''
*'''folder.jpg'''
'''Note: Deprecated, no longer functional as of Frodo''' - XBMC first checks for <foldername>.tbn in the parent folder of the movie folder being processed.
{{redv|Deprecated:|XBMC first checks for <foldername>.jpg in the parent folder of the movie folder being processed.
 
If no <foldername>.tbn exists in the parent folder XBMC then checks inside the movie folder for folder.jpg (by default) or any other thumbnail source file names you've specified in the [http://wiki.xbmc.org/index.php?title=Userdata/advancedsettings.xml#.3Cdvdthumbs.3E <dvdthumbs>] tag in [http://wiki.xbmc.org/index.php?title=Userdata/advancedsettings.xml advancedsettings.xml].


'''End Deprecation'''
If no <foldername>.jpg exists in the parent folder XBMC then checks inside the movie folder for folder.jpg (by default) or any other thumbnail source file names you've specified in the <dvdthumbs> tag in [[AdvancedSettings.xml]].}}


'''For TV series specifically:'''
'''For TV series specifically:'''


'''This info is all deprecated and no longer functions as of Frodo'''
{{redv|Deprecated:|The thumbnail image can be either a Poster type image OR a Banner type image. A Poster is longer than it is wide in aspect and a Banner is much wider than it is long in aspect.
 
The thumbnail image can be either a Poster type image OR a Banner type image. A Poster is longer than it is wide in aspect and a Banner is much wider than it is long in aspect.


The same rules apply regarding file naming conventions and by default XBMC will look for folder.jpg for BOTH Posters AND Banners despite the fact that the naming convention might seem  
The same rules apply regarding file naming conventions and by default XBMC will look for folder.jpg for BOTH Posters AND Banners despite the fact that the naming convention might seem  
Line 167: Line 173:


The above example will make XBMC ignore all variants of folder.jpg when searching for thumbnails but recognise multiple variants of banner.jpg and cover.jpg and import those instead.
The above example will make XBMC ignore all variants of folder.jpg when searching for thumbnails but recognise multiple variants of banner.jpg and cover.jpg and import those instead.
 
}}
'''End Deprecation'''
{{note|<code>TV series:</code>}}
{{note|<code>TV series:</code>}}


Line 178: Line 183:
As of Frodo, XBMC will import Banners and Posters.  
As of Frodo, XBMC will import Banners and Posters.  


'''Deprecated as of Frodo'''
{{redv|Deprecated:|Fortunately there is a special exception to this rule for TV Series where XBMC will also recognise and import a file called poster.jpg over and above the default thumbnail image.  
Fortunately there is a special exception to this rule for TV Series where XBMC will also recognise and import a file called poster.jpg over and above the default thumbnail image.  


For this reason you should NEVER name your primary thumbnail images poster.jpg and you should NEVER modify the <dvdthumbs> element in advancedsettings.xml to make it search for variants of poster.jpg.
For this reason you should NEVER name your primary thumbnail images poster.jpg and you should NEVER modify the <dvdthumbs> element in advancedsettings.xml to make it search for variants of poster.jpg.


Effectively, you should consider the file name poster.jpg to be a reserved file name in XBMC that is used specifically to solve the Banner / Poster combo issue as described further below.
Effectively, you should consider the file name poster.jpg to be a reserved file name in XBMC that is used specifically to solve the Banner / Poster combo issue as described further below.}}
 
'''End Deprecation'''


Certain skins, like Aeon Nox, typically provide an option in the settings for the View itself that allows you to explicitly stipulate that a poster file should be used for those areas where a Poster type image is applicable.
Certain skins, like Aeon Nox, typically provide an option in the settings for the View itself that allows you to explicitly stipulate that a poster file should be used for those areas where a Poster type image is applicable.
Line 195: Line 197:


{{note|However, that regardless of any settings, poster.jpg will NOT be used as the All Seasons image. For that you MUST provide a season-all.(jpg/png) file. A quick workaround to this problem is to copy an existing poster.jpg file and rename it to season-all.(jpg/png). That will actually work and import fine.}}
{{note|However, that regardless of any settings, poster.jpg will NOT be used as the All Seasons image. For that you MUST provide a season-all.(jpg/png) file. A quick workaround to this problem is to copy an existing poster.jpg file and rename it to season-all.(jpg/png). That will actually work and import fine.}}
|
[[File:Files.videos.thumbnails.WSCR.jpg|right|500px]]
|}


==== Examples for User-Defined Video Thumbnails ====
==== Examples for User-Defined Video Thumbnails ====
Line 205: Line 203:
  Movies\path\'''videofilename-poster.(jpg/png)'''
  Movies\path\'''videofilename-poster.(jpg/png)'''
  Movies\path\'''videofilename.avi'''
  Movies\path\'''videofilename.avi'''
Note that '''videofilename.tbn''' is old Eden terminology, but WILL supersede '''videofilename-poster.(jpg/png)''' which is the standard for Frodo and later versions of XBMC.
Note that '''videofilename.jpg''' is old Eden terminology, but WILL supersede '''videofilename-poster.(jpg/png)''' which is the standard for Frodo and later versions of XBMC.


;Multi Part (Stacked) Video Files
;Multi Part (Stacked) Video Files
Line 213: Line 211:
  Movies\path\'''moviename-CD2.avi'''
  Movies\path\'''moviename-CD2.avi'''
Either of the below would work:
Either of the below would work:
  Movies\path\'''moviename-CD1.tbn'''
  Movies\path\'''moviename-CD1.jpg'''
  Movies\path\'''moviename.tbn'''
  Movies\path\'''moviename.jpg'''


;Movies in Folders
;Movies in Folders
'''Note Deprecated as of Frodo''' - If [[Set Content (Video Library)|content]] has been set to Movies, movie.tbn will override any other thumbs for media in that folder.<br />
{{redv|Deprecated:|If [[Set Content (Video Library)|content]] has been set to Movies, movie.jpg will override any other thumbs for media in that folder.}}<br />  
'''End Deprecation'''<br />
In the following example "videofilename.avi" will now use the thumbnail "poster.(jpg/png)".
In he following example "videofilename.avi" will now use the thumbnail "poster.(jpg/png)".


  Movies\path\'''poster.(jpg/png)'''
  Movies\path\'''poster.(jpg/png)'''
  Movies\path\'''videofilename.avi'''
  Movies\path\'''videofilename.avi'''
Note that movie.tbn will supersede '''poster.jpg''' due to Eden backward compatibility
Note that movie.jpg will supersede '''poster.jpg''' due to Eden backward compatibility


;TV Shows
;TV Shows
  TV\showfolder\'''poster.(jpg/png)'''
  TV\showfolder\'''poster.(jpg/png)'''
  or
  or
  TV\showfolder\'''banner.jpg''' '''Note - Deprecated as of Frodo'''( See [http://wiki.xbmc.org/index.php?title=Userdata/advancedsettings.xml#.3Cdvdthumbs.3E <dvdthumbs>] in [http://wiki.xbmc.org/index.php?title=Userdata/advancedsettings.xml advancedsettings.xml] ) '''End Deprecation'''
  TV\showfolder\'''banner.jpg'''  
{{redv|Deprecated:|See [[http://wiki.xbmc.org/index.php?title=Userdata/advancedsettings.xml#.3Cdvdthumbs.3E <dvdthumbs>]] in [[http://wiki.xbmc.org/index.php?title=Userdata/advancedsettings.xml advancedsettings.xml]] }}


;TV Show Season Thumbnails
;TV Show Season Thumbnails
Line 275: Line 273:
;Playlist and [[HOW-TO: Play Internet Streams|internet-stream file]] examples
;Playlist and [[HOW-TO: Play Internet Streams|internet-stream file]] examples
  Playlists\path\'''videoplaylistname.pls'''
  Playlists\path\'''videoplaylistname.pls'''
  Playlists\path\'''videoplaylistname.tbn'''
  Playlists\path\'''videoplaylistname.jpg'''
  Streams\path\'''videostreamname.strm'''
  Streams\path\'''videostreamname.strm'''
  Streams\path\'''videostreamname.tbn'''
  Streams\path\'''videostreamname.jpg'''


;Actor thumbnails
;Actor thumbnails
Line 326: Line 324:
==== [[Music Settings#Files|Music]] ====
==== [[Music Settings#Files|Music]] ====
Auto switches to Thumb view when the list contains at least 75% folders and at least 50% of them have thumbs. (Remember that playlist files like m3u, pls, etc, are treated as folders by default)
Auto switches to Thumb view when the list contains at least 75% folders and at least 50% of them have thumbs. (Remember that playlist files like m3u, pls, etc, are treated as folders by default)
 
{{frodo updated}}
== Hashing ==
The thumbnail .tbn file is created via a hashing function. As explained earlier, the hash is based off the CRC32 of the pathname (plus filename) in lowercase. Files which are local are hashed using their drive letter. Remote files are hashed using the <code>smb://</code> protocol designation and optional username and password.
 
=== Examples ===
* '''<code>123456789</code>''' returns '''<code>0376e6e7</code>'''
* '''<code>F:\Videos\Nosferatu.avi</code>''' returns '''<code>2a6ec78d</code>'''
* '''<code>smb://user:pass@server/share/directory/</code>''' returns '''<code>c5559f13</code>'''
* '''<code>smb://user:pass@server/share/directory/file.ext</code>''' returns '''<code>8ce36055</code>'''
 
{{tip|<u>'''Remember:'''</u>}}
* When hashing remote shares, use the path as displayed in the <code>sources.xml</code> file, which can include the ''username'' and ''password''.
* When hashing directories for thumbnails, include the final slash.
 
=== Sample code ===
The following code snippets produce the same output as the XBMC hashing function.
==== C# ====
public string Hash(string input)
{
    char[] chars = input.ToCharArray();
    for (int index = 0; index < chars.Length; index++)
    {
        if (chars[index] <= 127)
        {
          chars[index] = System.Char.ToLowerInvariant(chars[index]);
        }
    }
    input = new string(chars);
    uint m_crc = 0xffffffff;
    byte[] bytes = System.Text.Encoding.UTF8.GetBytes(input);
    foreach (byte myByte in bytes)
    {
        m_crc ^= ((uint)(myByte) << 24);
        for (int i = 0; i < 8; i++)
        {
            if ((System.Convert.ToUInt32(m_crc) & 0x80000000) == 0x80000000)
            {
                m_crc = (m_crc << 1) ^ 0x04C11DB7;
            }
            else
            {
                m_crc <<= 1;
            }
        }
    }
    return String.Format("{0:x8}", m_crc);
}
 
==== Python ====
Code provided by [http://forum.xbmc.org/member.php?u=117767 baderj].
def get_crc32( string ):
    string = string.lower()       
    bytes = bytearray(string.encode())
    crc = 0xffffffff;
    for b in bytes:
        crc = crc ^ (b << 24)         
        for i in range(8):
            if (crc & 0x80000000 ):               
                crc = (crc << 1) ^ 0x04C11DB7               
            else:
                crc = crc << 1;                       
        crc = crc & 0xFFFFFFFF
       
    return '%08x' % crc
 
==== Perl ====
Code provided by [http://forum.xbmc.org/member.php?u=117767 baderj].
sub get_crc32 {
    my $string = shift;
    my @bytes = unpack 'C*', $string;
    my $crc = 0xffffffff;
    for my $b (@bytes) {       
        $crc = $crc ^ ($b << 24);       
        for(my $i = 0; $i < 8; $i++) {
            if ($crc & 0x80000000 ) {               
                $crc = ($crc << 1) ^ 0x04C11DB7;               
            } else {
                $crc = $crc << 1;
            }           
        }       
        $crc = $crc & 0xFFFFFFFF;       
    }
    return sprintf('%08x', $crc);
}
==== PHP ====
Code provided by [http://forum.xbmc.org/member.php?u=59588 tamplan] and [http://forum.xbmc.org/member.php?u=104085 narfight].
  private function _get_hash($file_path)
{
    $chars = strtolower($file_path);
    $crc = 0xffffffff;
    for ($ptr = 0; $ptr < strlen($chars); $ptr++)
    {
      $chr = ord($chars[$ptr]);
      $crc ^= $chr << 24;
      for ((int) $i = 0; $i < 8; $i++)
      {
          if ($crc & 0x80000000)
          {
            $crc = ($crc << 1) ^ 0x04C11DB7;
          }
          else
          {
            $crc <<= 1;
          }
      }
    }
    // Système d'exploitation en 64 bits ?
    if (strpos(php_uname('m'), '_64') !== false)
    {
      //Formatting the output in a 8 character hex
      if ($crc>=0)
      {
          $hash = sprintf("%16s",sprintf("%x",sprintf("%u",$crc)));
      }
      else
      {
          $source = sprintf('%b', $crc);
          $hash = "";
          while ($source <> "")
          {
            $digit = substr($source, -4);
            $hash = dechex(bindec($digit)) . $hash;
            $source = substr($source, 0, -4);
          }
      }
      $hash = substr($hash, 8);
    }
    else
    {
      //Formatting the output in a 8 character hex
      if ($crc>=0)
      {
          $hash = sprintf("%08s",sprintf("%x",sprintf("%u",$crc)));
      }
      else
      {
          $source = sprintf('%b', $crc);
          $hash = "";
          while ($source <> "")
          {
            $digit = substr($source, -4);
            $hash = dechex(bindec($digit)) . $hash;
            $source = substr($source, 0, -4);
          }
      }
    }
    return $hash;
}
 
==== Javascript ====
Code provided by [http://forum.xbmc.org/member.php?u=48334 Fiasco] and [http://forum.xbmc.org/member.php?u=117767 baderj].
Number.prototype.unsign = function(bytes) {
    return this >= 0 ? this : Math.pow(256, bytes || 4) + this;
};
function FindCRC(data) {
    var CRC = 0xffffffff;
    data = data.toLowerCase();
    for ( var j = 0; j < data.length; j++) {
      var c = data.charCodeAt(j);
      CRC ^= c << 24;
      for ( var i = 0; i < 8; i++) {
          if (CRC.unsign(8) & 0x80000000) {
            CRC = (CRC << 1) ^ 0x04C11DB7;
          } else {
            CRC <<= 1;
          }
      }
    }
    if (CRC < 0)
      CRC = CRC >>> 0;
    var CRC_str = CRC.toString(16);
    while (CRC_str.length < 8) {
      CRC_str = '0' + CRC_str;
    }
    return CRC_str;
}
 
==== MySQL Function ====
Found this to be very useful when using a MySQL backend and moving/updating files. Code provided by [[User:Nxj18]]
 
<pre>
create function fnXBMCHash(sourceString VARCHAR(2000))
returns varchar(8) deterministic
begin
    declare crc bigint unsigned; -- bigint to prevent casting/overflow issues
    declare len, cur, i int;
    declare mask, xorBase, curCharCode, intMask bigint unsigned;
   
    set intMask = pow(2,32) - 1;
    set crc = pow(2,32) - 1; -- 0xFFFFFFFF
    set sourceString = LOWER(TRIM(sourceString));
    set mask = pow(2,31);  -- 0x8000000
    set xorBase = 79764919; -- 0x04C11DB7
    set len = LENGTH(sourceString), cur = 0;
    while cur < len do
        set curCharCode = ASCII(SUBSTRING(sourceString,cur+1,1));
        set crc = (crc ^ (curCharCode << 24)) & intMask;
        set i = 0;
        while i < 8 do
            set crc = (case (crc & mask)
                when mask then (crc << 1) ^ xorBase
                else (crc << 1) end) & intMask;
            set i = i + 1;
        end while;
        set cur = cur + 1;
    end while;
    return lpad(hex(crc),8,'0');
end;
</pre>
 
==== AutoIT function ====
Code provided by [http://forum.xbmc.org/member.php?action=profile&uid=125795 Nexus.Commander].
 
<pre>
func CRC32_XBMC($string_input)
$chars = StringSplit(StringLower($string_input),'',2)
$crc = 0xffffffff
For $ptr = 0 To UBound($chars)-1
$chr = StringToBinary($chars[$ptr],4)
$crc = BitXOR($crc,BitShift($chr,-24))
For $i = 0 To 7
if BitAND($crc,0x80000000) = 0x80000000 Then
$crc = BitXOR(BitShift($crc,-1),0x04C11DB7)
else
$crc = BitShift($crc,-1)
EndIf
Next
Next
Return Hex($crc)
EndFunc
</pre>
 
==== Java ====
Code provided by [http://forum.xbmc.org/member.php?action=profile&uid=80320 Duffy].
 
  public String Hash(String input) {
    int m_crc = 0xffffffff;
    input = input.toLowerCase();
    byte msg[] = input.getBytes();
    for (int i = 0; i < msg.length; i++) {
      int p = (msg[i]) << 24;
      m_crc ^= p;
      for (int j = 0; j < 8; j++) {
        if ((m_crc & 0x80000000) == 0x80000000) {
          m_crc = (m_crc << 1) ^ 0x04C11DB7;
        }
        else {
          m_crc <<= 1;
        }
      }
    }
    return String.format("%08x", m_crc);
  }


[[Category:Thumbnails]]
[[Category:Thumbnails]]
[[Category:Scraper]]
[[Category:Scraper]]
[[Category:Video Library]]
[[Category:Video library]]
[[Category:Music Library]]
[[Category:Music library]]
[[Category:XBMC Manual]]
[[Category:XBMC Manual]]

Revision as of 20:11, 5 June 2014

Cleanup.png This page or section may require cleanup, updating, spellchecking, reformatting and/or updated images. Please improve this page if you can. The discussion page may contain suggestions.


Template:Editor box An impressive feature of XBMC is its ability to display custom thumbnails (also known as an "icon") on most items displayed. You can assign thumbnails to folders, programs, music, videos, bookmarks, and of course pictures. You can choose to let XBMC automatically download thumbnails for music-albums and video/movies from the internet or you can create your very own custom thumbnails. You can also download custom thumbnails that others have created.

When talking about movies the terms "Cover Art", "Posters" (term used on TheTVDB) and "Folder Image" are all used to refer to the same thing we are talking about here. In the XBMC world Thumbnail is the generic term that encompasses all of those things, so don't get confused.

Note: Despite what the term Thumbnail implies, thumbnails in XBMC are NOT necessarily small images in terms of resolution or size on disk. A Thumbnail in XBMC can be a 800 x 1200 pixel image with a file size of over 300 Kilobytes for example, but typically thumbnails are restricted to smaller sizes than that due to performance concerns.


Custom Thumbnails

You can easily create your very own user-defined thumbnails on your computer with image tools like Adobe Photoshop, Paint Shop Pro, Paint.NET or even Paint in Windows.
You can alternatively download thumbnails that others have created on the internet. Then you simply have to rename those thumbnails and transfer/copy them to the right location and XBMC will display them. Use JPG or PNG (with transparency) image-format, and size of the picture to anything from 128x128 to 256x256 in pixel size, (the larger the image is the better it will look on a good display but at the same time large thumbnails loads slower). On a non-HDTV displays a image that is approx 100x140 is recommended for video/movies thumbnails (which is the size that is most common on IMDb), and approx 75x75 for music-albums (which is the default size on allmusic.com). For 720p/1080i HDTV displays a size of approx 182x256 for video/movies thumbnails, and approx 200x200 for music-albums (such music-albums can be found on allmusic.com).

Thumbnail Cache

see also: ThumbnailCache for a thorough description of the thumbnail cache

XBMC will cache all thumbnails to userdata\Thumbnails\ using the CRC of the path of the file or folder as a filename. That is the first location XBMC will generally look for a thumbnail for a given item.

In order for your custom thumbnail to show, you may have to delete the cached thumbnail.

When thumbnails are cached they may be scaled down from the source image. How much they are scaled down depends on a setting that you can control using the <imageres> tag in advancedsettings.xml.

If you are running XBMC on a very high resolution display and you have Movie cover art, for example, that is displayed as a very large image onscreen with the skin and layout that you are using, then you may want to adjust the <imageres> tag to increase the display quality of your thumbnails.

Be aware, however, that increasing the size of cached thumbnails obviously carries an implied disk space usage, and possible XBMC performance penalty, with it.

Wide banner icons

Wide view for TV shows

Some of the most visually appealing forms of thumbnails are wide banner icons. They are an integral part of the XBMC look and feel and are used for the TV shows library.
With different adjustments to the skin XML files, you may disable title names or stack one icon on top of another.
To show wide banner icons switch to Wide or 'Media info 2' view. XBMC will remember what view you have for each folder. Thus you can keep your TV shows in Wide and your Movies in Fanart.


Thumbnails for individual items in a single directory

Name the icon file the same as the file you would like it to display for with a -poster.jpg or -poster.png extension ie: Transformers.avi, Transformers-poster.jpg. This is particularly useful for using custom thumbnails for movies.

Example:

Movies\path\moviename.avi
Movies\path\moviename-poster.(jpg/png)
Movies\path\moviename.jpg

Folder Thumbnails

If you store each of your media files in separate subfolders to keep things organized, you can also make the folder have a custom thumbnail image. To do this you either need to save your JPG/PNG thumbnail as folder.jpg and place it inside your movie/album folder, or you can save it as <foldername>deprecated and place it at the same level as the folder in the directory tree.

  • Remember, XBMC first checks for <foldername>.jpg before checking for folder.jpg.
  • Some documentation suggests that folder.jpg can be used. In general folder.jpg is superior as it is detected during a scan, i.e. XBMC will correctly use folder.jpg but not folder.jpg.
  • Note that folder.jpg must be named .jpg, even if it is a .png format image.


Examples:

Movies\path\foldername\
Movies\path\foldername.jpg

or

Movies\path\moviename\folder.jpg
Music\path\album\folder.jpg

Now your media folder will have a lovely custom thumbnail-image.

You can via advancedsettings.xml change the default filename of the image that XBMC uses for music folders. See the <musicthumbs> tag. for more information.

Files.myvideos.jpg

Program Thumbnails

In order to display the image displayed for a game, emulator or application, simply rename the desired image default.jpg and place it in the folder where the corresponding default.XBE is located.

Music Thumbnails

Music Thumbnails are assigned as part of a multi-tier process. First, the Tag Reader runs and caches any embedded art using the album name and album artist (or song artist, if that is all that is available). If the album name or artist is unavailable, it is cached using the path name of the song. This assumes, of course, that you have tag reading enabled.
You can also use "Get Thumb" to download the album thumbnail from allmusic.com (AMG) for a specific album/folder or do a scan of all your music files in all shares.
Thumbnails also get downloaded when you rip AudioCD's to your XBMC device (which is described in the Ripping CDs section).
Recommended is that you store each of your music-albums or artists in a separate subfolder to keep things organized. You can also of course make the folder have a custom thumbnail image.

Note: Running a scan automatically enables 'tag reading' so everything can be cached. Once a scan is run, all your files and their associated thumbnails are stored in the database.
The Album Information dialog (available from the context menu) will allow you to choose between the cover art available for download from allmusic.com and any user-defined thumbnail you may have.
Press the "Get Thumb" button to bring up a choice of the local thumbnails you have, the currently assigned thumbnail and the allmusic.com thumbnail.

The code which assigns thumbnails to files runs and assigns thumbnails in the following order:

1) Cached Album Thumbnail
This is all the embedded album art read by the tag reader and cached using the album name and album artist.
2) Cached filename.jpg
This includes an embedded thumbnail cached with the fully qualified name.
3) Remote filename.jpg
This is a filename.jpg on a remote share/folder which is then cached.
4) Cached folder.jpg
This is a folder.jpg which is cached based off the folder path.
5) Remote folder.jpg
This is a folder.jpg on a remote share/folder which is then cached.
6) Remote foldername.jpg
This is a foldername.jpg on a remote share/folder which is then cached.

Examples:

In this example audiofilename.mp3 will use audiofilename.jpg as thumbnail:

Music\path\audiofilename.mp3
Music\path\audiofilename.jpg

The same goes for playlists, cue-sheets, SHOUTcast, and internet-stream files, example:

Music\path\audioplaylistname.m3u
Music\path\audioplaylistname.jpg
Music\path\cuelistname.cue
Music\path\cuelistname.mp3
Music\path\cuelistname.jpg
Music\path\shoutcastlinkname.pls
Music\path\shoutcastlinkname.jpg
Music\path\audiostreamname.strm
Music\path\audiostreamname.jpg
Music fanart

Video Thumbnails

Files.videos.thumbnails.WSCR.jpg

You can either use your own custom thumbnails or XBMC can retrieve video thumbnails from the internet via scrapers and cache them locally.


XBMC applies thumbnails to video files in the following order:

1) Cached Thumbnail

Thumbnails are cached to UserData\Thumbnails\Video using the CRC of the path of the file or folder.

2) User-Defined Thumbnail

For files:

XBMC looks for <filename>-poster.(jpg/png) in the folder containing the media files and uses that as the thumbnail. Note: <filename>.jpg will supersede <filename>-poster.(jpg/png) (result of Eden backward compatibility)

The thumbnail is cached the first time it is read.

Deprecated: If movie.jpg is in the same folder it will override any other thumbnail and will be used as the thumbnail for all movie files in that folder.


For folders:

XBMC checks inside the movie folder for the following files in this order:

  • <filename>-poster.(jpg/png)
  • poster.(jpg/png)
  • folder.jpg
Deprecated: XBMC first checks for <foldername>.jpg in the parent folder of the movie folder being processed. If no <foldername>.jpg exists in the parent folder XBMC then checks inside the movie folder for folder.jpg (by default) or any other thumbnail source file names you've specified in the <dvdthumbs> tag in AdvancedSettings.xml.


For TV series specifically:

Deprecated: The thumbnail image can be either a Poster type image OR a Banner type image. A Poster is longer than it is wide in aspect and a Banner is much wider than it is long in aspect.

The same rules apply regarding file naming conventions and by default XBMC will look for folder.jpg for BOTH Posters AND Banners despite the fact that the naming convention might seem counter intuitive in the case of Banners.

Note: Deprecated as of Frodo <dvdthumbs> is no longer part of advancedsettings.xml - Again, you can use the <dvdthumbs> element in advancedsettings.xml to override the default thumbnail file name that XBMC looks for to make things more meaningful for TV series. If, for example, you prefer to use Banners you would probably want to set the <dvdthumbs> element in advancedsettings.xml to remove folder.jpg from the search filter and add banner.jpg to the search filter as follows:

 <dvdthumbs>
<remove>folder.jpg

Note: TV series:

There is a special case with TV Series where, if you choose to use Banners as your primary thumbnails, you also need Posters in some areas of the UI depending on which skin you are using.

The Aeon Nox skin, which is extremely popular, has a very nice View mode called BannerPlex for example. If you are using that View as your TV Series View, your primary thumbnails for your TV series will be Banners BUT there are still places where you need to supply a Poster, like the "TV show information" screen that is accessible from the context menu for a Series. In that screen you need a Poster image for the big area on the left that takes up a third of the screen. By default the Banner thumbnail that XBMC imported will be stretched vertically to fill that area and it looks horrible.

As of Frodo, XBMC will import Banners and Posters.

Deprecated: Fortunately there is a special exception to this rule for TV Series where XBMC will also recognise and import a file called poster.jpg over and above the default thumbnail image.

For this reason you should NEVER name your primary thumbnail images poster.jpg and you should NEVER modify the <dvdthumbs> element in advancedsettings.xml to make it search for variants of poster.jpg.

Effectively, you should consider the file name poster.jpg to be a reserved file name in XBMC that is used specifically to solve the Banner / Poster combo issue as described further below.


Certain skins, like Aeon Nox, typically provide an option in the settings for the View itself that allows you to explicitly stipulate that a poster file should be used for those areas where a Poster type image is applicable.


In Aeon Nox, the setting is on the slide out menu on the left of the screen when you are viewing your series. If you have the BannerPlex view activated and you slide out that menu, then go to "Viewtype settings", then look under "GENERAL OPTIONS", you will find an option labelled "Use 'poster.jpg' for poster style viewtypes". If you turn that on, then any poster.jpg that you have in your folders when you import your media from disk will be used where a poster type image is appropriate.

Note: However, that regardless of any settings, poster.jpg will NOT be used as the All Seasons image. For that you MUST provide a season-all.(jpg/png) file. A quick workaround to this problem is to copy an existing poster.jpg file and rename it to season-all.(jpg/png). That will actually work and import fine.

Examples for User-Defined Video Thumbnails

Single Video File

The following example "videofilename.avi" will now use the thumbnail "videofilename-poster.(jpg/png)".

Movies\path\videofilename-poster.(jpg/png)
Movies\path\videofilename.avi

Note that videofilename.jpg is old Eden terminology, but WILL supersede videofilename-poster.(jpg/png) which is the standard for Frodo and later versions of XBMC.

Multi Part (Stacked) Video Files

This may not be Frodo terminology, but should still work You can either use the filename of the first file in the stack or the name of the stack, so for:

Movies\path\moviename-CD1.avi
Movies\path\moviename-CD2.avi

Either of the below would work:

Movies\path\moviename-CD1.jpg
Movies\path\moviename.jpg
Movies in Folders
Deprecated: If content has been set to Movies, movie.jpg will override any other thumbs for media in that folder.


In the following example "videofilename.avi" will now use the thumbnail "poster.(jpg/png)".

Movies\path\poster.(jpg/png)
Movies\path\videofilename.avi

Note that movie.jpg will supersede poster.jpg due to Eden backward compatibility

TV Shows
TV\showfolder\poster.(jpg/png)
or
TV\showfolder\banner.jpg 
Deprecated: See [<dvdthumbs>] in [advancedsettings.xml]


TV Show Season Thumbnails

As of Frodo, XBMC can use either posters OR banners as the Season thumbnail. In the following example, the thumbnail will be used for the appropriate season in the Video Library season node. Where xx is 01, 02 etc.

TV\showfolder\seasonxx-poster.(jpg/png)
or
TV\showfolder\seasonxx-banner.(jpg/png)
TV Show Specials
TV\showfolder\season-specials-poster.(jpg/png)
or
TV\showfolder\season-specials-banner.(jpg/png)
For the all seasons item
TV\showfolder\season-all-poster.(jpg/png)
or
TV\showfolder\season-all-banner.(jpg/png)
Fanart

Movies in Folders:

Movies\path\fanart.(jpg/png) 

TV Series:

TV\showfolder\fanart.(jpg/png)

TV Season:

TV\showfolder\seasonxx-fanart.(jpg/png)

TV Season All:

TV\showfolder\season-all-fanart.(jpg/png)

TV Specials:

TV\showfolder\season-specials-fanart.(jpg/png)
Extra Fanart Page
Movies\path\extrafanart\fanart1.jpg
Movies\path\VIDEO_TS\extrafanart\fanart1.jpg *Special case if using DVD Video structure
TV\showfolder\extrafanart\fanart1.jpg

The concept of extra fanart exists in XBMC for some skins whereby you can have more than one fanart image for a movie or TV show. If you have more than one fanart image any fanart image after the main one (fanart.jpg) must be named using sequential numbering.

e.g. fanart1.jpg, fanart2.jpg and so on.

Extra fanart must be put into a sub-folder of the movie or TV show folder called extrafanart.

For those skins that support extra fanart you must turn on the "Enable Extrafanart" option and then you will see the different fanart images display as a repeating slideshow with a 10 second delay between each image.

Playlist and internet-stream file examples
Playlists\path\videoplaylistname.pls
Playlists\path\videoplaylistname.jpg
Streams\path\videostreamname.strm
Streams\path\videostreamname.jpg
Actor thumbnails

You can add actor thumbnails to any movie or TV show by adding an '.actors' folder in the corresponding movie / TV show / Episode directory. You may need to use the command line to create this directory in Windows.
The folder can then contain actor images using the following naming convention:

Videos\path\.actors\actor_name.jpg (spaces replaced with underscores)
Movies\Movie1\.actors\actor_name.jpg (spaces replaced with underscores)
Movies\Movie1\VIDEO_TS\.actors\actor_name.jpg (spaces replaced with underscores) *Special case if using DVD Video structure
TV Shows\TV Show 1\.actors\actor_name.jpg (spaces replaced with underscores)

Picture Thumbnails

XBMC applies thumbnails to picture files in the following order:

1) Cached Thumbnail
Thumbnails are cached to UserData\Thumbnails\Pictures using the CRC of the path of the file or folder.
2) Images
EXIF thumbnail in JPEG images are then read. If no EXIF thumbnail is available, XBMC will load the image and generate a thumbnail from the image. These are then cached.
3) Folders
<MyHolidayPictures>\folder.jpg is checked first. If that file doesn't exist, XBMC will generate a thumbnail from up to 4 random images inside that folder.

Thumbnails for Sources

You can change the thumbnail displayed for a source by editing UserData\sources.xml.
Note: Source thumbnails have to be in a folder on the local XBMC device harddrive!

Simply modify your source as shown
<source>
   <name>Music</name>
   <path>xbms://192.168.1.100:1400/Music/</path>
   <thumbnail>F:\Apps\XBMC\thumbs\shares\thumb.png</thumbnail>
</source>

Auto switch to icon Mode

XBMC tries to automatically switch to Large Icon view when the View Mode is set to Auto in the Settings. It first checks if the skin has Large Icon view, failing that switches to Icon view. If neither is available it goes for List View.
The rules are as follows:

Programs

Auto switches to Icon view when 50% of all the items (files and folder) have thumbs.

Pictures

Auto switches to Thumbs view when the list contains more than 25% files. (In the case of Pictures, all items have thumbs as they are generated upon entering the folder.)

Videos

Auto switches to Thumb view when 50% of all the items (files and folder) have thumbs.

Music

Auto switches to Thumb view when the list contains at least 75% folders and at least 50% of them have thumbs. (Remember that playlist files like m3u, pls, etc, are treated as folders by default)