This project is to provide a Metadata Agent for the Plex Media Server (PMS) to add Metadata to an Anime Library retrieved from MyAnimelist.net
The MyAnimeList Metadata Agent interacts with the Jikan API to request the necessary information that will be added to the Library.
The Agent is accessing the Jikan API, requests are done from your Plex server directly to the Jikan API endpoints. Any concerns or questions about Privacy should be directed to the Jikan API.
The MyAnimeList Agent will retrieve the Metadata from the Jikan API and add them to the Library Item that should be updated. The requested metadata are as follows:
The Agent will create search results based on the metadata the search will respond with.
After a search is being done the best search result (the first search result with the highest score) will be used to update the library item
Note:
(1) The Aired date for an Episode does not necessarily exist. If it doesn't the Agent will use the current date. Without an aired date Plex will not consider the episode for "up-next".
Some metadata can be configured through the Metadata Agent Settings:
(2) The Title used for the Library item can be set to either the main title (default), English or Japanese.
(3) The Name of the Voice Actor can be selected based on the Language English or Japanese. This will add the Voice actor for a specific language to the metadata
(4) The Photo of the Role can be set to be either the Voice actor that voiced the role or the character
For some roles, a character was voiced by multiple voice actors (for example, at different ages). However, there is no distinction between those characters and their voice actors with, for example, a dedicated image. So there is no way to tell which Character image would be related to a certain voice actor. Therefore, the agent will just pick the first one.
Since the Roles in Plex are shared across the whole library and not specifically for the Library item (probably to allow you to click on the Role and then have a filter for every Library item that this Actor played in) Character Photos will be overwritten by the last instance you ran a metadata refresh. For example: Ono Daisuke voiced Vanno Clemente in '91 Days' but also William Vangeance in 'Black Clover'. When you Refrehs the Metadata on '91 Days' then the character image will be for Vanno Clemente, if you then refresh 'Black clover' then you get the image for William Vangeance but this will also be changed for Vanno Clemente again.
There is nothing I can do about that behaviour.
Additionally to the base Metadata from MyAnimeList, the MyAnimeList Metadata Agent can also retrieve additional Images from other sources TheTVDB and TheMovieDB.
To use those sources you will have to enable the "Source for additional images in" in the Metadata Agents settings (disabled by default). Since those sources require an API Key the user has to provide those themselves and are not provided by the Agent or myself
The reason for this is that TheTVDB has (or will be soon) switched to a subscription Model in which you have to pay to use the API. I think it is fair to say that if you want to use Images from TheTVDB you should also support them by subscribing.
TheMovieDB is still free to use but I decided that the user should provide their own API key for this as well.
you will need to have an Account for both TheTVDB and TheMovieDB
The MyAnimeList Agent also allows that other Metadata Agents provide Metadata to a Library Item. This is based on a list of Priority of the Metadata Agents in you Agents list in the Server settings. The Agent accepts the following Metadata Agents:
Please note that not every Agent is necessarily compatible with each other.
To provide a way to get the additional images from TheTVDB and/or TheMovieDB the agent will use a list of IDs of mappings between different websites.
See my anime-list Project for more information and contribution.
Download the Agent from the Releases page
Installation is straight forward, place the MyAnimeList.bundle folder into the directories (depending on your OS) listed below and restart your Plex Media Server (Note: Plex only loads the Agent on restart!).
Directories:
Anime usually rely on an absolute episode numbering format instead of organizing them through seasons. Therefore I recommend using scanners that follow this format:
Which scanner you use is up to you but there are some things that you should know:
The 'Better Absolute Scanner (BABS)' is not able to identify episodes with a 4 digit episode number, episodes above and including 1000 would not be added to your library.
The 'Absolute Series Scanner (ASS)', on the other hand, will add those episodes with 4 digit episode number to your library, but it will also remove anything in brackets like (TV)
from the title.
This can lead to a matching problem. An example:
As you can see, those are two different releases one (30137) being the OVA version while the other (31904) is the TV version.
If you now would have your folder named according to my recommendation Big Order (TV)
the following would happen:
Big Order (TV)
would be created and matched to the correct MAL-ID 31904Big Order
would be created and matched to the incorrect MAL-ID 30137The result of this would be that you would still have a somewhat similar Show metadata in Plex but no Episode title.
To circumvent the Problem described above, the Absolute Series Scanner offers the ability to leave GUIDs in the show title. This will enable you to add the MyAnimeList ID to the folder directly which is then used to match the Anime specifically to that release
This also includes the manual match in which the notation is the same, the notation is as follows
[mal-<mal_id>]
Example:
The Anime 91 Days
has the ID 32998
the correct name for your folder or a manual search/match would then be 91 Days [mal-32998]
This feature is similar to the Match hinting with a .plexmatch file. Since I didn't want it to be Plex-specific, the Agent will read a .match file from the Show/Movie folder. Example:
Currently, the Agent will only check for 2 values title
and mal-id
, the mal-id
is prioritized so that if a GUID is set, the Agent will force a match to that ID.
A Match file could therefore look something like this:
title: 91 Days
mal-id: 32998
With Applications like FileBot or ShokoServer that can rename your files automatically and that use AniDB, in most situations the title provided by AniDB should result in a decent match on MyAnimeList. However, in some situations the returned Title will just have too many differences from what the Agent can comfortably use as a title.
This feature should circumvent this problematic so that you can just add a .match file into the Folder without having to modify the title.
For all support related or general questions please use the thread in the official plex forums
For any issues like bugs, unintended behaviour please create a new Issue on the github issue tracker
For development stages, release information, download link or anything else you can visit my dev Blog here
We also have a Discord Server