Découverte de tendances à vidéos : notre IA marketing
8 min de lectureMohammad Shaker

Découverte de tendances à vidéos : notre IA marketing

Alphazed a créé un pipeline IA pour les vidéos éducatives arabes, automate les scripts, images, voix-off, publiés sur YouTube.

Engineering

Réponse rapide

Alphazed a créé un pipeline IA pour les vidéos éducatives arabes, automate les scripts, images, voix-off, publiés sur YouTube.

De la découverte de tendances à la vidéo publiée : à l'intérieur de notre moteur de marketing AI

Alphazed a construit un pipeline de marketing AI entièrement automatisé qui découvre les sujets d'éducation en arabe tendance sur YouTube, les évalue pour leur pertinence, génère des scripts vidéo en arabe, crée des images avec DALL-E, synthétise des voix off avec ElevenLabs, compose des vidéos avec FFmpeg, effectue des vérifications de conformité à la sécurité pour enfants et publie sur YouTube — tout cela avec une étape d'approbation humaine via Slack avant que quoi que ce soit ne soit mis en ligne.

Le pipeline en 13 étapes

Étape 1 : Découvrir les tendances
  └─ YouTubeAPI : Récupérer les vidéos tendance dans la catégorie éducation en arabe
     Requêtes de recherche : "تعليم", "أطفال", "تعلم", "عربي"
     Extraire : titre, vues, vélocité (vues par jour), commentaires, engagement des abonnés

Étape 2 : Évaluer les tendances
  └─ TrendScorer : Formule pondérée
     Score = (vues × 0.35) + (vélocité × 0.30) + (adéquation_avec_le_sujet × 0.20) + (région × 0.10) + (sécurité × 0.05)
     Seuil : Seulement les tendances avec un score >75 continuent

Étape 3 : Idéer
  └─ ContentIdeator : Générer un concept vidéo
     Entrée : Sujet tendance (ex. "تحفيز الأطفال على تعلم العربية")
     Sortie : Concept de vidéo, âge cible, objectif d'apprentissage

Étape 4 : Génération de script
  └─ GPT-4o : Générer un script vidéo en arabe
     Prompt : "Créer un script de courte vidéo YouTube de 2 minutes sur [sujet] pour des enfants de [âge] en arabe"
     Sortie : Script scène par scène avec narration

Étape 5 : Variantes d'introduction
  └─ HookGenerator : Créer 3 introductions différentes
     Variante 1 : Ouverture basée sur une histoire
     Variante 2 : Ouverture basée sur une question
     Variante 3 : Ouverture basée sur un défi
     Plus tard, tester A/B quelle introduction a le CTR le plus élevé

Étape 6 : Storyboard
  └─ StoryboardGenerator : Créer une séquence visuelle
     Entrée : Script
     Sortie : Découpage plan par plan (20-30 plans pour vidéo de 2 minutes)

Étape 7 : Génération d'images
  └─ DALL-E : Générer des visuels pour chaque plan
     Prompt : "Enfant apprenant la lettre arabe ب dans une salle de classe colorée"
     Sortie : 20-30 images, style assorti

Étape 8 : Synthèse de voix off
  └─ ElevenLabs : Générer une narration en arabe
     Voix : Voix féminine, adaptée aux enfants, articulation claire
     Langue : Arabe (dialecte saoudien pour un attrait large)
     Sortie : Audio MP3, marqueurs de discours pour référence de synchronisation labiale

Étape 9 : Composition vidéo
  └─ FFmpeg : Assembler la vidéo
     Entrée : Images (étape 7) + audio (étape 8) + musique de fond
     Sortie : Vidéo MP4, 1080p, optimisée pour YouTube Shorts

Étape 10 : Vérification de conformité
  └─ KidsSafetyChecker : Scan LLM pour contenu inapproprié
     Vérification : Pas de violence, pas de langage inapproprié, pas de propriété intellectuelle tierce
     Sortie : Pass/Fail + notes

Étape 11 : Validation par Slack
  └─ SlackBot : Publier l'aperçu vidéo + métadonnées
     Équipe revoit : miniature, titre, description, transcription
     Options d'approbation : ✓ Publier | 🔄 Réviser | ✗ Rejeter

