Embed high-quality anime streams into your own website with a simple <iframe>. Complete with adaptive HLS, dual-audio (Sub/Dub), and OP/ED skipping.
Test the embed player right here.
Just copy-paste one line of HTML. That's it. No SDK, no API key, no setup.
<iframe
src="https://anixo.buzz/embed/ani/{anilist-id}/{ep-num}/{language}"
width="800"
height="450"
frameborder="0"
allowfullscreen
allow="autoplay; picture-in-picture"
></iframe>
<iframe
src="https://anixo.buzz/embed/ani/{anilist-id}/{ep-num}/{language}?color=%236366f1"
width="100%"
height="100%"
style="aspect-ratio: 16/9;"
frameborder="0"
allowfullscreen
></iframe>
All available embed endpoints and their parameters.
| Method | Route | Description |
|---|---|---|
| GET | /embed/ani/:anilistId/:epNum/:audio |
Player Simple Anime embed route. Example: /embed/ani/154587/1/sub |
154587 for Frieren: Beyond Journey's End. Find it on anilist.co.
1 for Episode 1.
sub (Japanese + subtitles) or dub (English dubbed).
%236366f1 for #6366f1.
Control the embedded player and receive events from the parent page using window.postMessage().
// Listen for events from the embedded player
window.addEventListener('message', (event) => {
const { type, ...data } = event.data;
if (type === 'aniko:ready') {
console.log('Player loaded!', data);
// { streams: 3, subtitles: 5, hasIntro: true, hasOutro: true }
}
if (type === 'aniko:timeupdate') {
console.log('Time:', data.currentTime, '/', data.duration);
}
if (type === 'aniko:ended') {
console.log('Episode finished — load next!');
}
});
const iframe = document.querySelector('iframe');
// Play / Pause
iframe.contentWindow.postMessage({ type: 'aniko:togglePlay' }, '*');
// Seek to 2 minutes
iframe.contentWindow.postMessage({ type: 'aniko:seek', time: 120 }, '*');
// Set volume to 50%
iframe.contentWindow.postMessage({ type: 'aniko:setVolume', volume: 0.5 }, '*');
// Change speed to 1.5x
iframe.contentWindow.postMessage({ type: 'aniko:setSpeed', speed: 1.5 }, '*');
// Set quality (level index, -1 for auto)
iframe.contentWindow.postMessage({ type: 'aniko:setQuality', level: -1 }, '*');
| Event | Data | Description |
|---|---|---|
| aniko:ready | streams, subtitles, hasIntro, hasOutro |
Player loaded and ready to play |
| aniko:play | — | Video started playing |
| aniko:pause | — | Video paused |
| aniko:timeupdate | currentTime, duration |
Current playback position changed |
| aniko:ended | autoPlay |
Video reached the end. |