MyAnimeList Attributes¶
Configuring MyAnimeList is optional but is required for MyAnimeList based collections and operations to function.
A mal
mapping is in the root of the config file.
Below is a mal
mapping example and the full set of attributes:
mal:
client_id: ################################
client_secret: ################################################################
localhost_url:
authorization:
access_token:
token_type:
expires_in:
refresh_token:
Attribute | Allowed Values | Required |
---|---|---|
client_id |
MyAnimeList Application Client ID | |
client_secret |
MyAnimeList Application Client Secret | |
localhost_url |
MyAnimeList Authorization URL |
All other attributes will be filled in by Kometa.
To connect to MyAnimeList.net you must create a MyAnimeList application and supply Kometa the client id
and
client secret
provided, please do the following:
- Click here to create a MyAnimeList API application.
- Enter an
App Name
for the application. Ex.Kometa
- Select
web
forApp Type
. - Enter an
App Description
for the application Ex.Kometa manages metadata and collections
- Enter
http://localhost/
forApp Redirect URL
. - Enter
https://github.com/Kometa-Team/Kometa
forHomepage URL
. - Select
non-commercial
forCommercial / Non-Commercial
. - Enter any name under
Name / Company Name
. - Select
hobbyist
forPurpose of Use
. - Agree to the API License and Developer Agreement and hit the
Submit
button - You should see
Successfully registered.
followed by a link that saysReturn to list
click this link. - On this page Click the
Edit
button next to the application you just created. - Record the
Client ID
andClient Secret
found on the application page. -
Go to this URL but replace
CLIENT_ID
with your Client ID -
You should see a page that looks like this
-
Click "Allow"
-
You will be taken to a page that will not load. That's fine and expected.
-
Copy the URL, which will be
localhost/?code=BLAH
and paste in your config file next tolocalhost_url
.If you do not see an error as above but instead get taken to some seemingly random website, you probably have a webserver running on your local computer, probably from some sort of tutorial if you don't recall having set one up. For example, some Docker tutorials have you start up local web servers.
You will need to stop that web server while you're doing this in order to grab that localhost URL.
-
Run Kometa and the auth will be completed.
Alternative Way of Letting Kometa make the URL¶
You can record just your client_id
and client_secret
and Kometa will create the url for you described below.
On the first run, Kometa will walk the user through the OAuth flow by producing a MyAnimeList URL for the user to follow.
After following the URL login to MyAnimeList.net and authorize the application by clicking the Allow
button which will
redirect the user to http://localhost/
.
Copy the entire URL and paste it into Kometa and if the URL is correct then Kometa will populate
the authorization
sub-attributes to use in subsequent runs.
On first run:
|====================================================================================================|
| Connecting to My Anime List... |
| |
| Navigate to: https://myanimelist.net/v1/oauth2/authorize?response_type=code&client_id=BING&code_challenge=BANG |
| |
| Login and click the Allow option. You will then be redirected to a localhost |
| url that most likely won't load, which is fine. Copy the URL and paste it below |
| URL:
Click on that URL to open your browser to MyAnimeList; you'll be looking at a page like this:
Click "Allow", and you will be taken to a page that will not load. That's fine and expected.
Copy the URL, which will be localhost/?code=BLAH
and paste it at the prompt.
If you do not see an error as above but instead get taken to some seemingly random website, you probably have a webserver running on your local computer, probably from some sort of tutorial if you don't recall having set one up. For example, some Docker tutorials have you start up local web servers.
You will need to stop that web server while you're doing this in order to grab that localhost URL.
| URL: http://localhost/?code=BOING
| Saving authorization information to /path/to/kometa/config/config.yml |
| My Anime List Connection Successful |
|====================================================================================================|
OAuth Flow using Docker¶
To authenticate MyAnimeList the first time, you need run the container with the -it
flags in order to walk through the
OAuth flow mentioned above. Once you have the MyAnimeList authentication data saved into the YAML, you'll be able to run
the container normally.
Online Authorization¶
When trying to authorize Trakt or MyAnimeList, Kometa needs to run in interactive mode so that you can enter details. This is problematic on some setups [namely docker] where entering interactive mode is not always simple.
These scripts allow you to authorize Trakt and MyAnimeList here on the wiki. Once authorized, the script will give you a YAML block that you will copy into the config.yml, replacing the existing trakt
and/or myanimelist
sections.
The source code for these scripts can be found on the Trakt-MAL-OAuth Repository.
Usage¶
- Enter client ID and secret.
- For Trakt, if you didn't retrieve a PIN yourself less than ten minutes ago, click the button, and enter the PIN in the field.
- For MyAnimeList, click the button to authenticate and get the required "localhost URL"
- Click "Submit"
- Copy and paste the result into your Kometa config.
Running the Authentication Scripts Locally¶
For users who want full control over the scripts and would prefer the run them locally, you can run the script in docker or python by following the instructions in the Trakt-MAL-OAuth Repository.
Click for instructions on how to run the scripts locally
Ensure you have downloaded a copy of the Trakt-MAL-OAuth Repository. If you have downloaded the ZIP file, extract it to your desired location.
Running in Docker¶
- build the image with
docker build -t kometa-auth-image .
- run the container with
docker run --rm kometa-auth-image
- If you get a message complaining that something else is already running on port 5000, run the container with
docker run --rm -p 5001:5000 kometa-auth-image
- go to
http://127.0.0.1:5000
ORhttp://127.0.0.1:5001
. - see instructions above
Running in Python¶
- Make sure you are running a recent Python [this was developed on Python 3.11]
- Run these commands to create a virtual environment and install requirements.
- run the script with
python app.py
- If you get a message complaining that something else is already running on port 5000, open
app.py
and change the 5000 on the last line to 5001; repeat step 3. - go to
http://127.0.0.1:5000
ORhttp://127.0.0.1:5001
. - see instructions above
Docker or the already deployed version are recommended.