Configuration YouTube - Récupération Automatique des Vidéos
Ce guide explique comment configurer la récupération automatique des vidéos YouTube pour votre site Jekyll.
Vue d’ensemble
Le système récupère automatiquement les nouvelles vidéos de vos chaînes YouTube et les ajoute à votre page /youtube/. La mise à jour s’effectue quotidiennement via GitHub Actions.
Configuration requise
1. Clé API YouTube
Vous devez obtenir une clé API YouTube Data v3 :
- Allez sur Google Cloud Console
- Créez un nouveau projet ou sélectionnez un projet existant
- Activez l’API YouTube Data v3
- Créez des credentials (clé API)
- Copiez la clé API
2. Configuration GitHub Secrets
Ajoutez la clé API YouTube à vos secrets GitHub :
- Allez dans votre repository GitHub
- Settings → Secrets and variables → Actions
- Ajoutez un nouveau secret nommé
YOUTUBE_API_KEY - Collez votre clé API YouTube
3. Chaînes YouTube à surveiller
Le script surveille actuellement ces chaînes (configuré dans scripts/fetch_youtube_videos.rb) :
UCUVY-O2kPvU3mibvP3xdM7A→ndabene06
Pour ajouter d’autres chaînes :
- Ouvrez
scripts/fetch_youtube_videos.rb - Ajoutez l’ID de la chaîne dans le hash
@channels
Fichiers créés/modifiés
Nouveaux fichiers :
_data/youtube_videos.yml- Stockage des données vidéospages/youtube.md- Page d’affichage des vidéos_sass/youtube.scss- Styles CSS pour la pagescripts/fetch_youtube_videos.rb- Script de récupération.github/workflows/fetch-youtube-videos.yml- Workflow GitHub Actions
Fichiers modifiés :
_data/navigation.yml- Ajout du lien vers la page YouTube_sass/components.scss- Import du fichier CSS YouTube
Structure des données
Chaque vidéo est stockée avec ces informations :
- title: "Titre de la vidéo"
video_id: "VIDEO_ID"
url: "https://www.youtube.com/watch?v=VIDEO_ID"
thumbnail: "https://img.youtube.com/vi/VIDEO_ID/maxresdefault.jpg"
description: "Description de la vidéo"
published_at: "2025-01-15T10:00:00Z"
duration: "PT10M30S"
channel: "ndabene06"
category: "Technique"
Catégorisation automatique
Les vidéos sont automatiquement catégorisées selon leur contenu :
- PrestaShop & E-commerce : Contient “prestashop”, “e-commerce”, “boutique”
- PHP & Frameworks : Contient “php”, “symfony”, “laravel”
- IA & Automatisation : Contient “ai”, “intelligence artificielle”, “machine learning”
- Frontend & JavaScript : Contient “javascript”, “vue”, “react”, “frontend”
- DevOps & Infrastructure : Contient “docker”, “devops”, “déploiement”
- Technique : Catégorie par défaut
Utilisation manuelle
Pour exécuter le script manuellement :
# Avec une clé API dans les variables d'environnement
export YOUTUBE_API_KEY="votre_clé_api"
ruby scripts/fetch_youtube_videos.rb
Workflow GitHub Actions
Le workflow s’exécute :
- Automatiquement : Tous les jours à 2h du matin (UTC)
- Manuellement : Via l’onglet Actions de GitHub
Ce que fait le workflow :
- Récupère le code source
- Installe Ruby et les dépendances
- Exécute le script de récupération des vidéos
- Commit et push les changements si de nouvelles vidéos sont trouvées
Limites et quotas
API YouTube :
- 10,000 unités gratuites par jour
- Chaque requête de recherche coûte 100 unités
- Chaque requête de détails vidéo coûte 1 unité
Script :
- Limité à 50 vidéos maximum par chaîne
- Récupère seulement les vidéos (pas les shorts ou lives)
Dépannage
Le workflow échoue :
- Vérifiez que
YOUTUBE_API_KEYest défini dans les secrets GitHub - Vérifiez que l’API YouTube Data v3 est activée
- Consultez les logs du workflow
Aucune nouvelle vidéo :
- Vérifiez que l’ID de la chaîne YouTube est correct
- Les chaînes privées ne sont pas accessibles
- Les vidéos très récentes peuvent prendre du temps à apparaître
Erreur de quota API :
- Le quota quotidien est dépassé
- Attendez le lendemain ou demandez une augmentation de quota
Personnalisation
Modifier les catégories :
Éditez la méthode categorize_video dans scripts/fetch_youtube_videos.rb
Changer la fréquence :
Modifiez le cron dans .github/workflows/fetch-youtube-videos.yml
Modifier l’apparence :
Éditez _sass/youtube.scss et pages/youtube.md
Sécurité
- La clé API YouTube est stockée de manière sécurisée dans les secrets GitHub
- Aucune donnée sensible n’est exposée dans le code public
- Le script ne fait que des requêtes GET en lecture seule