Collecte des données
Extraction continue des métadonnées, commentaires et audio via yt-dlp
Pipeline de mise à jour continue
Comment ça fonctionne
Le scanner parcourt régulièrement les chaînes pour détecter les nouvelles vidéos publiées. Les métadonnées de chaque vidéo (vues, likes, abonnés) sont enregistrées à chaque scan, produisant un historique longitudinal.
Pour chaque vidéo détectée, l'audio est téléchargé au format WAV et les commentaires sont extraits via yt-dlp. La rotation automatique de cookies gère l'authentification et les restrictions d'accès.
L'ensemble des données est stocké dans une base PostgreSQL normalisée : métadonnées des vidéos, commentaires, transcriptions, segments par locuteur et annotations NLP. L'API REST (PostgREST) permet l'accès programmatique aux données.
Cliquez sur chaque carte pour voir les détails
Les métadonnées (nom de chaîne, nombre de vues, commentaires, abonnés, etc.) et les fichiers audio des vidéos sont extraits à l'aide de la bibliothèque yt-dlp. Le pipeline scanne les chaînes régulièrement pour détecter les nouvelles vidéos, extraire les commentaires et mettre à jour les métadonnées. Chaque vidéo détectée est automatiquement téléchargée et intégrée au corpus.
Le lot initial de plus de 15 To de données audio a été traité via l'Alliance de recherche numérique du Canada. L'infrastructure de traitement a depuis été transférée vers un réseau de machines locales des collaborateurs, permettant un traitement continu et une réactivité immédiate. Les nouvelles vidéos sont traitées en quelques minutes après leur détection.
Outils utilisés
Schéma de la base de données
Six tables dans un schéma relationnel normalisé, des métadonnées brutes aux annotations NLP au niveau de la phrase.
| # | Table | Description | Échelle |
|---|---|---|---|
| 1 | videos | Une ligne par vidéo : ID, métadonnées de la chaîne, vues, likes, commentaires, tags, durée, date de mise en ligne, orientation politique, pays, genre. | 23,658 rows |
| 2 | comments | Tous les commentaires YouTube avec infos auteur, likes, horodatages, structure de réponses imbriquées et colonne d'analyse JSONB. | 7.6M+ rows |
| 3 | video_transcripts | Transcriptions diarisées complètes avec étiquettes de locuteurs et versions nettoyées du texte. | 20,999 rows |
| 4 | transcription_speakers | Segments individuels de locuteurs issus de la diarisation, ordonnés par position dans chaque vidéo. | 601,348 rows |
| 5 | comments_processed | Commentaires tokenisés au niveau de la phrase avec entités NER (PER, ORG, LOC) et colonnes de prédiction ML. | 9.8M+ rows |
| 6 | transcription_speakers_processed | Segments de locuteurs au niveau de la phrase avec extraction NER et suite complète d'annotations. | 5.3M+ rows |
Observatoire en continu
La base est mise à jour en continu : scan des chaînes, transcription et annotation des vidéos, extraction de commentaires, mise à jour des métadonnées (vues, likes, abonnés). Chaque scan produit un historique longitudinal exploitable via l'API.