Fonctionnalités
Ce que fait RANDM
Un pipeline complet, de l'import des médias à la publication YouTube, sans intervention manuelle.
Ingestion et Médias
Import, validation et stockage des sources vidéo et audio.
- →Import de vidéos via interface web (drag & drop) ou CLI
- →Import de pistes audio via interface web ou CLI
- →Import automatisé via yt-dlp (YouTube, Vimeo, etc.)
- →Validation technique via FFprobe (codec, durée, résolution, bitrate)
- →Formats vidéo : MP4, MKV, MOV, AVI, WebM
- →Formats audio : MP3, WAV, FLAC, AAC, OGG
- →Suivi des statuts : pending, processing, ready, error
- →Métadonnées techniques extraites automatiquement
Détection de scènes
Découpage automatique des vidéos en scènes exploitables.
- →Détection de scènes par analyse de différences de frames (FFmpeg)
- →Seuil de détection configurable par vidéo
- →Extraction des timecodes start/end précis pour chaque scène
- →Génération automatique de thumbnails par scène
- →Filtres de durée min/max pour écarter les scènes inutilisables
- →Traitement asynchrone en arrière-plan
- →Inspection et curation manuelle des scènes dans l'interface
Analyse (audio + IA)
Scoring intelligent de chaque scène pour une sélection pertinente.
- →Analyse audio des pistes : BPM, énergie, danceability (Essentia)
- →Détection du point de départ optimal (drop, intro) par piste
- →Analyse visuelle des scènes par modèle de vision IA
- →Classification des scènes (action, dialogue, paysage, etc.)
- →Score de dynamisme calculé par scène
- →Scores utilisés pour pondérer la sélection à la génération
- →Traitement asynchrone via Symfony Messenger
Curation
Enrichissement des métadonnées depuis des sources tierces et curation manuelle.
- →Enrichissement TMDB : titre, année, genre, synopsis, poster, note
- →Enrichissement Spotify : artiste, album, popularité, genres musicaux
- →Métadonnées YouTube récupérées via yt-dlp à l'import
- →Inclusion / exclusion manuelle de scènes via l'interface
- →Tags personnalisés par scène et par média
- →Filtres de recherche et de tri dans l'interface web
Génération
Assemblage automatique des trailers selon des paramètres configurables.
- →Mode beat-sync : découpe calée sur les temps forts de l'audio
- →Sélection pondérée par scores d'analyse (énergie, dynamisme)
- →Paramètres configurables : durée cible, nombre de scènes, audio
- →Ordering configurable : aléatoire, chronologique, par score
- →Concaténation et rendu final via FFmpeg avec filtres vidéo/audio
- →Suivi en temps réel du statut de génération
- →Prévisualisation du trailer dans l'interface avant diffusion
- →Traitement asynchrone via Symfony Messenger
Diffusion
Publication YouTube automatisée depuis l'interface.
- →Upload sur YouTube via Data API v3
- →Titre et description générés depuis les métadonnées des scènes
- →Visibilité configurable : public, non répertorié, privé
- →Suivi du statut d'upload et récupération de l'URL YouTube
- →Upload déclenchable depuis l'interface ou via CLI
Interface web & CLI
Deux modes d'interaction complets pour gérer l'ensemble du pipeline.
Interface web
- →Dashboard avec statistiques en temps réel
- →Gestion des vidéos, audios, scènes et trailers
- →Formulaire de génération de trailer configurable
- →Lecteurs dédiés par niveau : public, membre, admin
- →Édition des timecodes de scène (startAt / endAt) en interface
- →Accès par niveaux : PUBLIC / USER / ADMIN / SUPER_ADMIN
- →Système de demande d'accès avec validation manuelle
- →Interface responsive, mobile-friendly
CLI (Symfony Console)
- →Toutes les actions disponibles en ligne de commande
- →Import batch de médias depuis le système de fichiers
- →Déclenchement manuel de chaque étape du pipeline
- →Adapté aux scripts d'automatisation et aux cron jobs
- →Output structuré avec progression et statuts