📋 Vue d'ensemble
Ce script automatise la mise à jour des descriptions de vos 5 dernières vidéos YouTube en utilisant l'intelligence artificielle de ChatGPT.
🎯 Objectif principal
Générer des descriptions optimisées, engageantes et SEO-friendly pour améliorer la visibilité de vos vidéos.
🤖
IA Integration
Utilise OpenAI GPT-3.5 pour générer des descriptions intelligentes
📺
YouTube API
Connexion directe à l'API YouTube pour récupérer et mettre à jour les vidéos
🔐
Authentification sécurisée avec OAuth2 et gestion automatique des tokens
🏗️ Architecture Technique
Script Node.js
→
YouTube API
→
OpenAI API
→
Mise à jour
🔧 Dépendances principales
const axios = require('axios'); // Requêtes HTTP
const { google } = require('googleapis'); // API Google/YouTube
require('dotenv').config(); // Variables d'environnement
🔑 Variables d'environnement requises
- GOOGLE_CLIENT_ID - ID client Google OAuth2
- GOOGLE_CLIENT_SECRET - Secret client Google
- YOUTUBE_REFRESH_TOKEN - Token de rafraîchissement YouTube
- OPENAI_API_KEY - Clé API OpenAI
⚙️ Fonctions Principales
1. ensureValidToken()
Assure la validité du token d'accès YouTube et le rafraîchit si nécessaire.
async function ensureValidToken() {
const access = await oauth2Client.getAccessToken();
if (!access?.token) {
throw new Error('Impossible d\'obtenir un access token.');
}
return access.token;
}
2. generateDescription()
Génère une description optimisée avec OpenAI GPT-3.5.
async function generateDescription(video) {
const prompt = `Génère une description YouTube optimisée...`;
const response = await axios.post('https://api.openai.com/v1/chat/completions', {
model: 'gpt-3.5-turbo',
messages: [{ role: 'user', content: prompt }],
max_tokens: 500,
temperature: 0.7
});
return response.data.choices[0].message.content.trim();
}
3. updateLastFiveVideosDescriptions()
Fonction principale qui orchestre tout le processus de mise à jour.
🔄 Flux d'Exécution
Étape 1: Authentification
Vérification et rafraîchissement du token YouTube OAuth2.
Étape 2: Récupération des vidéos
Récupération des 5 dernières vidéos via youtube.search.list() puis détails complets via youtube.videos.list().
Étape 3: Traitement par vidéo
Pour chaque vidéo:
- Génération de la nouvelle description avec OpenAI
- Mise à jour via
youtube.videos.update()
- Pause de 3 secondes (respect des limites API)
Étape 4: Rapport final
Affichage des statistiques: succès, erreurs, et conseils.
🎮 Démonstration Interactive
Simulez le fonctionnement du script étape par étape :
Cliquez sur les boutons ci-dessus pour simuler l'exécution du script...
⚠️ Gestion des Erreurs
Erreurs courantes
- Token manquant: Variables d'environnement non configurées
- Quotas API: Limites YouTube ou OpenAI dépassées
- Permissions: Droits insuffisants sur la chaîne YouTube
- Réseau: Problèmes de connectivité
try {
// Opération risquée
} catch (error) {
console.error('❌ Erreur:', error.message);
// Gestion appropriée de l'erreur
}
🚀 Optimisations et Bonnes Pratiques
⏱️ Respect des limites API
Pause de 3 secondes entre chaque mise à jour pour éviter le rate limiting.
// Pause entre chaque mise à jour
await new Promise(resolve => setTimeout(resolve, 3000));
🔒 Sécurité
- Variables d'environnement pour les clés sensibles
- Validation des tokens avant utilisation
- Gestion gracieuse des erreurs
📊 Monitoring
Compteurs de succès/erreurs et rapport détaillé final.