Sign up on RapidAPI and subscribe to any EasySubAPI plan to get your API key.
Use the following endpoint to download subtitles:
POST https://easysubapi.p.rapidapi.com/api/easysubapi-get-transcript
Example requests:
curl --request POST \ --url https://easysubapi.p.rapidapi.com/api/easysubapi-get-transcript \ --header 'Content-Type: application/json' \ --header 'x-rapidapi-host: easysubapi.p.rapidapi.com' \ --header 'x-rapidapi-key: YOUR_API_KEY' \ --data '{"video_id":"CN1Y0mxA_o8"}'
import requests url = "https://easysubapi.p.rapidapi.com/api/easysubapi-get-transcript" payload = { "video_id": "CN1Y0mxA_o8" } headers = { "x-rapidapi-key": "YOUR_API_KEY", "x-rapidapi-host": "easysubapi.p.rapidapi.com", "Content-Type": "application/json" } response = requests.post(url, json=payload, headers=headers) print(response.json())
const request = require('request'); const options = { method: 'POST', url: 'https://easysubapi.p.rapidapi.com/api/easysubapi-get-transcript', headers: { 'x-rapidapi-key': 'YOUR_API_KEY', 'x-rapidapi-host': 'easysubapi.p.rapidapi.com', 'Content-Type': 'application/json' }, body: { video_id: 'CN1Y0mxA_o8' }, json: true }; request(options, function (error, response, body) { if (error) throw new Error(error); console.log(body); });
{ "message": "Results found", "result": [ { "data": { "@timestamp": "2025-08-06T06:35:16.146708", "frames": [ { "from_time": 0, "message": "Hello everyone, welcome to this tutorial", "to_time": 4 }, { "from_time": 4, "message": "Today we'll learn about advanced techniques", "to_time": 8 }, { "from_time": 8, "message": "Even though this video is in Russian, you get English subtitles", "to_time": 12 } ... ], "language": "en", "platform": "youtube", "video_id": "0Spytc4u55E" } } ], "status": 200 }
For example, if the video is in Russian, the API response might look like this:
{ "message": "Results found", "result": [ { "data": { "@timestamp": "2025-08-06T06:35:16.146708", "frames": [ { "from_time": 0, "message": "okay so in this video we're going to be", "to_time": 4 }, { "from_time": 1, "message": "talking about the good old Apple card", "to_time": 5 }, { "from_time": 4, "message": "that came out in", "to_time": 9 }, { "from_time": 667, "message": "the video but with that being said I see", "to_time": 674 }, { "from_time": 670, "message": "y'all on the next one", "to_time": 673 } ], "language": "en", "platform": "youtube", "video_id": "0Spytc4u55E" } } ], "status": 200 }