YouTube Shorts transcripts in bulk — data, text and comments in one row
One row per Short: views, likes, publish date, the spoken transcript with timestamps in the video's original language, and the top comments with their authors. Excel-ready.
Pay per result, only for what is delivered: $5 per 1,000 Shorts with a transcript, $0.20 per 1,000 comments. Shorts without captions are reported and not charged.
Three traps that make this harder than it looks
All numbers below come from our own runs, not from estimates.
1. The transcript you get is usually a machine translation
Ask YouTube for the captions of one English Short and it hands you 21 tracks: the video's own language plus 20 auto-translations. Most tools pick by "preferred language", so you feed an English video into your workflow and the text that comes back is Spanish or German, silently. Our tools return the original track and expose it as its own field so you can verify it. Measured: 0 wrongly translated rows.
2. The obvious way costs 1.9 MB per video
Downloading the whole watch page costs ~1.9 MB per Short. The lighter path (mobile player endpoint) returns the same captions at ~340 KB. If you pay for residential proxies by the gigabyte, that difference is the difference between profitable and losing money. (The Android client response measured 11.9 MB per video — 25× the desktop page.)
3. One IP gets rate-limited after ~30–40 caption requests
After roughly 30–40 requests YouTube answers "sign in to confirm you're not a bot". Rotating the residential proxy per request and retrying that specific error with another IP took the success rate from 85% to ~95%. In our last full run: 49 of 51 Shorts came back with text, and the retry saved 6 that would otherwise have been empty.
What one row contains
| Group | Fields |
|---|---|
| Video data | video_id, url, titulo, canal,
canal_url, duracion_s, fecha_publicacion, vistas,
me_gusta, miniatura_url |
| Transcript | idioma, subtitulo_automatico, es_traduccion,
fragmentos_total, texto_con_tiempos, texto_completo |
| Comments | comentarios_incluidos, comentarios_texto |
| Status | estado, error |
20 flat columns — nothing nested, so exports to Excel and Google Sheets never break.
How to run it
From n8n
Add an Apify node → Run Actor and get dataset → Actor
sicteg/youtube-shorts-scraper. One item per Short comes back, ready for a summarizer or a
repurposing workflow.
From Python
from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("sicteg/youtube-shorts-scraper").call(run_input={
"startUrls": ["https://www.youtube.com/@MrBeast/shorts"],
"maxShortsPorEnlace": 50,
"comentariosPorShort": 20,
})
for row in client.dataset(run["defaultDatasetId"]).iterate_items():
print(row["titulo"], row["vistas"], len(row["texto_completo"]))
There is also a ready-to-run script (no dependencies, exports straight to CSV) in our GitHub repository: github.com/sictegltda-cyber/youtube-shorts-transcripts-to-csv
Pricing
| What | Price | Notes |
|---|---|---|
| Short delivered with transcript | $5.00 / 1,000 | $0.005 each, video data included |
| Comments | $0.20 / 1,000 | $0.0002 each, optional |
| Short without captions | $0 | Reported as sin_subtitulo, never charged |
En español
Sacamos el texto hablado de los YouTube Shorts en bloque: una fila por Short con los datos del video (vistas, me gusta, fecha), la transcripción con tiempos en el idioma original y los comentarios principales con su autor. Se exporta limpio a Excel.
Se cobra solo por lo que se entrega: US$5 por cada 1.000 Shorts con transcripción y US$0,20 por cada 1.000 comentarios. Los Shorts que no traen subtítulo se reportan y no se cobran. Se puede usar desde n8n, Make, Zapier o su propio código.
Ver la herramienta (datos + texto + comentarios) · Solo transcripciones