Black Friday · 30% off

Get 30% off
Volver al blog
Integraciones

How to Get YouTube Transcripts in Python

Two ways to pull YouTube transcripts in Python: the open-source youtube-transcript-api library, and a hosted REST API. Working code for both, and where the self-hosted approach breaks in production.

00:07:00 · SEP 26, 2026 · ACTUALIZADO OCT 09, 2026

Respuesta rápida

Instala youtube-transcript-api para un script local rápido, o llama a una API REST alojada si no quieres lidiar con bloqueos de IP y problemas de PoToken al desplegar. Ambas opciones están cubiertas abajo con código funcional.
01

Instala la librería de código abierto

youtube-transcript-api es un paquete de Python bien mantenido que obtiene los datos de subtítulos de YouTube directamente - sin clave de API, sin cuota de la YouTube Data API.

pip install youtube-transcript-api

Obtén una transcripción con un ID de video:

from youtube_transcript_api import YouTubeTranscriptApi

api = YouTubeTranscriptApi()
transcript = api.fetch("dQw4w9WgXcQ", languages=["en"])

for snippet in transcript:
    print(snippet.text, snippet.start, snippet.duration)
02

Dónde falla esto al desplegarlo

Esto funciona de forma fiable en una laptop. Al desplegarlo en un servidor en la nube, puede toparse con fallos reales y bien documentados - bloqueo de IP, PoTokenRequired, y un error de 'subtítulos deshabilitados' que no siempre es lo que parece. Consulta la lista de diagnóstico completa para las causas y soluciones exactas.

03

Consigue una clave de API (si prefieres no auto-alojar)

Obtén una clave gratis en el panel - 100 créditos gratis, sin tarjeta.

pip install requests
04

Llama a la API alojada desde Python

Sin pool de proxies, sin mantenimiento de bloqueos de IP - solo una petición HTTP:

import requests

response = requests.get(
    "https://getyoutubetranscript.com/api/v1/transcript",
    params={"v": "dQw4w9WgXcQ"},
    headers={"Authorization": "Bearer sk_live_..."},
)
result = response.json()

print(result["data"]["transcript"])
print(result["data"]["word_count"])

Una petición fallida devuelve un objeto de error en vez de lanzar una excepción específica de una librería, así que el mismo manejo de errores funciona en todos los endpoints.

{ "success": false, "code": "...", "message": "..." }
05

Obtener más de un video

Iterar sobre una lista de IDs de video funciona igual - solo vigila el límite de peticiones por minuto de tu plan. Consulta la guía de límites de velocidad para la lógica de reintento y espera.

Ambos enfoques devuelven la misma información - la diferencia es quién mantiene la infraestructura que hace que siga funcionando. Ve el precio completo (100 créditos gratis, sin tarjeta) o lee la documentación de la API para cada endpoint.

Preguntas frecuentes de transcripciones de YouTube en Python

Q01

¿Qué enfoque debería usar?

youtube-transcript-api para un script local rápido o un prototipo. Una API alojada cuando estés desplegando a producción y no quieras mantener tú mismo los workarounds de proxy/bloqueo de IP.

Q02

¿La API alojada requiere la librería youtube-transcript-api?

No - es una API REST normal. Llámala con cualquier cliente HTTP (requests, httpx, incluso curl); no se necesita ninguna dependencia específica de Python.

Q03

¿Puedo obtener marcas de tiempo por línea, no solo el texto completo?

Sí. Añade timestamps=true a la solicitud de transcripción y la respuesta incluirá también segments: un {start, duration, text} por cada línea de subtítulos, con los tiempos en segundos. La biblioteca de código abierto devuelve el mismo tipo de marcas de tiempo por fragmento.

Q04

¿Qué pasa si un video no tiene transcripción?

Ambos enfoques devuelven un error específico en vez de una cadena vacía - consulta la lista de diagnóstico para saber qué significa cada código de error.

Relacionado

Featured on aitoolfame.comFeatured on Aura++Featured on DeepLaunch.ioFeatured on Dofollow.ToolsFeatured on EasyDoFollowFeatured on EarlyHuntFeatured on Findly.toolsFeatured on FoundrListGood AI ToolsFeatured on IndieHuntFeatured on LaunchBuffFeatured on launched.toolsFeatured on Launch Llama ToolsFeatured on LemonLaunchLiftOff launch badgeMy Launch StashGetYouTubeTranscript on Nick LaunchesOpenHunts Club MemberFeatured on saasfame.comShinyLaunchFeatured on ShowMeBestAIFeatured on toolfame.comListed on Turbo0Featured on Twelve ToolsHuzzler Embed BadgeFeatured on CodeHypeGetYouTubeTranscript on Better LaunchDokeyAIFeatured on WayfindioFeatured on LaunchZoneFeatured on NoonlaunchFeatured on WhatsthebigdataSurfaced on CodeTrendyFeatured on ScrollLaunchFeatured on ufind.bestFeatured on ShipBoostProduct WingWe Like ToolsAppa ListAcid ToolsPower Up ToolsToshi ListAIGC 160Appsy ToolsHunt for ToolsBeam ToolsTool Find DirTool SignalSaaS Tools DirSoftware BoltProduct List DirStack DirectorySaaS FieldSaaS WheelSaaS RootsStartup BenchmarksUnite ListTrustinerBest Tool VaultSolver ToolsAsh ListSmart Kit HubAI X CollectionAI Tech ViralMillion Dot HomepageThat App ShowLaunch ScrollMy Start ToolsLatest AI UpdatesSuper AI BoomTools Under RadarThe Key ToolsTool JourneyTools List HQThe App ToolsThe Mega ToolsSource DirTool CosmosTop Trend ToolsTiny Tool HubTool PrismStartup AIdeasFeatured on WonderLaunchFeatured on ShipycornFeatured on ToolsClawListed on ProofStoriesFeatured on ToolListedLaunched on Launch Streak