Providers
anime-sdk ships two kinds of providers:
- Content providers — site-specific adapters that map search queries and episode/chapter IDs to direct stream or image URLs.
- Metadata providers — catalogue front-ends (AniList, MAL, Kitsu) that surface rich title data (relations, characters, recommendations, per-episode streamingEpisodes) and let you swap content providers without changing your data layer.
All providers are verified on every release with live, non-mocked E2E tests.
Content providers
Section titled “Content providers”| ID | Website | Content Type | Languages | Subtitles | Method |
|---|---|---|---|---|---|
| animeparadise | animeparadise.moe | ANIME | sub | yes (VTT) | REST API |
| allmanga | allmanga.to | ANIME | sub, dub, raw | no | GraphQL + AES-CTR |
| gogoanime | anineko.to | ANIME | sub | no | HTML scrape + HLS |
| anikoto | anikototv.to | ANIME | sub, dub | yes (VTT) | JSON API + Embed |
| megaplay | megaplay.buzz | ANIME | sub, dub | yes (VTT) | AniList + mapping |
| goyabu | goyabu.io | ANIME | raw (pt-br) | no | batchexecute RPC |
| mangadex | mangadex.org | MANGA | sub | no | JSON API |
| weebcentral | weebcentral.com | MANGA | sub | no | HTML scrape |
| mangapill | mangapill.com | MANGA | sub | no | HTML scrape |
All extend BaseProvider and expose identical method signatures. AnimeParadiseProvider and AnikotoProvider additionally implement the optional fetchUnitTracks for cheap subtitle/quality metadata. MegaPlayProvider implements lookupByMapping (its media ID is the AniList ID).
Metadata providers
Section titled “Metadata providers”| ID | Catalogue | Native ID shape | Enrichments |
|---|---|---|---|
| anilist | AniList GraphQL | anilist:21 | Full metadata + relations + characters (with VAs) + staff + recommendations + externalLinks + streamingEpisodes + browse(trending/popular/seasonal/top) |
| mal | MyAnimeList | mal:anime:21 | filler/recap via Jikan + relations + browse(top/popular/seasonal) |
| kitsu | Kitsu JSON:API | kitsu:anime:1 | core metadata + cross-source mappings (AniList/MAL/AniDB/TVDB) |
All extend BaseMetadataProvider and share the contract search →
fetchMediaInfo → fetchContentUnits(metaUrn, contentProvider) →
resolveStream(metaUrn, episodeNumber, contentProvider, language?). The
mapping (catalogue ID → content provider raw ID) is handled by
MappingClient via a cache → provider native lookup → MALSync/Anify/arm-server → fuzzy waterfall.
Swapping providers
Section titled “Swapping providers”// Beforeimport { GogoanimeProvider } from 'anime-sdk';const provider = new GogoanimeProvider(client);
// After — nothing else changesimport { AllmangaProvider } from 'anime-sdk';const provider = new AllmangaProvider(client);
const shows = await provider.search('One Piece');const eps = await provider.fetchContentUnits(shows[0].id);const result = await provider.resolveStream(eps[0].id);Testing strategy
Section titled “Testing strategy”Each provider ships with a live E2E test that:
- Searches a real title against the live site
- Resolves a stream URL
- Fetches an HLS segment or probes an MP4 URL
- Runs
ffmpegto extract a frame from ~5s in - Asserts the output PNG is larger than 1 KB
These tests run without mocking. If a provider’s upstream site changes its API or HTML structure, the test fails and the SDK is updated. Screenshots land in scratch/screenshots/ (gitignored).
Selecting a provider
Section titled “Selecting a provider”AllManga is the best choice for breadth — widest catalogue, sub + dub, stable GraphQL API.
AnimeParadise is the best choice when you want external subtitle tracks that the SDK can hand straight to a <track> element (the others bake subs into the video).
Gogoanime (anineko.to) is a useful fallback when AllManga is missing a title. Sub only.
Anikoto (anikototv.to) is excellent for dubs and provides reliable HLS streams with integrated subtitle tracks.
MegaPlay is a universal resolver that uses AniList for search. It is the most robust option for finding shows by their official IDs.
Goyabu is the only option for Brazilian Portuguese content.
MangaDex is the gold standard for Manga — huge database, reliable JSON API, and clean images.
WeebCentral and MangaPill are reliable fallbacks for Manga titles not found on MangaDex.
Provider IDs
Section titled “Provider IDs”The id property is used to identify providers in the HTTP server’s provider= query parameter:
curl 'localhost:3000/search?q=Naruto&provider=allmanga'curl 'localhost:3000/search?q=Naruto&provider=animeparadise'curl 'localhost:3000/search?q=Naruto&provider=gogoanime'curl 'localhost:3000/search?q=Naruto&provider=anikoto'curl 'localhost:3000/search?q=Naruto&provider=megaplay'curl 'localhost:3000/search?q=Naruto&provider=goyabu'curl 'localhost:3000/search?q=Frieren&provider=mangadex'curl 'localhost:3000/search?q=Frieren&provider=weebcentral'curl 'localhost:3000/search?q=Frieren&provider=mangapill'