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
}