Sub & Dub
Choose Japanese audio with subtitles or English dub, where available. Switch audio in the player.
An unbranded, responsive player. AniList or MyAnimeList IDs. No signup, API key or website registration required.
Build your embedRead the docsChoose Japanese audio with subtitles or English dub, where available. Switch audio in the player.
HLS quality selection with automatic adaptation on supported browsers. Startup and buffering depend on the source and connection.
Manual or automatic intro/outro skipping when the source supplies timing markers. Missing markers are never guessed.
Episode-scoped resume on the same browser, plus an optional next-episode countdown. Browser storage restrictions can affect persistence.
Versioned playback events and play, pause, seek, volume and mute commands via postMessage. A small JavaScript SDK is included.
Responsive 16:9 embedding, native controls and a customizable accent. No player installation or visible service branding inside the video.
Pick an anime and copy the code. That’s it.
Preview loads only when you choose it. There is no custom video URL mode.
The SDK validates the sending window and origin. Next.js client components need 'use client' when using event listeners. Autoplay with sound can still require a user gesture.
/embed/ani/{id}/{episode} or /embed/mal/{id}/{episode}. The existing /embed/anilist/… route also works.
| Parameter | Default | What it does |
|---|---|---|
| track | sub | sub or dub. language is an alias. |
| autoPlay | 0 | Request playback on load. autoplay is an alias; browser policy applies. |
| autoSkip | 1 | Skip intro/outro using available source timing. |
| autoNext | 0 | Eight-second cancellable countdown, then attempt the next episode. Availability is not guaranteed. |
| muted | 0 | Start muted when set to 1. |
| start | 0 | Initial seconds; a positive value overrides saved resume. |
| captions | en | English when available, or off. |
| accent | 9b87ff | Six hex digits, without #. |
Query form: /embed?type=ani&id=21&episode=1&track=sub. MAL support uses stored ID mappings; missing or ambiguous mappings return an error.
All embedding domains are welcome unless blocked for abuse. No parentOrigin parameter is required. Observed embedding domains and aggregate usage events are recorded for operations; referrer-hidden traffic is recorded as unknown, not identified by fingerprinting.
Use an iframe without sandbox. Detectable sandbox restrictions block playback; browser isolation limits mean not every cross-origin sandbox configuration can be detected. Ads may be enabled by the operator. Audio, captions, quality levels, timing and episode availability vary. There is no zero-buffering or uptime guarantee.
The supported interface is the player iframe, not a raw-media API. Public playback is served by the available configured source; no independent dual-cluster failover or AniSkip integration is advertised.