[Release] MyAnimeList.net Metadata Agent

In 2014 I released the first version of the MyAnimeList Metadata Agent for Plex to the Public.

Since then, a lot has happened and the Agent has seen quite a lot of changes and iterations to what it was at that time.

But today I want to release the next version of the Metadata Agent, 7.0.0, to everyone who wants to use it for their Anime Libraries.

Changelog 7.0.0:

  • Reworked the Agent to use the Jikan API instead of the Atarashii API
  • Added additional Images to be requested from both TheTVDB or TheMovieDB for either the TV-Show or Movie libraries (Requires API Keys)
  • HAMA and the XBMCNFO importer are now accepted Metadata provider
  • Studio Metadata are now correctly added to the Metadata
  • Expanded the Settings for a “Title language” option
  • The Voice Actors are now added to the Metadata
  • Expanded the Settings for Voice Actor language and Image that is being used (VA or Character)

I think some of these points need some explanation:

The first and biggest part that had quite a bit of discussion in regards to Plex was that TheTVDB changes its business model for API requests to a subscription-based model. Without getting into a political discussion here, I made the decision that I won’t provide any API Keys anymore. The reason for this is that I would have to expose my API Key so that the Agent can use it, since I would be the one paying for it someone else could just take it and use it for their own and I wasn’t willing to allow that. Therefore I added the functionality that the user can provide their own API Keys so that, if they want to use the images from TheTVDB they will have to have their own subscription.

The “Selectable title language” option in the Agents Settings will now use the Title in that language instead of the main title on MyAnimeList. However, your files still need to follow the main title (as they did before) because the Jikan search request always returns those titles for matching. That means that when your Show title is Attack on Titan the metadata search for that title will still return Shingeki no Kyojin as a search result but the match between those titles will not result in any good score and not resulting in a match.

The added VA options for the Agent have some limitations which are how Plex handles “Roles” internally or rather the associated image. The Agent allows you to select the VA language and only those VAs will be added to the metadata. You can also select if you want to use the Character image or the VA image. The issue here is that Plex only uses one image for a single Cast Member and that will always be the last Character Image you request. 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 isn’t anything I can do about it.

Last but not least, be kind to the Agent and your library in the first few months because, while the API has a caching system, that cache has to be built first. I reduced the number of requests to the API and the resulting requests to MyAnimeList by as much as I could but I still occasionally hit an error from the API (which is probably a “too many requests” from MyAnimeList)

For Support Related things you can post here or also join the Discord

New Releases are now available on the GitHub Page Releases · Fribb/MyAnimeList.bundle · GitHub

2 Likes

Thank you so much for the enormous work you’re putting out, I love your agent and use it in my Anime library.

I have one question: Are there plans to support other dub languages for the voice actors? Currently, only Japanese and English show up, but MyAnimeList supports several others.

Thank you!

I don’t have this topic on any “list” of things that I still want to do, the agent is pretty much feature complete.

This addition wouldn’t be much work either because the agent loads the required language from the options itself and selects the voice actors based on that. So, not really any code changes are or should be necessary to realize that, just need to expand what the user can select in the agents settings.

I would need an example though (myanimelist ID would be enough) so that I can hold that against the API and see what is being required to check against the correct thing.

If you want, you can post the languages you would want to be added, with an example, here and I will create the ticket on GitHub and update the agent.

Oh that’s great news! Personally, I’d find Spanish super helpful.

I’m not quite sure what kind of example you need, but I’ll leave you several IDs with this specific dub language cast:

Psycho-Pass has the Spanish dub cast: 13601
Kougami has several dub actors: 68315
His Spanish voice actor: 31535

I gotta say that maybe my example is a bit more difficult, because MAL lists both the Spanish and Latin Spanish as “Spanish”, so I’m not sure how’s it gonna work out. However, I appreciate the fast response!

I updated the Agent to 7.0.1 with the added Languages: Italian, German, Spanish and French are now available

You can either download the whole agent again from here or you can go here and download the specific file that has the changes. Be sure that you click on “Raw” to the top right" first and up that into the Contents folder of the Agent.

This is awesome! thank you so much

Seems there might be an issue on the server, I can’t match any items, it just seems to time out.

Out of curiosity, did you leave the MyAnimeListID: feature in? If not, any chance to add it back with maybe a short option (ex. malid:)?

What version are you running? Have you tried updating to the latest version? You can get the latest release from the GitHub Repository now.

The v7.0.3 version changed the API to the official Jikan API instead of my self-hosted version. The reason for that change was that MyAnimeList changed something on their site which made requests fail but an update of the Jikan API didn’t work anymore on my server.

I pulled 7.0.3 on March 6th. It was running fine, then stopped.

I tried a couple more and they matched, however the following 4 time out when I try to match them:

  • Orient
  • Sabiiro no Armor: Reimei
  • Leadale no Daichi nite
  • Baraou no Souretsu

There seems to be an issue between Jikan and MyAnimeList.

While I can access MAL fine, the official Jikan API cannot and runs in a timeout.

I could hit the API endpoints for search for Orient and Leadale no Daichi nite, the other two took a long time to search and to cache on the Jikan side, now that the searches are cached, they are instantly returned.

I already posted on their Discord but haven’t gotten a response back yet.

Unfortunately, there is nothing else I can do because it is a Jikan problem, not an Agent problem.

1 Like

Great to know, as always I appreciate your work on this and your responsiveness. I can wait.

What about forcing a match with a MalID:(MalIdNumber) feature, similar to what Sonarr and Radarr have for direct locating a movie of series?

That is still implemented. you will have to use myanimelist-id:<id> (remove < and >) in the manual match/search and the agent will search specifically for this.

Great, I had forgotten what the correct way was to ID it, but that does not seem to work for me either :frowning:

I just checked, in principle it works. Example:

fix match → search options → title = myanimelist-id:34566

this will Match “Boruto: Naruto Next Generations” at a 100% match score.

However, the timeout problem is a problem here because while searches are also cached on the Jikan API side, they are more flexible than the actual Anime responses. So a search currently will run into the timeout in which the Agent won’t be able to “get” something until that search is cached.

from your and another report about this and my tests it seems that this takes about 5 minutes to happen.

And, if that wasn’t bad enough, plex might cache the responses as well.

Looks as though they resolved what ever the issue was, all my stuff is matching now.

Thanks again

I just released a new version, v.7.1.0

This is mainly to address the ending maintenance support, for the Jikan APIv3 and the included parser of MyAnimeList, which will run out at the end of the month. This version is now using the Jikan APIv4 to be able to get the metadata and add them to your libraries.

Please update before the end of the Month or you might end up with errors or missing metadata after that date.

Just release a new version, v7.2.0 which contains two fixes.

The first was the usage of a larger image version for the posters. This should enable you to have higher quality Posters in your library provided by MyAnimeList.

The other feature has to do with forcing a match. Prior to this release you could only “force” a match by using myanimelist-id: in the manual match option in plex. This doesn’t work, in this form, anymore.

With the implementation of the GUID matching in the Absolute Series Scanner for MyAnimeList, you can now add the myanimelist ID to your folder which then will be used to force the match for that ID.

That means that the Anime 91 Days with the ID 32998 would then have the folder name 91 Days [mal-32998] which would force the match to ID 32998 instead of searching and comparing the title 91 Days. This also works for the Fix/Manual Match feature in plex.

This will enable you to name your folders however you like and, for example, use synonyms instead of the full title, as long as the MAL-ID is provided in the expected format

you can download the new version on github

1 Like