API Endpoints
All proxy and embed routes available on this service:
1. MyAnimeList (MAL) Embed Player (MegaPlay)
Embeds MegaPlay video stream using MyAnimeList ID with our clean player.
| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
| mal_id | Integer | Yes | MyAnimeList anime ID | 5114 (FMA:B), 21 (One Piece), 52991 (Frieren) |
| ep_num | Integer | Yes | Episode number | 1, 2, 12 |
| language | String | Yes | Audio track (sub or dub) | sub / dub |
2. AnimeSalt Server 1 Embed (Hindi Dub / Multi-Audio)
Scrapes Server 1 (as-cdn26.top), extracts the multi-audio HLS master playlist, and plays Hindi Dub by default (with an in-player audio switcher for Japanese/English/Tamil/Telugu).
<iframe src="https://yumezone.qzz.io/embed/animesalt/dan-da-dan-1x1?lang=hin" width="100%" height="100%" frameborder="0" scrolling="no" allowfullscreen></iframe>
3. AnimeSalt Direct Stream Source API (JSON)
Returns raw decrypted stream URL, proxied M3U8 endpoint, audio renditions, and subtitle tracks formatted as clean JSON.
4. Zoko Server Embed Player (zokoanime.video)
Scrapes and decrypts zokoanime.video HLS streams, proxies M3U8 manifests and video segments with automatic referer spoofing, and renders in our clean OLED player with VTT subtitles.
<iframe src="https://yumezone.qzz.io/embed/zoko/mal/21/1/sub" width="100%" height="100%" frameborder="0" scrolling="no" allowfullscreen></iframe>
5. Zoko Direct Stream Source API (JSON)
Returns decrypted stream URL, proxied M3U8 link, VTT subtitles, and intro/outro skip timestamps as JSON for external players or mobile apps.
4. AniList Embed Player (MegaPlay Auto-Mapped to MAL)
Automatically maps AniList ID to MAL ID on the fly (via AniZip / AniList GraphQL) for 100% catalog coverage on MegaPlay.
<iframe src="https://yumezone.qzz.io/embed/megaplay/ani/154587/1/sub" width="100%" height="100%" frameborder="0" scrolling="no" allowfullscreen></iframe>
5. Direct Catalog Episode ID (s-2)
Directly loads stream using Anikoto / MegaPlay catalog episode ID (e.g. 136197).
6. Encrypted Media & HLS Chunk Proxy
Internal high-throughput proxy for .m3u8 manifests, .ts video segments, and .vtt subtitle tracks with 64KB memory pool and automated CDN header spoofing.
7. Health Check
Returns service JSON status: {"ok":true,"service":"yumezone-proxy-railway","version":"2.0.0"}.
Integration Guide
Standard responsive iframe code to embed on any anime website:
Responsive 16:9 Aspect Ratio Snippet
<!-- Responsive 16:9 Video Embed Container -->
<div style="position: relative; width: 100%; aspect-ratio: 16 / 9; background: #000; border-radius: 12px; overflow: hidden;">
<iframe
src="https://yumezone.qzz.io/embed/megaplay/mal/5114/1/sub"
style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border: none;"
scrolling="no"
allowfullscreen
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture">
</iframe>
</div>
Player Events (postMessage API)
The embedded player sends real-time events via window.postMessage. You can listen from your parent web app to track watch progress, sync watch history, or trigger automatic next-episode navigation.
| Event Name | Payload Keys | Description |
|---|---|---|
time |
time, duration, percent |
Emitted during playback with current position, duration, and percentage. |
complete |
event: "complete" |
Emitted when the episode reaches the end (ideal for Auto-Next Episode). |
watching-log |
currentTime, duration |
Periodic watch-time logging event. |
YUME_SWITCH_SERVER |
server: string |
Emitted when the user chooses an alternate server from the fallback frame. |
JavaScript Event Listener Example
window.addEventListener("message", function (event) {
let data = event.data;
if (typeof data === "string") {
try { data = JSON.parse(data); } catch (e) { return; }
}
if (!data) return;
// 1. Handle playback progress
if (data.event === "time") {
console.log("Current time:", data.time, "Duration:", data.duration, "Percent:", data.percent + "%");
}
// 2. Handle episode completion (Auto-Next Episode)
if (data.event === "complete") {
console.log("Episode finished! Triggering next episode...");
}
// 3. Handle server switch requests
if (data.type === "YUME_SWITCH_SERVER") {
console.log("User clicked fallback server:", data.server);
}
});