Movie Sources
curl --request GET \
--url https://missourimonster-vyla.hf.space/moviedata: {"type":"meta","meta":{"id":550,"title":"Fight Club","release_date":"1999-10-15","runtime":139},"subtitles":[{"label":"English","file":"https://sub.vdrk.site/v1/movie/550/English.vtt","type":"vtt","source":"v1"}]}
data: {"type":"source","source":{"source":"vidlink","label":"VidLink","url":"https://missourimonster-vyla.hf.space/api?url=https%3A%2F%2F...&vl=1"}}
data: {"type":"source","source":{"source":"meowtv","label":"MeowTV","url":"https://missourimonster-vyla.hf.space/api?url=https%3A%2F%2F...&mt=1"}}
data: {"type":"done","total":2}
Stream Sources
Movie Sources
Stream verified HLS sources, subtitle tracks, and TMDB metadata for a movie via Server-Sent Events.
GET
/
movie
Movie Sources
curl --request GET \
--url https://missourimonster-vyla.hf.space/moviedata: {"type":"meta","meta":{"id":550,"title":"Fight Club","release_date":"1999-10-15","runtime":139},"subtitles":[{"label":"English","file":"https://sub.vdrk.site/v1/movie/550/English.vtt","type":"vtt","source":"v1"}]}
data: {"type":"source","source":{"source":"vidlink","label":"VidLink","url":"https://missourimonster-vyla.hf.space/api?url=https%3A%2F%2F...&vl=1"}}
data: {"type":"source","source":{"source":"meowtv","label":"MeowTV","url":"https://missourimonster-vyla.hf.space/api?url=https%3A%2F%2F...&mt=1"}}
data: {"type":"done","total":2}
Opens a Server-Sent Events connection and queries all configured providers in parallel. Results stream in as each provider resolves — you don’t wait for all providers to finish before playback can begin.
The
Emitted first, before any provider resolves.
Emitted once per verified, working provider.
Emitted when all providers have resolved or timed out.
meta event fires first with TMDB metadata and subtitles. Each working source arrives as its own source event. A final done event closes the stream.
Every url in a source event is fully qualified and already routed through the proxy. HLS sources have M3U8 segment paths rewritten — pass to hls.loadSource(). MP4 sources can be set directly as video.src.
Query Parameters
TMDB movie ID. Find it on themoviedb.org — it’s the number in the URL.Example:
themoviedb.org/movie/550 → id=550Comma-separated list of provider keys to query. When omitted, all active providers are queried.Example:
sources=vidlink,vixsrc,meowtvUse GET /api?sources_meta=1 to retrieve the full list of available provider keys.Request
curl -N "https://missourimonster-vyla.hf.space/movie?id=550"
SSE Event Reference
meta
Emitted first, before any provider resolves.
Always
"meta".Raw TMDB movie metadata.
null if no TMDB_API_KEY is configured on the server.Available subtitle tracks. Empty array
[] if none are found.source
Emitted once per verified, working provider.
Always
"source".Show Source object
Show Source object
Internal provider key. Matches the keys in
/health.Human-readable provider name.
Fully-qualified, proxied stream URL. For HLS sources, pass to
hls.loadSource() — all M3U8 segment and encryption key URIs are rewritten to route through the proxy. For MP4 sources, set as video.src directly. No base URL prepending needed.done
Emitted when all providers have resolved or timed out.
Always
"done".The total number of working
source events that were emitted during this stream.Example SSE Stream
data: {"type":"meta","meta":{"id":550,"title":"Fight Club","release_date":"1999-10-15","runtime":139},"subtitles":[{"label":"English","file":"https://sub.vdrk.site/v1/vtt/movie/550/English.vtt","type":"vtt","source":"v1"}]}
data: {"type":"source","source":{"source":"provider-a","label":"Provider A","url":"https://missourimonster-vyla.hf.space/api?url=...&pa=1"}}
data: {"type":"source","source":{"source":"provider-b","label":"Provider B","url":"https://missourimonster-vyla.hf.space/api?url=...&pb=1"}}
data: {"type":"done","total":2}
Status Codes
| Status | Meaning |
|---|---|
200 | SSE stream opened successfully — events follow |
400 | Missing id parameter |
500 | Server error before the stream could begin |
There is no
502 at the HTTP level for movies. If all providers fail, the stream will emit zero source events and then a done event with total: 0. Always check that you received at least one source event before attempting playback.data: {"type":"meta","meta":{"id":550,"title":"Fight Club","release_date":"1999-10-15","runtime":139},"subtitles":[{"label":"English","file":"https://sub.vdrk.site/v1/movie/550/English.vtt","type":"vtt","source":"v1"}]}
data: {"type":"source","source":{"source":"vidlink","label":"VidLink","url":"https://missourimonster-vyla.hf.space/api?url=https%3A%2F%2F...&vl=1"}}
data: {"type":"source","source":{"source":"meowtv","label":"MeowTV","url":"https://missourimonster-vyla.hf.space/api?url=https%3A%2F%2F...&mt=1"}}
data: {"type":"done","total":2}
Notes
Filtering providers with sources=
Filtering providers with sources=
Pass a comma-separated list of provider keys to query only specific providers:Keys that don’t match any active provider are silently ignored. If none of the requested keys match, the response will emit
/movie?id=550&sources=vidlink,vixsrc
/tv?id=1396&season=1&episode=1&sources=vidlink,vixsrc
done with total: 0. Omit the parameter entirely to query all active providers.Response time
Response time
The
meta event fires almost instantly. Individual source events arrive throughout the stream as providers resolve — typically within 3–8 seconds of opening the connection. The stream closes after the slowest configured provider times out.Source ordering
Source ordering
Sources arrive in the order providers resolve, which generally correlates with speed. Use the first
source event to begin playback and queue the rest as fallbacks.Zero sources
Zero sources
If all providers fail, you’ll receive a
done event with total: 0 and no source events. Check /health to see which providers are up.Using EventSource vs fetch streaming
Using EventSource vs fetch streaming
EventSource is simpler but doesn’t support POST or custom headers. The fetch + ReadableStream approach works everywhere and is shown in the examples above.⌘I

