No description
Find a file
2025-04-07 02:18:45 -04:00
anilist.go Anilist -> AniList 2025-04-07 02:07:15 -04:00
Dockerfile feat: Anilist support 2025-04-04 20:59:00 -04:00
go.mod feat: Anilist support 2025-04-04 20:59:00 -04:00
go.sum first 2025-03-04 09:03:15 -05:00
helpers.go feat: Anilist support 2025-04-04 20:59:00 -04:00
main.go bump version 0.2.0 -> 0.2.1 2025-04-07 02:18:45 -04:00
mal.go feat: Anilist support 2025-04-04 20:59:00 -04:00
middleware.go feat: Anilist support 2025-04-04 20:59:00 -04:00
README.md Anilist -> AniList 2025-04-07 02:07:15 -04:00

sonarr-anime-importer

Easily create import lists in sonarr with MyAnimeList or AniList queries!

This is basically a wrapper for Jikan and the AniList API that maps IDs to a list with TVDB IDs so that Sonarr can import the results.

Until v1.0.0, breaking changes can happen at any time. Multiple have happened already! Be wary updating.

The "limit" parameter is required for all requests!

Pulls MyAnimeList, AniList, and TVDB ID associations from https://raw.githubusercontent.com/Kometa-Team/Anime-IDs/master/anime_ids.json.

Supported Requests

GET /v1/mal/anime

Searches anime from MyAnimeList

See https://docs.api.jikan.moe/#tag/anime/operation/getAnimeSearch for parameters.

Additional parameters supported:

  • allow_duplicates: skips de-duplication of results

Example request:

# fetches the top 10 most popular currently airing tv anime
curl "http://localhost:3333/v1/mal/anime?type=tv&status=airing&order_by=popularity&sort=asc&limit=10"

GET /v1/anilist/anime

Searches anime from AniList

Parameters:

  • isAdult: Boolean
  • search: String
  • format: [MediaFormat]
  • status: MediaStatus
  • countryOfOrigin: CountryCode
  • season: MediaSeason
  • seasonYear: Int
  • year: String
  • onList: Boolean
  • yearLesser: FuzzyDateInt
  • yearGreater: FuzzyDateInt
  • averageScoreGreater: Int
  • averageScoreLesser: Int
  • genres: [String]
  • excludedGenres: [String]
  • tags: [String]
  • excludedTags: [String]
  • minimumTagRank: Int
  • sort: [MediaSort]
  • limit: Int
  • allowDuplicates: Boolean

Example request:

# fetch the top 20, non-adult trending anime that are either TV or ONA and are made in Japan after 2020
curl "http://localhost:3333/v1/anilist/anime?format=TV,ONA&sort=TRENDING_DESC&isAdult=false&countryOfOrigin=JP&yearGreater=20200000&limit=20"

Environment

One configuration environment variable is supported:

  • ALWAYS_SKIP_MAL_IDS: Comma-separated list of MyAnimeList IDs to always skip. These do not count towards the return limit.
  • ALWAYS_SKIP_ANILIST_IDS: Comma-separated list of AniList IDs to always skip. These do not count towards the return limit.

Docker Compose

services:
  sonarr-anime-importer:
    image: gabehf/sonarr-anime-importer:latest
    container_name: sonarr-anime-importer
    ports:
      - 3333:3333
    environment:
      - ALWAYS_SKIP_MAL_IDS=12345,67890 # Comma-separated
      - ALWAYS_SKIP_ANILIST_IDS=01234,56789 # Comma-separated
    restart: unless-stopped

TODO

  • Only do "a.k.a." when logging if the anime has different romanized and english titles
  • Prevent spamming calls when few/no IDs are mapped to TVDB

Albums that fueled development

Album Artist
ZOO!! Necry Talkie (ネクライトーキー)
FREAK Necry Talkie (ネクライトーキー)
Expert In A Dying Field The Beths
Vivid ADOY
CHUU Strawberry Rush
MIMI Hug (feat. HATSUNE MIKU & KAFU)