Le problème résolu
Journalistes locaux et habitants veulent savoir ce que les élus ont dit sur une modification du plan d'urbanisme, une ligne budgétaire ou une politique scolaire. Le trouver impose de parcourir des heures de vidéo sur de nombreuses séances. Les ordres du jour et procès-verbaux reflètent rarement l'intégralité des débats, et beaucoup de rédactions locales n'ont plus de journaliste présent à chaque séance.
Ce que doit inclure votre première version
- Ingestion automatique de chaque séance depuis la chaîne de l'institution
- Identification des intervenants pour rechercher par élu
- Recherche par sujet et mot-clé sur des années de séances
- Alertes quand un sujet ou une adresse est abordé
- Liens partageables vers le moment exact de l'enregistrement
Comment le construire, étape par étape
- 01
Collecter les vidéos des séances
Résolvez la chaîne du conseil ou la playlist des séances et continuez à vérifier les nouvelles vidéos.
- 02
Transcrire avec les intervenants
Utilisez l'ASR avec speakerLabels activé, et speakerId avec les noms connus, pour attribuer chaque passage à un intervenant. Les séances sont longues : utilisez l'endpoint d'estimation pour prévoir le coût.
- 03
Indexer par séance et intervenant
Stockez les paragraphes avec la date de la séance, l'intervenant et l'horodatage, et ajoutez une recherche plein texte et sémantique.
- 04
Ajouter des alertes
Permettez aux utilisateurs d'enregistrer des recherches, comme un nom de rue ou un sujet politique, et envoyez-leur un e-mail quand il revient dans une nouvelle séance.
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
Médias locaux, associations militantes et cabinets immobiliers ou de conseil en politiques publiques paieront pour des alertes et des outils de recherche. Les projets civiques vivent souvent de subventions ou proposent une archive publique gratuite avec des alertes payantes.
Erreurs à éviter
- S'appuyer sur les sous-titres automatiques pour de longues séances à nombreux intervenants : l'identification des intervenants rend l'archive bien plus utile.
- Sous-estimer la durée : les séances durent des heures, estimez les crédits ASR avant de transcrire un historique.
- Publier sans contexte : liez chaque citation à l'enregistrement pour que les lecteurs puissent l'écouter eux-mêmes.
Questions sur cette idée
Peut-on transcrire les conseils municipaux diffusés sur YouTube ?
Oui. Utilisez les sous-titres quand ils existent, ou la reconnaissance vocale IA avec identification des intervenants pour des transcriptions plus lisibles des longues séances.
Comment identifier qui parle ?
Activez la séparation des intervenants (speaker labels), puis l'identification des intervenants avec une liste de noms ou de fonctions connus pour les nommer.
Combien coûte la transcription d'une séance de trois heures ?
La reconnaissance vocale IA coûte environ 40 crédits par heure, hors options. Utilisez l'endpoint d'estimation pour connaître le coût exact avant de commencer.