Skip to main content
Vyla API

What is Vyla API?

Vyla API is a Cloudflare Pages API that scrapes streaming sources from 8 providers concurrently and serves them through a unified JSON interface. Pass any TMDB ID and get back:

Stream URLs

Direct HLS and MP4 sources, sorted by quality — filtered to English audio only

Download Links

Pre-built download_url and ready-to-run ffmpeg_command for every source

Subtitles

Deduplicated English subtitle tracks in VTT and SRT, proxied and ready to inject

Embeddable Player

One iframe, zero config — fallback logic, subtitles, and HLS.js built in

Base URL

https://vyla-api.pages.dev
All endpoints return Access-Control-Allow-Origin: * — no credentials needed.

Quick Start

curl https://vyla-api.pages.dev/api/movie?id=27205
New here? Jump to the Quickstart for a guided walkthrough of the four most common use cases.

Endpoint Overview

EndpointDescription
GET /api/movieRaw streaming sources for a movie
GET /api/tvRaw streaming sources for a TV episode
GET /api/scrapeSingle-provider scrape — internal building block
EndpointDescription
GET /api/stream/movieAll providers in parallel · download_url · ffmpeg_command · deep dedup
GET /api/stream/tvSame, for TV episodes
GET /api/download/movieAlias of /api/stream/movie
GET /api/download/tvAlias of /api/stream/tv
EndpointDescription
GET /api/downloadProxy-download a single raw video URL
GET /api/proxyProxy any URL through Cloudflare with CORS + header injection
GET /api/playerEmbeddable fullscreen HTML player

Providers

Sources are scraped concurrently from all 8 providers, filtered to English audio, and sorted by quality before being returned.

Quality Priority

All sources are sorted in this order before being returned:
1

4K / 2160p

2

1440p

3

1080p

4

720p

5

480p → 360p → 240p

6

HD → Auto → Unknown


Source Object Reference

{
  "url": "https://...",
  "type": "hls | mp4 | mkv",
  "quality": "1080p",
  "provider": "VixSrc",
  "audioTracks": [
    { "language": "eng", "label": "English" }
  ],
  "headers": {
    "Referer": "https://...",
    "Origin": "https://..."
  },
  "vlc_url": "https://..."
}
vlc_url is identical to url on raw endpoints — it is not proxied. You must forward headers yourself when fetching the stream directly.

CORS Headers

Every endpoint returns:
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: GET, HEAD, OPTIONS
Access-Control-Allow-Headers: *