Anime playback,
one iframe away.
NovusCloud resolves streams across multiple providers, proxies HLS playback, and serves subtitles, posters and episode metadata from our infrastructure. Your site embeds the player with one iframe.
Players & URL shapes
Six URL shapes cover AniList, MyAnimeList, HiAnime episode ids and internal episode ids. Keep k=1 on links you copy: it marks the request as an embed and keeps direct access disabled.
AniList
One episode by AniList id. The server is picked for you.
novuscloud.buzz/embed/ani/{anilist_id}/{episode}/{type}
type sub dub hsub - hsub needs no server segment
AniList + server
Pin a provider explicitly instead of letting the fallback chain decide.
novuscloud.buzz/embed/{server}/ani/{anilist_id}/{episode}/{type}
server hd-1 to hd-4
MyAnimeList
Same player, MAL ids. The id resolver maps them to the AniList catalog.
novuscloud.buzz/embed/mal/{mal_id}/{episode}/{type}
type sub dub hsub
MAL + server
MAL id with a pinned provider.
novuscloud.buzz/embed/{server}/mal/{mal_id}/{episode}/{type}
server hd-1 to hd-4
HiAnime Episode ID
HiAnime episode id, for links that already carry one.
novuscloud.buzz/embed/{server}/{embed_id}/{type}
server s-1
Internal episode id
Resolves through our own episode catalog, so it can also return hard-sub and raw entries.
novuscloud.buzz/embed/{episode_id}/{type}
type sub dub - add a server segment (/embed/a-1/{episode_id}/{type}) to pin one
Query switches
Every embed accepts these. They only change behaviour in the player, never which title is served.
| Parameter | Value | Effect |
|---|---|---|
k | 1 | Marks the link as an embed. Keep it on copied links. |
autoplay | 1 | Starts playback as soon as the browser allows it. A blocked autoplay leaves a play button instead of playing silently. |
skipIntro | 1 | Jumps the intro chapter automatically when one is known. |
skipOutro | 1 | Jumps the outro chapter automatically. |
time | seconds | Starts at that offset. |
<iframe> and let the user click play once on mobile.Player & bridge
The embedded player posts events to the parent window. Listen for them to sync your own queue, progress bar or next-episode button.
// the player also accepts commands back window.addEventListener("message", function (event) { let data = event.data; if (typeof data === "string") { try { data = JSON.parse(data); } catch (e) { return; } } if (data.type === "TIME_UPDATE") { // data.currentTime, data.duration } if (data.type === "NEXT_EPISODE") { // advance your own episode list } });
| Event | Payload | When |
|---|---|---|
TIME_UPDATE | currentTime, duration | On playback progress (throttled) |
NEXT_EPISODE | none | When the episode ends |
PLAYER_READY | none | Once the player has a source |
A complete iframe
Copy this, swap the ids, done. The frame is responsive through aspect-ratio, so it works on any layout.
Build an embed frame
Generate iframe code and preview it live. Links only work when embedded on a page, so the preview runs inside an iframe just like your site would.