Étape 12 : Publication
  └─ YouTubeAPI : Télécharger sur la chaîne Alphazed
     Titre, description, tags, miniature
     Visibilité : Publique

Étape 13 : Synchronisation d'analytique
  └─ YouTubeAnalytics : Suivre la performance
     Métriques : Vues, CTR, durée moyenne de visionnage, partages
     Rétroaction : Utiliser les métriques pour améliorer les futurs scripts

Algorithme d'évaluation des tendances (Étape 2)

La formule

def score_trend(trend_data):
    """
    trend_data = {
        'views': 500000,
        'days_since_upload': 7,
        'topic': 'تعليم الأطفال العربية',
        'language': 'ar',
        'age_group': '5-12',
        'video_category': 'education'
    }
    """
    
    # Composant 1 : Popularité brute (vues)
    popularity_score = min(trend_data['views'] / 1_000_000, 1.0) * 100  # Limité à 100
    # Maximum : 1M vues = 100 points
    
    # Composant 2 : Vélocité (taux de croissance)
    velocity = trend_data['views'] / trend_data['days_since_upload']
    velocity_score = min(velocity / 100_000, 1.0) * 100  # Limité à 100
    # 100k vues/jour = 100 points
    
    # Composant 3 : Adéquation avec le sujet
    relevant_keywords = ['عربية', 'قرآن', 'أطفال', 'تعليم', 'لغة']
    keyword_matches = sum(1 for kw in relevant_keywords if kw in trend_data['topic'])
    topic_fit_score = (keyword_matches / len(relevant_keywords)) * 100
    
    # Composant 4 : Pertinence régionale
    # Les vidéos tendance au MENA, Asie du Sud, Malaisie ont un score plus élevé
    region_score = get_region_weight(trend_data.get('region', 'unknown')) * 100
    
    # Composant 5 : Sécurité (vérification rapide par LLM)
    safety_score = 100 if is_kid_safe(trend_data['title']) else 0
    
    # Somme pondérée
    final_score = (
        popularity_score * 0.35 +
        velocity_score * 0.30 +
        topic_fit_score * 0.20 +
        region_score * 0.10 +
        safety_score * 0.05
    )
    
    return {
        'overall_score': final_score,
        'pass_threshold': final_score >= 75,
        'breakdown': {
            'popularity': popularity_score,
            'velocity': velocity_score,
            'topic_fit': topic_fit_score,
            'region': region_score,
            'safety': safety_score
        }
    }

Exemple : Évaluation d'une vidéo tendance

Tendance : "Comment enseigner les lettres arabes aux enfants à la maison"
Métriques :
  - Vues : 500,000
  - Jours : 7
  - Mots clés : Contient "enseigner", "enfants", "arabe"
  - Région : États-Unis + Canada
  - Sécurité : Propre

Évaluation :
  - Popularité : 50 (500k/1M limité)
  - Vélocité : 71 (500k vues / 7 jours = ~71k/jour)
  - Adéquation avec le sujet : 67 (3 des 5 mots clés correspondent)
  - Région : 60 (diaspora des États-Unis)
  - Sécurité : 100 (propre)
  
Final : (50 × 0.35) + (71 × 0.30) + (67 × 0.20) + (60 × 0.10) + (100 × 0.05)
      = 17.5 + 21.3 + 13.4 + 6 + 5
      = 63.2 → ÉCHEC (sous le seuil de 75)

Exemple de notation plus élevée

Tendance : "تعليم القرآن للأطفال - طرق فعالة"
Métriques :
  - Vues : 2,000,000 (viral)
  - Jours : 3 (croissance rapide)
  - Mots clés : "قرآن", "أطفال", "تعليم" (tous correspondent)
  - Région : MENA + Asie du Sud
  - Sécurité : Propre

Évaluation :
  - Popularité : 100 (limité)
  - Vélocité : 100 (2M/3 jours = 666k/jour, limité)
  - Adéquation avec le sujet : 100 (3 sur 3 mots clés)
  - Région : 90 (MENA + diaspora)
  - Sécurité : 100
  
