Skip to main content
GET
/
api
/
tv
GET /api/tv
curl --request GET \
  --url https://vyla-api.pages.dev/api/tv
{
  "success": true,
  "results_found": 123,
  "sources": [
    {
      "url": "<string>",
      "type": "<string>",
      "quality": "<string>",
      "provider": "<string>",
      "audioTracks": [
        {
          "language": "<string>",
          "label": "<string>"
        }
      ],
      "headers": {
        "Referer": "<string>",
        "Origin": "<string>"
      },
      "vlc_url": "<string>"
    }
  ],
  "subtitles": [
    {
      "url": "<string>",
      "label": "<string>",
      "format": "<string>"
    }
  ]
}
Scrapes all providers for a TV episode and returns the raw source list. Sources are sorted by quality and filtered to English audio only. No deduplication beyond exact URL matches is applied at this layer.
For enriched output with pre-built download_url, ffmpeg_command, and deeper deduplication across all providers in parallel, use GET /api/stream/tv instead.

Query Parameters

id
string
required
TMDB series ID — not episode ID. Find it at themoviedb.org, e.g. themoviedb.org/tv/456456.
season
number
default:"1"
Season number.
episode
number
default:"1"
Episode number.

Example Request

curl https://vyla-api.pages.dev/api/tv?id=456

Response

success
boolean
required
true if scraping succeeded, false otherwise.
results_found
number
required
Total number of sources returned.
sources
Source[]
required
Array of stream source objects, sorted by quality descending.
subtitles
Subtitle[]
required
Array of subtitle objects.
{
  "success": true,
  "results_found": 9,
  "sources": [
    {
      "url": "https://vixsrc.to/playlist/202976?token=...&expires=...&h=1",
      "type": "hls",
      "quality": "1080p",
      "provider": "VixSrc",
      "audioTracks": [
        { "language": "eng", "label": "English" }
      ],
      "headers": {
        "Referer": "https://vixsrc.to",
        "Origin": "https://vixsrc.to"
      },
      "vlc_url": "https://vixsrc.to/playlist/202976?token=...&expires=...&h=1"
    },
    {
      "url": "https://bcdnxw.hakunaymatata.com/bt/abc123.mp4?sign=...&t=...",
      "type": "mp4",
      "quality": "360p",
      "provider": "VidRock",
      "audioTracks": [
        { "language": "eng", "label": "English" }
      ],
      "headers": {
        "Referer": "https://lok-lok.cc/",
        "Origin": "https://lok-lok.cc/"
      },
      "vlc_url": "https://bcdnxw.hakunaymatata.com/bt/abc123.mp4?sign=...&t=..."
    }
  ],
  "subtitles": [
    {
      "url": "https://vixsrc.to/playlist/202976?type=subtitle&rendition=3-eng&token=...&expires=...&edge=...",
      "label": "English [CC]",
      "format": "vtt"
    },
    {
      "url": "https://vdrk.b-cdn.net/cache/tv/456/1/1/English.vtt",
      "label": "English",
      "format": "vtt"
    }
  ]
}
The headers field on each source must be forwarded when fetching the stream directly. Use /api/stream/tv to get pre-built vlc_url (proxied), download_url, and ffmpeg_command with headers already encoded.
The id parameter refers to the series, not an individual episode. Season and episode numbers are passed as separate season and episode parameters.