Skip to content
No description, website, or topics provided.
XSLT Groovy Batchfile Shell
Branch: master
Clone or download

Anime Lists

Anime mapping lists used by the [MOD] scrapers for Kodi.

These lists map information between,, and

The Lists


Copy of the animetitles.xml available from This is used by the scraper to search for matching titles.


This list contains groupings of anime titles that are suitable as movie sets (includes movies, TV specials, and one-shot OVAs).


This list contains entries for every title on and serves as a template from which all the remaining lists are derived.


The default list used by the scraper. Contains all entries from the master list that are not empty or marked as "unknown".


Alternative list for the scraper. Contains all entries from the master list that are not empty (but includes "unknown" titles).


Maintenance list containing all entries that are marked as "unknown". Any of these titles may potentially become "known" if they are added to or


All empty entries from the master list. Literally a to-do list.



A typical entry in anime-list-master.xml:

<anime anidbid="23" tvdbid="76885" defaulttvdbseason="1" episodeoffset="" tmdbid="" imdbid="">
  <name>Cowboy Bebop</name>
    <mapping anidbseason="0" tvdbseason="0">;1-2;</mapping>

Each entry consists of an anime node with the following attributes:

  • anidbid - The id (pre-filled).

  • tvdbid - id. Multi-episode titles not found on are marked as "unknown", as they may eventually get added and this makes it easier to re-check (via anime-list-unknown.xml). One-off titles that won't ever be added to (movies, TV specials, one-shot OVAs) are marked by their type, unless they can be associated to a multi-episode series (in which case they use the corresponding id or "unknown").

    Pornographic titles are marked by "hentai" regardless of episode count as they will never appear on

  • defaulttvdbseason - The corresponding season. For one-off titles it will be 1 unless associated to a multi-episode series, in which case it will be 0. Series that span multiple seasons on may be marked as a if the absolute episode numbering is defined and matches

  • episodeoffset - Number to add to each regular episode number to get the corresponding episode number in the defaulttvdbseason. Not necessary if the episode numbers match up exactly. For special episodes and more complex situations the mapping-list is used (see below).

  • tmdbid/imdbid - id. Only used for one-off titles, unless there's definitely a entry. Only one will be filled, with preference going to the id, but the entry must correspond exactly with May be marked as "unknown" for movies (other types are inconsistent on usage).

Within the anime node are any of the following nodes

  • name - Title taken from the "main" listing in the animetitles.xml (pre-filled).

  • mapping-list - Used to map individual episodes between and (see below). Not necessary if episode numbers match up exactly within the season(s).

  • before - Used to position special episodes within the regular episodes. This information is usually supplied by for the scraper, and is only included in the mapping list if there is a disparity (such as when special episodes correspond to regular episodes).

    Format is: ;1-5;2-6;...; where the first number in each mapping is the special episode number and the second is the regular episode it should be listed before. Episodes to be forced to the end of the series are mapped to their intended higher episode numbers.

  • supplemental-info - Extra information that is not supplied by the (see below). To be used sparingly.


The mapping-list node consists of one or more mapping nodes with the following attributes:

  • anidbseason - The season (either 1 for regular episodes or 0 for specials).

  • tvdbseason - The corresponding season.

  • start - The first episode the offset applies to.

  • end - The last episode the offset applies to.

  • offset - The number to add to each episode between the start and end values.

    The format for mapping individual episodes is: ;1-5;2-6;...; where the first number in each mapping is the episode number and the second is the corresponding episode number for the season specified.

    The start, end, and offset attributes are not necessary if only individual episodes are being mapped. The offset and/or episodeoffset will be ignored in favour of an individual mapping.

    Episodes on that don't match anything on are mapped to 0 (or 99) if and only if there's a conflict.


The supplemental-info node may contain an optional attribute of replace="true", in which case the information will replace that supplied by, otherwise it is just added to (and prioritised over) the information.

