Skip to main content
GET
/
api
/
subtitles
/
movie
/
{tmdb_id}
Movie Subtitles
curl --request GET \
  --url https://missourimonster-vyla.hf.space/api/subtitles/movie/{tmdb_id}
{
  "[]": [
    {
      "label": "<string>",
      "file": "<string>",
      "type": "<string>",
      "source": "<string>"
    }
  ]
}
Returns an array of subtitle tracks for a movie. Each track is a direct link to a .vtt or .srt file — no proxy needed. Subtitle tracks are also bundled automatically in /api/movie responses; use this endpoint when you need them independently.

Path Parameters

tmdb_id
string
required
TMDB movie ID.Example: /api/subtitles/movie/550 → subtitles for Fight Club

Request

curl https://missourimonster-vyla.hf.space/api/subtitles/movie/550

Response

Returns a JSON array. 404 if no subtitles are found for this title.
[]
Subtitle[]
Array of subtitle track objects.

Responses

[
  {
    "label": "English",
    "file": "https://sub.vdrk.site/v1/movie/550/English.vtt",
    "type": "vtt",
    "source": "v1"
  },
  {
    "label": "Spanish",
    "file": "https://sub.vdrk.site/v1/movie/550/Spanish.vtt",
    "type": "vtt",
    "source": "v1"
  },
  {
    "label": "French",
    "file": "https://sub.vdrk.site/v2/movie/550/French.vtt",
    "type": "vtt",
    "source": "v2"
  }
]

Usage Examples

HTML <track> element

<video id="player" controls></video>

<script>
  fetch('https://missourimonster-vyla.hf.space/api/subtitles/movie/550')
    .then(r => r.json())
    .then(subs => {
      const video = document.getElementById('player');
      subs.forEach((sub, i) => {
        const track = document.createElement('track');
        track.kind    = 'subtitles';
        track.label   = sub.label;
        track.src     = sub.file;
        track.default = i === 0; // default to first track
        video.appendChild(track);
      });
    });
</script>

Video.js

import videojs from 'video.js';

const subs = await fetch(
  'https://missourimonster-vyla.hf.space/api/subtitles/movie/550'
).then(r => r.json());

const player = videojs('player');

subs.forEach(sub => {
  player.addRemoteTextTrack({
    kind: 'subtitles',
    label: sub.label,
    src: sub.file,
  }, false);
});

Plyr

import Plyr from 'plyr';

const subs = await fetch(
  'https://missourimonster-vyla.hf.space/api/subtitles/movie/550'
).then(r => r.json());

// Add <track> elements before initialising Plyr
subs.forEach(sub => {
  const track = Object.assign(document.createElement('track'), {
    kind:  'captions',
    label: sub.label,
    src:   sub.file,
  });
  document.getElementById('player').appendChild(track);
});

const player = new Plyr('#player', {
  captions: { active: true, update: true },
});
Subtitle tracks are included automatically in /api/movie responses. Only call this endpoint when you need subtitles without fetching stream sources.