Resolve a MixDrop file ID into a signed, direct mxcontent.net MP4 URL. The server reverse-engineers the embed player page; the bundled UI can test playback locally.
Input: el09xempuzkxz4 — not a full URL.
flowchart TB
subgraph client ["Browser"]
UI["public/app.js"]
VID["<video>"]
end
subgraph server ["Node server :8789"]
IDX["index.js"]
RES["POST /api/resolve"]
STR["GET /api/stream"]
DEC["decode-page.js"]
HTTP["http/client.js"]
end
subgraph upstream ["Upstream"]
EMB["miixdrop.net/e/{id}"]
CDN["*.mxcontent.net/v2/{id}.mp4"]
end
UI -->|file ID| RES
RES --> HTTP
HTTP -->|HTTP/2| EMB
EMB --> DEC
DEC -->|MDCore.wurl| RES
RES -->|directLink + referer| UI
UI -->|proxy URL| STR
STR --> HTTP
HTTP -->|HTTP/1.1 + Referer| CDN
STR -->|range passthrough| VID
| Layer | Host | Role |
|---|---|---|
| Site | miixdrop.net |
Canonical origin; mirrors redirect here |
| Embed | miixdrop.net/e/{id} |
Packed player script with stream URL |
| CDN | *.mxcontent.net |
Signed MP4 delivery |
Resolution is a single path — no mirror lists, no protocol retries.
sequenceDiagram
participant API as /api/resolve
participant H2 as HTTP/2 client
participant Embed as miixdrop.net
participant Decode as decode-page
participant H1 as HTTP/1.1 client
participant CDN as mxcontent.net
API->>H2: GET /e/{id}
H2->>Embed: Chrome TLS + document headers
Embed-->>H2: HTML + packed eval()
H2-->>API: page body
API->>Decode: unpack eval → MDCore.wurl
Decode-->>API: https://a-delivery46.mxcontent.net/v2/{id}.mp4?s=…
API->>H1: Range bytes=0-15, Referer miixdrop.net/
H1->>CDN: probe
CDN-->>H1: 206 + ftyp
API-->>API: validate host ends with mxcontent.net
- Fetch embed —
GET https://miixdrop.net/e/{id}over HTTP/2 with a reused session and Chrome-like TLS. - Unpack player — the page ships a packed
eval()string.decode-page.jsunpacks it and readsMDCore.wurl, a protocol-relative CDN URL (//a-delivery46.mxcontent.net/v2/{id}.mp4?…). - Probe CDN —
GETthe signed URL over HTTP/1.1 (the CDN rejects HTTP/2) withReferer: https://miixdrop.net/. Abytes=0-15range must return 206 and an MP4ftypatom. - Respond — JSON with
directLink,referer,title, andvideoId.
The signed query parameters (s, e, _t) are issued by MixDrop and expire; resolve again when a link stops working.
The direct CDN URL is the real stream. The proxy exists only because browsers cannot set a cross-origin Referer on <video src> — and the CDN returns 403 without https://miixdrop.net/ (not mixdrop.net).
sequenceDiagram
participant UI as app.js
participant Proxy as /api/stream
participant CDN as mxcontent.net
UI->>Proxy: GET ?url=…&referer=…
Note over UI,Proxy: Browser sends Range headers
Proxy->>CDN: same Range + Referer from resolve
CDN-->>Proxy: 200 or 206
Proxy-->>UI: passthrough headers + body
UI->>UI: video.play()
- Direct link — use in tools that let you set
Referer(curl, ffmpeg, download managers). - Proxy link — for in-page test playback; forwards
Rangeand setsRefererserver-side. No caching, no re-encoding.
Transport split matches what was traced on the wire: HTTP/2 for the embed page, HTTP/1.1 for CDN byte ranges.
Requirements: Node.js 18+
npm startOpen http://localhost:8789, enter a file ID, and resolve.
curl -s -X POST http://localhost:8789/api/resolve \
-H 'Content-Type: application/json' \
-d '{"videoId":"el09xempuzkxz4"}'Optional: PORT=8789 (default 8789).
public/ Web UI
src/lib/ Shared client helpers (parse-video-id, timers)
src/server/
index.js Static files + API router
http/ TLS fingerprint + H2 embed / H1 CDN clients
routes/ resolve and stream handlers
mixdrop/
decode-page.js Unpack eval, extract wurl + title
resolver.js Embed fetch → decode → CDN probe
{ "videoId": "el09xempuzkxz4" }200
{
"videoId": "el09xempuzkxz4",
"title": "Example Title",
"directLink": "https://a-delivery46.mxcontent.net/v2/el09xempuzkxz4.mp4?s=…&e=…&_t=…",
"referer": "https://miixdrop.net/"
}400 — invalid ID, embed failure, CDN probe failure.
Query: url (direct link), referer (from resolve). Supports Range and HEAD. Returns CDN bytes with upstream status 200 (full) or 206 (ranged).
This project is provided for educational and research purposes only. It documents how a third-party streaming embed exposes CDN URLs through client-side player logic. It is not affiliated with, endorsed by, or sponsored by MixDrop or any related service.
You are responsible for complying with applicable laws, terms of service, and copyright obligations in your jurisdiction. Do not use this software to access, distribute, or reproduce content you do not have the right to use. The authors accept no liability for misuse.