Use this script at your own risk! The author assumes no responsibility for any damages of any kind. It is strongly recommended you test this out on a throwaway MAL account before attempting to sync your main account.
So you're an Anilist user (perhaps you came over after MAL melted down) but you still want to keep your MAL page up to date for all your friends who still use it. Douki can sync your Anilist lists to MAL with the click of a button.
Unfortunately, given that MAL shut down its public API over security concerns, the only way to modify a MAL list is from the MAL site itself. Thus, Douki is no longer a standalone web app but a userscript that can run right on MAL and use its API.
ImportPlease see the demonstration gif (many thanks to @kdy for providing this)
All suggestions, feedback, or bug reports are welcome.
I haven't updated MAL in months. You're a lifesaver! :) I'm glad I tested this on a second account first like you advised; I forgot about my smiley ratings which ended up transferring as 3s, 2s, and 1s. I'll just have to change my score system or clear out my scores before syncing to my real account. Seems to work perfectly fine otherwise.
Glad I could help. I'll look into handling custom scoring. Offhand I don't think MAL supports anything other than the 1-10 system but it might be possible to set up a conversion for people who use different scoring systems on AL.
With Api v2 you can specify an argument on the score field to set it to which ever score type you would like, by default it will return the scores in which ever format the user is using.
I think score (format: POINT_10) should do it but docs here https://anilist.github.io/ApiV2-GraphQL-Docs/medialist.doc.html
[Removed]
feature request: I use mal by logging in with google, douki seems to only work with username + password and not oauth2 like mal. so please add `Login with ${x}` support.

Thanks for the suggestion! I don't think MAL's API currently allows for this type of authentication (you can use oauth2 to log in and use their site, but not their backend service). I will look into possible workarounds, but I think for now this is the best that can be done. MAL has promised to revamp their service, in their words, "in our 2017-2018 roadmap." At that point it will almost surely be possible.
For some reason, it doesn't seem to be syncing my completed anime anymore? At first I thought it was because I use a custom list for my seasonal watching, but I recently completed Anne Happy and Tokyo Ghoul, which were never on custom lists, and they're still marked as on-hold and watching on my MAL after syncing. I'm not sure what the problem is?
I'll try to replicate and see what's going on. Thanks for reporting this.
Edit: I found the issue, when I query the Anilist API for your data it literally does not return any completed shows. It returns all the shows you've paused, plan to watch, etc. but nothing you've marked completed. Let me see if I can figure out why that is the case.
It does look like the use of custom lists here is causing an issue. I'll spare you the technical details but this is something both Anilist and I need to fix, and we're working on it. As a bonus I'll have to enable custom list support to fix this issue so that will be rolling out as a new feature as soon as I can complete it.
OH MY GOD THANKS
I saw that Anilist had a 'MAL Sync' But i didn't see any 'reverse Sync' from Anilist to MAL, so thank you so much.
I'm gonna create a MAL account so i can test it out
~
@solitethos
Also, you said;
Update 1: If you use a scoring system on AL other than 1-10, Douki should now automatically convert it to 1-10 for use on MAL. Please let me know if you experience any problems with this feature.
So i wanted to tell you that it works, i'm currently using the 1-100 Scoring system and it was converted to 1-10 on MAL.
Latest update: new domain and much faster syncing by only updating what needs to. Please let me know if there are any issues.
Yes, it's a little faster.
I had these mistakes: Errors: 8.
Could not match Girls' Work: This anime has not been approved yet.
Could not match Savanna Game: This anime has not been approved yet.
Could not match Entotsu-chou no Poupelle: Invalid ID
Please try adding it manually.
Could not match Baki: New Grappler Baki: This anime has not been approved yet.
Could not match Pokemon Generations: This anime has not been approved yet.
Could not match Itsudatte Bokura no Koi wa 10cm datta: This anime has not been approved yet.
Could not match Perfect Half: Invalid ID
Please try adding it manually.
Could not match Sword Art Online: Hoshinaki Yoru no Aria: This manga has not been approved yet.
Goodness, this tool is amazing. Worked like a charm!
Now I'll just make sure I remember to Update it once a month...
Notice: Douki is currently inoperable due to MAL shutting down their API. Stay tuned for updates.
Is it back yet?
No, and it probably never will be tbh. They're much more likely to open up their new internal API to the public at some point (after dealing with the old one, I expected some kind of security problem like this to happen sooner or later). I don't imagine that will happen any time soon as they aren't even finished with the internal version. They may never open it up at all, given how little they seemed to care about the old one. Time will tell.
Hey! I just found someone do a unofficial MAL API, can you work with it? source: https://jikan.moe and https://myanimelist.net/forum/?topicid=1616529
I am pretty sure that Jikan does not provide any way to update lists, so it's not a viable solution. You need the official API to update libraries.
Oh, didn't know that
Right now I'm working on a userscript that you can use while on MAL's site. It's far from a perfect solution - you have to sync the entire list every time, it has to be really slow in order not to violate MAL's TOS and get you banned, and it won't work on mobile, but it will get the job done. No promises on when it will be ready as I have a job now and a lot less time to work on side projects.
Edit: Jikan might allow me to not have to sync the entire list every time, if it works the way it describes. I'll take a look at it in further depth on the weekend.
I found a bug but it's not a big one.
For the anime https://anilist.co/anime/101231/Shikioriori/
Anilist has it listed as one episode while MAL has it listed as three. When I import it changes it from 3/3 to 1/3 on MAL.
Very good tool besides this small bug :p
Completed manga have incorrect (zero) chapter numbers
This is a known issue, and I'm researching a possible fix, but it's looking very difficult at the moment. MAL doesn't expose a method for getting chapter or episode counts for single items so I have to set up a workaround. No ETA at the moment.
Maybe not directly. You can create a script to update the chapters and volume correctly in the manga list page of MAL. It's not necessarily required to be integrated with your current script which activates on clicking import. I mean, yeah it would be good but since you say it's difficult why not take the easier route of getting the chapter and volume count mentioned in the completed section of user's manga list page and update it as a second step.
I'll have to check when I have some free time if the counts are available once the item shows up in the user's list. That would be a big refactor but much easier than my current plan which was to set up a CORS proxy around Jikan (and even getting a chapter or episode count for a single show from there is a dodgy business).