Switching from YouTube Transcript & Subtitles Scraper API to YouTube Transcript & Subtitles Scraper
YouTube Transcript & Subtitles Scraper (arcadium/youtube-transcripts) reads input written for johnvc/YoutubeTranscripts: 7 of its 12 input fields work as they are. Field list from its public input schema (build 0.5.134, 2026-10-31); prices and run results from the public Apify API, 2026-10-31.
Their fields that work as they are
| Their field | Type | Note |
|---|---|---|
youtube_url | string,array | As is |
languages | array | As is |
translate_to | string | As is |
transcript_type | string | As is |
output_formats | array | As is |
channel | string,array | As is |
max_videos | integer | As is |
Their fields this actor does not read
preserve_formatting, list_only, include_metadata, include_extended_metadata, channel_transcripts. Leave them out of the input; the actor’s own options are in the guide.
Side by side: their input, our rows
Input written for johnvc/YoutubeTranscripts, pasted unchanged:
{
"youtube_url": "https://www.youtube.com/watch?v=1UL8iZJD38U",
"languages": [
"de"
],
"translate_to": "en",
"transcript_type": "manual",
"output_formats": [
"srt"
],
"max_videos": 20
}One row from arcadium/youtube-transcripts (README example; long text shortened):
{
"rowType": "transcript",
"platform": "youtube",
"videoId": "dQw4w9WgXcQ",
"url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
"title": "Rick Astley - Never Gonna Give You Up (Official Video) (4K Remaster)",
"channelName": "Rick Astley",
"channelId": "UCuAXFkgsw1L7xaCfnd5JJOw",
"channelHandle": "@RickAstleyYT",
"channelUrl": "https://www.youtube.com/channel/UCuAXFkgsw1L7xaCfnd5JJOw",
"durationSeconds": 213,
"publishDate": "2009-10-24T23:57:33-07:00",
"viewCount": 1829055386,
"likeCount": 19491653,
"category": "Music",
"isLiveContent": false,
"keywords": [
"rick astley",
"Never Gonna Give You Up"
],
"description": "The official video for “Never Gonna Give You Up” by Rick Astley. Never: The Autobiography OUT NOW!...",
"language": "en",
"languageName": "English",
"isAutoGenerated": false,
"languageMatched": true,
"translationStatus": "not_requested",
"translatedFrom": null,
"availableLanguages": [
{
"code": "en",
"name": "English",
"isAutoGenerated": false
},
{
"code": "en",
"name": "English",
"isAutoGenerated": true
}
],
"transcript": "[♪♪♪] ♪ We're no strangers to love ♪ ♪ You know the rules and so do I ♪ ...",
"segmentCount": 61,
"wordCount": 487,
"segments": [
{
"start": 1.36,
"duration": 1.68,
"text": "[♪♪♪]"
},
{
"start": 18.64,
"duration": 3.24,
"text": "♪ We're no strangers to love ♪"
}
],
"source": null,
"scrapedAt": "2026-10-22T08:00:00.000Z"
}Output fields: rowType, platform, videoId, url, title, channelName, channelId, channelHandle, channelUrl, durationSeconds, publishDate, viewCount, likeCount, category, isLiveContent, keywords, description, language, languageName, isAutoGenerated, languageMatched, translationStatus, translatedFrom, availableLanguages, transcript, segmentCount, wordCount, segments, srt, vtt, source, scrapedAt, input, code, message. The rows use these names, not the other actor’s.
Price
| Actor | Pricing model | Charged per | Per 1,000, Free plan | Per 1,000, lowest plan |
|---|---|---|---|---|
| arcadium/youtube-transcripts | Pay per event | Transcript | $2.48 | $1.80 |
| johnvc/YoutubeTranscripts | Pay per event | Video Processed | $2.75 | $2.00 |
Live Apify prices on 2026-10-31, in USD, for each actor’s main charged event. Start fees and platform usage are not included. Units differ: compare what one charged row contains. The Store page of each actor is the current source.
Common issues: failed or timed-out runs
- YouTube Transcript & Subtitles Scraper API timed out: 0.1% of 192,123 runs timed out.
- YouTube Transcript & Subtitles Scraper API failed: 0.0% of 192,123 runs ended as failed.
| Actor | Runs, last 30 days | Failed | Timed out |
|---|---|---|---|
| arcadium/youtube-transcripts | under 50 runs (3 runs) | - | - |
| johnvc/YoutubeTranscripts | 192,123 | 0.0% | 0.1% |
Apify’s public run statistics for each actor, last 30 days to 2026-10-31: FAILED and TIMED-OUT runs as a share of all runs. Shown from 50 runs. A failed run can also come from a bad input. Here an input that cannot be read comes back as a free error row with a code, and the other inputs still arrive.
How to switch
In the Apify Store
- Open arcadium/youtube-transcripts and sign in to Apify.
- On the Input tab, switch the editor to JSON and paste the input you used for johnvc/YoutubeTranscripts, without the fields listed above as not read.
- Start the run. Set a maximum cost per run in the run options if you want a hard cap.
Over the API
Change the actor ID in the URL from johnvc~YoutubeTranscripts to arcadium~youtube-transcripts; the body stays the same apart from the fields this actor does not read.
curl -X POST "https://api.apify.com/v2/acts/arcadium~youtube-transcripts/run-sync-get-dataset-items" \
-H "Authorization: Bearer $APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"youtube_url":"https://www.youtube.com/watch?v=1UL8iZJD38U","languages":["de"],"translate_to":"en","transcript_type":"manual","output_formats":["srt"],"max_videos":20}'
In n8n
In the Apify node, change the actor to arcadium/youtube-transcripts and keep the input JSON. With an HTTP Request node:
{
"nodes": [
{
"name": "Run arcadium/youtube-transcripts",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4,
"position": [
0,
0
],
"parameters": {
"method": "POST",
"url": "https://api.apify.com/v2/acts/arcadium~youtube-transcripts/run-sync-get-dataset-items",
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth",
"sendBody": true,
"specifyBody": "json",
"jsonBody": "{\"youtube_url\":\"https://www.youtube.com/watch?v=1UL8iZJD38U\",\"languages\":[\"de\"],\"translate_to\":\"en\",\"transcript_type\":\"manual\",\"output_formats\":[\"srt\"],\"max_videos\":20}",
"options": {
"timeout": 300000
}
}
}
],
"connections": {}
}
From an AI assistant (MCP)
Add the actor as a tool on Apify’s MCP server; an agent can pass the same input fields.
{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com/?tools=arcadium/youtube-transcripts",
"headers": {
"Authorization": "Bearer <APIFY_TOKEN>"
}
}
}
}