Skip to main content
GET
/
movie
Movie Sources
curl --request GET \
  --url https://missourimonster-vyla.hf.space/movie
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}
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 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

id
string
required
TMDB movie ID. Find it on themoviedb.org — it’s the number in the URL.Example: themoviedb.org/movie/550id=550
sources
string
Comma-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.
type
string
required
Always "meta".
meta
object | null
Raw TMDB movie metadata. null if no TMDB_API_KEY is configured on the server.
subtitles
Subtitle[]
required
Available subtitle tracks. Empty array [] if none are found.

source

Emitted once per verified, working provider.
type
string
required
Always "source".
source
Source
required

done

Emitted when all providers have resolved or timed out.
type
string
required
Always "done".
total
number
required
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

StatusMeaning
200SSE stream opened successfully — events follow
400Missing id parameter
500Server 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

Pass a comma-separated list of provider keys to query only specific providers:
/movie?id=550&sources=vidlink,vixsrc
/tv?id=1396&season=1&episode=1&sources=vidlink,vixsrc
Keys that don’t match any active provider are silently ignored. If none of the requested keys match, the response will emit done with total: 0. Omit the parameter entirely to query all active providers.
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.
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.
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.
EventSource is simpler but doesn’t support POST or custom headers. The fetch + ReadableStream approach works everywhere and is shown in the examples above.