Final : (100 × 0.35) + (100 × 0.30) + (100 × 0.20) + (90 × 0.10) + (100 × 0.05)
      = 35 + 30 + 20 + 9 + 5
      = 99 → PASSER ! (ajustement excellent)

Humain dans la boucle : Approbation obligatoire

Avant que n'importe quelle vidéo soit publiée, elle passe à Slack pour une révision par l'équipe :

Notification Slack

🎥 [Pipeline] Prêt pour révision : Vidéo #47

Titre : "كيف تعلم ابنك حروف العربية بسهولة"
Score du sujet : 89/100
Vues estimées (modèle ML) : 85,000-120,000

[Aperçu vidéo] [Voir transcription] [Voir analyse]

Statut de conformité : ✅ Passe
  - Pas de violence : ✓
  - Approprié pour l'âge : ✓
  - Pas de violations de la propriété intellectuelle : ✓

Actions : ✓ Publier | 🔄 Réviser | ✗ Rejeter

Portes spéciales

  • Contenu du Coran : Révision académique supplémentaire
  • Nouvelles tendances : Révision manuelle bonus
  • Tendances à grande vélocité : Priorité accrue du pipeline

Architecture Ports & Adapters

Le pipeline est conçu pour échanger les fournisseurs sans toucher à la logique métier :

# src/services/content_generation/interfaces.py
class TextGeneratorInterface:
    def generate_script(self, topic: str, age_group: str) -> str:
        pass

class OpenAIScriptGenerator(TextGeneratorInterface):
    def generate_script(self, topic: str, age_group: str) -> str:
        # Utiliser l'API OpenAI
        pass

class ClaudeScriptGenerator(TextGeneratorInterface):
    def generate_script(self, topic: str, age_group: str) -> str:
        # Utiliser l'API Anthropic
        pass

# Au moment de l'exécution, injecter le bon fournisseur
script_generator = ClaudeScriptGenerator()  # Facile à échanger
script = script_generator.generate_script('تعليم العربية', '5-7')

Avantage : Si OpenAI tombe en panne, passez à Claude avec un changement de configuration.

Résultats

Volume

  • Entrée : 50-100 sujets tendance par semaine
  • Taux de passage du seuil : ~20% (15-20 tendances passent l'évaluation)
  • Publié : ~3-4 vidéos par semaine
  • Sortie annuelle : 150-200 vidéos

Performance (Données réelles)

  • Vues moyennes par vidéo : 12,000-45,000
  • CTR moyen : 8-12% (industrie : 2-5%)
  • Temps moyen de visionnage : 65-85% de la longueur de la vidéo (industrie : 40-50%)
  • Conversion (vues → installations d'applications) : 3-5% (industrie : 0.5-1%)

Coût

  • Génération AI par vidéo : $3-5 (GPT, DALL-E, ElevenLabs)
  • Révision humaine : 15 min × $25/heure = $6.25
  • Hébergement YouTube : Gratuit
  • Total par vidéo : ~$10
  • Coût par installation : ~$2-3 (calculé à partir de la conversion 3-5%)

FAQ

Q: Que faire si un script généré est inexact sur l'arabe ? R: L'étape d'approbation humaine détecte cela. Si le script comporte des erreurs grammaticales ou une insensibilité culturelle, le réviseur sélectionne "Réviser" et fournit des notes. Le pipeline régénère avec des retours.

Q: Cela viole-t-il les politiques d'automatisation de YouTube ? R: Non. Nous avons une révision humaine avant la publication (portail Slack obligatoire). YouTube autorise le contenu assisté par AI tant qu'il n'est pas entièrement automatisé sans surveillance.

Q: Les vidéos générées par AI peuvent-elles bien se classer dans les recherches ? R: Oui, si elles sont de haute qualité (ce qui est notre cas). L'algorithme ne pénalise pas la génération par AI — il récompense le temps de visionnage, le CTR et l'engagement. Nos vidéos surpassent la moyenne.

Articles connexes