Any of the following nodes are allowed multiple times in a supplemental-info node:

  • studio - The animation studio. This need only be included if no "Animation Work" or "Work" is supplied in the Main Staff box on

  • genre

  • actor

  • director

  • credits - (i.e. Writer).

  • thumb - URL of a thumbnail to use instead of the one. Needs to include an attribute of either aspect="poster" or aspect="banner".

  • fanart - Fanart to use instead of or ones. Can only be one fanart node, but it can contain multiple thumb nodes (see below).

The fanart node consists of thumb nodes that contain the URL of the fanart to use.

Each fanart thumb node has the following attributes:

  • dim - Dimensions of the fanart. e.g. 1280x720.

  • colors - e.g. |148,149,153|13,23,22|165,159,137| (...Usually left blank.)

  • preview - URL to a smaller preview copy of the thumb.


A typical entry in anime-movieset-list.xml:

  <anime anidbid="61">Koukaku Kidoutai</anime>
  <anime anidbid="890">Innocence</anime>
  <anime anidbid="6122">Koukaku Kidoutai 2.0</anime>
    <title type="main" xml:lang="x-jat">Koukaku Kidoutai Collection</title>
    <title type="official" xml:lang="en">Ghost in the Shell Collection</title>

Each entry consists of a set node containing two or more anime nodes, and a single titles node that in turn contains one or more title nodes.

Each anime node consists of an anidbid attribute that corresponds to the id, and contains the "main" title (as taken from the animetitles.xml).

Each title node consists of two attributes, either type="main" xml:lang="x-jat" or type="official" xml:lang="xx" where xx is one of en, de, fr, it, cs, sk, hu, pl, ru, ja, zh (these are the only languages settable in the scraper).

The "main" title is always present and is derived from an appropriate "main" (romaji) title on, while the "official" titles are derived from the corresponding "official" titles in the relevant languages. Unofficial translations are not used.

Batch Files

The Windows batch files are used to automate the updating of the lists. They require the following programs to work:

  • curl.exe - Used to download animetitles.xml from
  • xsltproc.exe - Used to apply the xsl transformations to the lists.
  • libxslt.dll
  • libexslt.dll
  • libxml2.dll
  • iconv.dll
  • zlib1.dll
  • git - Used to automatically commit the update of animetitles.xml.

curl and xsltproc (and dependencies) should either be in the folder or added somewhere in the Windows PATH.

(PRs for equivalent scripts and instructions for Mac and GNU/Linux are welcome.)


Downloads the latest animetitles.xml, sorts it, updates anime-list-master.xml, calls generate-lists.bat, and commits the changed files.

Same as update.bat but for POSIX platforms.


Generates all the other lists based on anime-list-master.xml, and updates/sorts anime-movieset-list.xml.

Same as generate-lists.bat but for POSIX platforms. As most POSIX style systems already have xsl and xml tools installed, this is just a shell script to generate the xml files.


Same as generate-lists.bat but for all platforms. It requires Groovy and Java and works on Windows, Linux and Mac OS X.


There are a couple of ways to contribute updates:

The simplest way is to just post the details of the update, either in the XBMC forum thread or as an Issue on GitHub, and they will be dealt with when noticed.

Or you can post a Pull Request:

  1. Fork the repo
  2. Create a new branch (git checkout -b new_branch)
  3. Edit either the anime-list-master.xml or anime-movieset-list.xml (or both)
  • Run generate-lists.bat (optional)
  1. Commit your changes (git commit -am "Added some titles")
  2. Push to the branch (git push origin new_branch)
  3. Submit the Pull Request
  4. ???
  5. Profit

Do not edit any other lists as they are automatically generated, either use generate-lists.bat or leave them to be updated after the Pull Request has been pulled.

Likewise, the anime names and the sort order in anime-movieset-list.xml will be automatically fixed based on the anidbids, so don't be overly concerned about getting them exactly right (but obviously do get the title nodes right).

Also, do not run update.bat or in a Pull Request. If you need animetitles.xml updated, just ask.

You can’t perform that action at this time.