Subtitles and downloads
Unified media-data paths for movies and TV episodes.
Subtitle paths
| Media | Path |
|---|---|
| Movie | GET /subtitles/movie/:id |
| TV episode | GET /subtitles/tv/:id/:season/:episode |
The same routes are available under /api/subtitles. A successful response is a JSON array of
tracks; a missing result returns 404 with an error object.
[
{
"label": "English",
"file": "https://example.invalid/subtitles/en.vtt",
"type": "vtt",
"source": "v1"
}
]
file is the track URL, type is normally vtt or srt, and
source identifies the subtitle backend. Prefer the tracks included in the playback
meta event when you are already opening a playback stream; use these paths when subtitles are
fetched separately.
Download paths
| Media | Path |
|---|---|
| Movie | GET /downloads/movie/:id |
| TV episode | GET /downloads/tv/:id/:season/:episode |
The /api/downloads prefix is also supported. A successful response is an array; an empty array
simply means no candidates were found.
[
{
"url": "https://example.invalid/file.mp4",
"quality": "1080p",
"size": "2.14 GB",
"format": "MP4"
}
]
Download URLs are provider results, not durable Vyla-hosted files. Display quality and size as informational fields, and handle expired or unavailable links in your client.
Request and response rules
- IDs are TMDB IDs; TV paths additionally require season and episode numbers.
- Both families return JSON, unlike the SSE playback paths.
- Handle
404for missing subtitles and500for an upstream or resolver failure. - Do not block first playback on either call. Fetch them in parallel or after the player has started.
