Providers
A provider is a site-specific adapter that maps search queries and episode/chapter IDs to direct stream or image URLs. All 9 ship with anime-sdk and are verified on every release.
Available providers
Section titled “Available 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 additionally implements the optional fetchUnitTracks for cheap subtitle/quality metadata.
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'