Le problème résolu
La transcription manuelle limite les études à quelques dizaines de vidéos, et les scripts de scraping bricolés cassent et sont difficiles à reproduire. Les chercheurs ont besoin d'un moyen fiable de collecter des transcriptions complètes pour un échantillon défini de chaînes et de dates, de les stocker avec leurs métadonnées et de partager leur méthode pour que d'autres puissent la répliquer.
Ce que doit inclure votre première version
- Un échantillon documenté de chaînes et une période définie
- Des transcriptions complètes stockées en JSON brut avec métadonnées
- La source des sous-titres enregistrée pour chaque vidéo (manuels, automatiques ou IA)
- Export en CSV ou texte pour R, Python, NVivo ou ATLAS.ti
- Un script de collecte réexécutable pour la réplication
Comment le construire, étape par étape
- 01
Définir l'échantillon
Listez les chaînes et la période étudiées, et consignez vos critères d'inclusion pour la section méthodologie.
- 02
Obtenir les listes de vidéos
Appelez /channels/resolve pour chaque chaîne et filtrez les résultats par date de publication.
- 03
Collecter les transcriptions
Envoyez les identifiants de vidéos à /batch et stockez la réponse JSON complète, y compris la langue et la source des sous-titres de chaque transcription.
- 04
Préparer l'analyse
Exportez les transcriptions en texte ou CSV avec identifiant de vidéo, chaîne, date et horodatages, puis analysez-les par modélisation thématique, fréquences de mots-clés ou codage qualitatif.
Code de démarrage
Cette idée repose sur le modèle « Recette 3 : charger une playlist en masse dans une base de connaissances ». Remplacez par vos propres chaînes, prompts et stockage.
import requests
API = "https://www.youtubetranscript.dev/api/v2"
HEADERS = {"Authorization": "Bearer yt_sk_live_YOUR_KEY"}
playlist = requests.post(f"{API}/playlists/resolve", headers=HEADERS,
json={"playlist_url": "https://www.youtube.com/playlist?list=PLAYLIST_ID",
"limit": 100}).json()
ids = [v["video_id"] for v in playlist["items"]]
batch = requests.post(f"{API}/batch", headers=HEADERS, json={
"video_ids": ids,
"format": {"timestamp": True, "paragraphs": True},
}).json()
# Large batches run async: poll GET /batch/{batch_id} until status is "completed"
for r in batch.get("results", []):
if r["status"] == "completed":
for p in r["data"]["transcript"].get("paragraphs") or []:
store(video_id=r["video_id"], start=p["start"], text=p["text"]) # your vector DBPourquoi ça vaut la peine de le construire
Pour les chercheurs, le bénéfice est un jeu de données reproductible pour une fraction du coût et du temps d'une transcription manuelle. Des équipes créent aussi des jeux de données payants ou des services d'analyse pour les sociétés de veille médias et les think tanks.
Erreurs à éviter
- Mélanger sous-titres automatiques et humains sans le noter : enregistrez la source, car la précision diffère.
- Ne pas sauvegarder les réponses brutes : conservez le JSON d'origine pour pouvoir relancer votre analyse.
- Ignorer l'avis éthique et les conditions de la plateforme : vérifiez les exigences de votre établissement et les conditions de YouTube avant de publier un jeu de données.
Questions sur cette idée
Peut-on utiliser les transcriptions YouTube pour la recherche universitaire ?
De nombreux chercheurs le font. Vérifiez les exigences éthiques de votre établissement, les conditions de YouTube et le droit d'auteur, surtout avant de partager publiquement un jeu de données.
Les sous-titres automatiques de YouTube sont-ils fiables ?
Leur qualité varie selon le son, les accents et le sujet. L'API indique si chaque transcription provient de sous-titres manuels, de sous-titres automatiques ou de la reconnaissance vocale IA, pour que vous puissiez en tenir compte.
Combien de vidéos peut-on collecter en une fois ?
Une seule requête par lot accepte jusqu'à 3 000 identifiants de vidéos avec l'offre Business. Les études plus larges peuvent lancer plusieurs lots.