~/social/youtube-transcript-scraper

YouTube Subtitle & Transcript Scraper — JSON, SRT, VTT, LLM

Extrayez sous-titres et transcriptions YouTube — vidéos, Shorts, playlists et chaînes — en JSON, SRT, VTT, texte brut, ou texte prêt pour LLM. Plus de 100 langues, métadonnées riches, sans clé API — extractions échouées gratuites.

médias TypeScriptInnerTube Mondial
proooxy/youtube-transcript-scraper — specs
catégoriesocial / médias
langageTypeScript
stackTypeScript, InnerTube
marchésMondial
sortieJSON propre, prêt pour le RAG

fonctionnalités clés

Un seul input gère vidéos, Shorts, liens youtu.be, playlists et chaînes — mixés en un seul run

Cinq formats de sortie — JSON (horodaté), SRT, VTT, texte brut, et prêt pour LLM (retire [Music], [Applause] et les étiquettes de locuteur)

Plus de 100 langues, avec une liste de langues ordonnée par priorité et un repli sur les sous-titres automatiques activable

Métadonnées riches — titre, chaîne, description, date de publication, nombre de vues, miniature, durée et langues disponibles

Traitez en lot des playlists et chaînes entières avec un plafond maxVideos et une concurrence de 1 à 10

Support des proxies résidentiels, plus des cookies optionnels pour réduire les blocages liés à la vérification anti-bot

Extraction multi-niveaux — jusqu’à neuf replis à travers les clients InnerTube, avec un dernier recours par PO-token yt-dlp

Un disjoncteur et une gestion des erreurs par élément permettent aux gros lots de continuer à tourner

cas d’usage

  • Équipes IA/ML construisant des datasets RAG ou de fine-tuning à partir de vidéos parlées (sortie texte prête pour LLM)
  • Équipes de contenu recyclant les transcriptions en articles de blog, notes d’émission et légendes sociales
  • Marketeurs SEO extrayant du texte vidéo indexable pour l’indexation et la recherche de mots-clés
  • Monteurs et éditeurs ayant besoin de fichiers de sous-titres SRT/VTT standards
  • Chercheurs collectant des transcriptions en masse sur une chaîne ou une playlist entière
  • Développeurs ayant besoin de sous-titres structurés et horodatés sans clé API YouTube

paramètres d’entrée

ParamètreTypeRequisDescription
urlsarrayoptionnelURLs YouTube ou ID bruts — vidéos, Shorts, liens youtu.be, playlists, ou chaînes. Requis à l’exécution.
outputFormatstringoptionnelFormat de transcription : json, srt, vtt, text, ou llm (par défaut : json).
languagesarrayoptionnelLangues de sous-titres préférées par ordre de priorité, codes ISO 639-1 (par défaut : en).
includeAutoGeneratedbooleanoptionnelSe replie sur les sous-titres générés automatiquement quand les sous-titres manuels sont absents (par défaut : true).
maxVideosnumberoptionnelPlafond de vidéos traitées par run, ex. pour les playlists/chaînes (par défaut : 0 = illimité).
maxConcurrencynumberoptionnelVidéos traitées en parallèle, 1 à 10 (par défaut : 3).
proxyConfigurationobjectoptionnelParamètres de proxy ; par défaut Apify Residential épinglé sur les US.
youtubeCookiesstringoptionnelCookies YouTube optionnels (en-tête Cookie ou cookies.txt) pour réduire les blocages liés à la vérification anti-bot.

Exemple de sortie

 1{
 2  "videoId": "dQw4w9WgXcQ",
 3  "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
 4  "title": "Rick Astley - Never Gonna Give You Up (Official Video)",
 5  "channelName": "Rick Astley",
 6  "channelId": "UCuAXFkgsw1L7xaCfnd5JJOw",
 7  "publishDate": "2009-10-25",
 8  "viewCount": 1761003712,
 9  "availableLanguages": ["en", "de-DE", "ja", "pt-BR", "es-419"],
10  "language": "en",
11  "isAutoGenerated": false,
12  "duration": 213,
13  "wordCount": 487,
14  "segmentCount": 61,
15  "text": "We're no strangers to love, you know the rules and so do I...",
16  "segments": [{ "text": "We're no strangers to love", "start": 18.64, "end": 21.88 }],
17  "error": null
18}

Tarification

Facturation à l’événement : facturé une fois par transcription extraite avec succès — les vidéos échouées ne sont jamais facturées. Alimentez avec une chaîne ou une playlist entière, et ne payez que pour les sous-titres réellement obtenus.

Astuces

  • Utilisez outputFormat: llm pour le RAG et le fine-tuning — cela retire les annotations non vocales pour que vos embeddings voient une prose propre.
  • Gardez un proxy résidentiel actif. YouTube bloque agressivement les IP datacenter ; l’acteur utilise par défaut du résidentiel US, et ce n’est pas un hasard.
  • Démarrez maxConcurrency à 1–3 pour les gros volumes et augmentez-le progressivement — une concurrence élevée accroît le risque de limitation de débit sur les scrapes de grandes chaînes.

faq

Ai-je besoin d’une clé API YouTube ou de me connecter ?
Non. L’acteur extrait les sous-titres directement — aucune clé YouTube Data API, aucune connexion. Un input cookies optionnel peut être fourni pour réduire les blocages « Connectez-vous pour confirmer que vous n’êtes pas un robot » sur certaines vidéos.
Quelles langues et quels types de sous-titres sont supportés ?
Plus de 100 langues. Fournissez une liste de codes ISO 639-1 ordonnée par priorité (par défaut : en) ; l’acteur privilégie les sous-titres créés manuellement et se replie sur les sous-titres automatiques, sauf si vous désactivez includeAutoGenerated.
Suis-je facturé pour les vidéos dont l’extraction échoue ?
Non. La facturation est à l’événement, sur un seul événement transcript-extracted, facturé uniquement après la sauvegarde réussie d’une transcription. Les vidéos échouées apparaissent dans la sortie avec un champ error et ne sont pas facturées.
Puis-je obtenir du texte propre, prêt pour LLM, pour le RAG ?
Oui. Définissez outputFormat sur 'llm' pour retirer les annotations [Music]/[Applause] et les étiquettes de locuteur, produisant une prose propre, idéale pour les embeddings et le fine-tuning.

similaires dans ~/social

Exécutez YouTube Subtitle & Transcript Scraper — JSON, SRT, VTT, LLM, ou obtenez un projet sur mesure

Commencez à extraire sur Apify en quelques minutes, ou engagez-moi pour construire un scraper sur mesure et un pipeline RAG adaptés exactement à votre source et à votre schéma.

exécuter sur Apify obtenir des données sur mesure