MAL has decided to disable their API due to recent GDPR rollout, this means the script is currently broken and will update when I know more.
If you manage your Anime with Plex this will allow you to sync your libraries to MyAnimeList.net, recommend using Plex with the HAMA agent for best Anime name matches.
Unwatched Anime in Plex will not be synced so only those that have at least one watched episode, updates to MAL are only send with changes so need to worry about messing up watch history.
Currently planned for future releases:
- CLI improvements (colors / status)
- Improve error handling
- Improve matching by using more MAL info, year comparision is an option but was hit and miss during testing before
- Multiple season support, right now sync is limited to season 1 and not sure if feasible with the way MAL lists them
Previous version was written in C# (.NET) but due to library issues switched to Python where there are some great ones to work with, this is the first version and rough around the edges so bugs may occur.
From the project directory copy the example settings file settings.ini.example
to settings.ini
, open settings.ini
with your favorite editor and edit where needed.
For the Direct IP authentication method you need to find your token manually:
https://support.plex.tv/articles/204059436-finding-an-authentication-token-x-plex-token/
Install requirements using this python command in the project folder:
pip install -r requirements.txt
Now that configuration is finished and requirements have been installed we can finally start the sync script:
python PlexMALSync.py
Depending on library size and server can take a few minutes to finish.
Support thread is located on Plex Forums:
https://forums.plex.tv/discussion/305261/plexmalsync-sync-your-plex-library-to-myanimelist
In the scripts directory you will find additional scripts for use in third party software.
Scrobble single show.
Parameters:
scrobble.py <mal_username> <mal_password> <show_title> <watched_episode#>
Example usage:
scrobble.py John Doe "Darling in the FranXX" 2