Le problème résolu
Les coachs et formateurs répondent chaque jour aux mêmes questions en commentaires et en messages privés, alors qu'ils les ont déjà traitées en vidéo. Leur audience ne trouve pas la bonne vidéo, et le créateur ne peut pas répondre personnellement à tout le monde. Un chatbot de chaîne répond avec la voix du créateur et ramène les spectateurs vers le contenu original.
Ce que doit inclure votre première version
- Des réponses tirées uniquement des vidéos du créateur
- Des citations qui renvoient à la vidéo et à l'horodatage exacts
- Mises à jour automatiques à chaque nouvelle vidéo publiée
- Une offre gratuite avec limite de questions et une offre payante pour les membres
- Un widget intégrable sur le site ou la communauté du créateur
Comment le construire, étape par étape
- 01
Ingérer la chaîne
Résolvez la chaîne ou une playlist sélectionnée et envoyez tous les identifiants de vidéos à /batch avec format.paragraphs et format.timestamp.
- 02
Découper et vectoriser
Stockez chaque paragraphe avec le titre de la vidéo, son URL et l'heure de début, et créez les embeddings dans une base vectorielle.
- 03
Récupérer et répondre
Pour chaque question, récupérez les paragraphes les plus pertinents et demandez à un LLM de répondre uniquement à partir de ceux-ci, en citant la vidéo et l'horodatage.
- 04
Rester à jour
Vérifiez régulièrement les nouvelles vidéos de la chaîne et n'ajoutez que les nouvelles transcriptions à l'index.
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 DBComment ça rapporte
Facturez au créateur un abonnement mensuel pour le chatbot hébergé, ou partagez les revenus d'une offre payante qu'il vend à son audience. Les communautés d'abonnés et les vendeurs de formations peuvent l'inclure comme avantage premium.
Erreurs à éviter
- Laisser le modèle répondre avec ses connaissances générales : limitez-le aux passages récupérés pour qu'il parle comme le créateur.
- Utiliser des blocs de taille fixe qui coupent les phrases en deux : le regroupement par paragraphes préserve le contexte.
- Lancer sans l'accord du créateur : construisez-le avec lui, puisque c'est sa voix et son contenu.
Questions sur cette idée
Peut-on entraîner un chatbot sur une chaîne YouTube ?
Oui. Plutôt que d'entraîner un modèle, on récupère les passages de transcription pertinents et un LLM répond à partir d'eux. C'est ce qu'on appelle la génération augmentée par récupération (RAG).
Comment faire citer ses sources au chatbot ?
Stockez l'URL de la vidéo et l'heure de début avec chaque bloc de transcription, et demandez au modèle de les inclure dans chaque réponse.
Combien coûte l'indexation d'une chaîne complète ?
Les vidéos avec sous-titres natifs coûtent 1 crédit chacune. Une chaîne de 300 vidéos coûte environ 300 crédits à indexer une première fois, puis seulement les nouvelles vidéos.