Ma méthode à copier-coller pour créer un chatbot de recherche dans des vidéos
Ou comment j'ai créé El Professor.
Il y a quelques jours j’ai créé El Professor, Un assistant qui répond à toutes les questions sur WordPress en envoyant des liens de tutoriels vidéo sur YouTube au timing précis qui répond à la question.
Ça permet d’avoir rapidement la réponse à ce que l’on cherche à faire. Il y a plein de sujets où la vidéo est supérieure au texte, notamment pour tout ce qui est tutoriel.
Par contre, souvent, se taper toute une vidéo tutoriel pour un seul passage de 20 secondes qui nous intéresse est insupportable.
Je ne sais pas toi, mais ça m’arrive souvent. Je fonce sur un nouvel outil, et seulement quand je suis bloqué je vais regarder des tutos.
Se goinfrer d’informations inutiles me donne des migraines.
C’est pour ça que j’ai créé El Professor. C’est une preuve de concept pour la recherche dans les vidéos.
Le gros use case business que je vois est pour la formation par vidéo. C’est donner à l’utilisateur la possibilité de rechercher un point précis de la formation. Ce qui n’est pas possible à l’heure actuelle.
Dans les formations vidéo, il y a 2 problèmes :
Peu d’étudiants vont jusqu’au bout.
Peu d’étudiants exécutent ce qu’il y a dans la formation.
Le chatbot aide ceux qui auraient décroché à trouver exactement ce dont ils ont besoin. J’ai personnellement décroché d’une formation pourtant payée chère parce qu’elle couvre trop de sujets et que je n’ai pas envie de me taper 40 heures de vidéos pour trouver ce dont j’ai besoin maintenant.
Avec un chatbot de ce type, la formation m’aurait été utile.
Je vais donc te montrer comment j’ai réalisé El Professor pour pouvoir rechercher dans des vidéos de différentes langues.
Let’s go.
Étape 1 : Collecter les transcripts des vidéos youtube.
Toute la recherche est basée sur les transcripts des vidéos YouTube. C’est en recherchant dans ces transcripts que je vais pouvoir matcher le contenu précis des vidéos YouTube avec le timing précis où ça arrive.
Dans un premier temps, j’ai tapé “WordPress tutorial playlist” dans YouTube pour n’avoir dans la recherche que des playlists. On ne va pas sélectionner les vidéos une par une.
J’ai listé les URLs des 10 premières playlists YouTube et je les ai envoyées dans un logiciel peu connu, particulièrement moche mais incroyablement efficace pour le scraping.
Il est gratuit et s’appelle JDownloader. Il peut télécharger en masse des vidéos YouTube, de nombreux types de fichiers et quelque chose qui nous intéresse particulièrement ici : les fichiers de sous-titres automatiques YouTube.
Téléchargez et installez-moi ça.
Au moment où tu vas coller le lien de la playlist, il faudra préciser que c’est une playlist.
Puis ensuite tu pourras décocher tous les fichiers qui ne sont pas les sous-titres :
Colle les liens de toutes les playlists que tu pourras trouver. Prends un le plus que tu peux pour couvrir un maximum de sujets.
Étape 2 : Mapper les noms des vidéos aux urls
JDownloader est très bien mais il a un défaut : il ne permet pas de récupérer les URLs de chaque vidéo des playlists. Nous allons en avoir besoin pour renvoyer l’utilisateur à la bonne vidéo.
J’ai utilisé un tool en ligne de chez NimTools, qui permet de collecter tout ça : “YouTube Playlist Video Link Extractor”.
Le but de cette étape est de créer un fichier de mapping noms / urls des vidéos youtube. Voici ce qu’il faut faire pour chaque playlist :
Sélectionner tout le tableau donné par l’outil
Copier-coller ça dans un fichier texte
Retirer l’auteur de la chaine sur chaque ligne
Pour des raisons techniques que je n’ai pas envie d’expliquer, il est très difficile avec du code de séparer le nom de la chaîne du titre de la vidéo. Donc je trouve ça plus simple de l’enlever partout (en un clic avec la fonction remplacer de votre éditeur de texte).
Faites ça pour toutes les playlists et dans le même fichier que vous sauvegarderez dans le même dossier qui contient le dossier des sous-titres.
Étape 3 : Agréger et traduire les fichiers de sous-titre.
Dans un premier temps, nous allons agréger tous les fichiers de sous-titres en un seul, puis redécouper le texte par tranches d’une minute.
J’ai créé un script python avec ChatGPT pour faire ça. Il est à mettre dans le dossier qui contient le dossier des sous-titres (mets-les tous dans le même dossier). Si tu ne sais pas exécuter un script Python, demande à ChatGPT en lui donnant ton système d’exploitation.
Tu auras 3 variables à modifier :
srt_folder = 'tuto-wordpress' <- nom du dossier de sous-titre
video_info_file = 'tuto-video-wordpress.txt' <- fichier de mapping qui liste les liens des vidéos youtube
Il est probable que des noms de vidéos ne soient pas trouvés. Les noms diffèrent entre ce que sort NimTools et le nom réel. J’ai corrigé pas mal de choses automatiquement, mais il restera des erreurs. Mon script actuel ne garde que les sous-titres français et anglais.
Si tu comprends le langage Python, tu peux améliorer la prise en compte de certains titres et le nombre de langages pris en compte ici :
srt_file.replace(' (français_ASR)', '').replace('.srt', '').replace(';', ':').replace('¦', '|').replace(' (anglais_ASR)', '').replace('¿', '?')
Mais sinon, ne touche à rien, ça gardera la majorité du contenu, ça suffira pour ton cas d’usage.
Si dans les playlists que tu as choisies il y a des vidéos anglaises, alors il y a une dernière étape de traduction ; sinon, la recherche ne fonctionnera pas bien.
Utilise ce script qui traduira automatiquement le fichier. il faudra juste ajouter ta clé API OpenAI au script. Chez moi, ça a pris 10 heures pour traduire les 10 Mo de texte. Laisse ton PC travailler la nuit, le lendemain ça sera prêt.
Étape 4 : Copier-coller le template de chatbot voiceflow
La dernière étape est vraiment la plus simple : il suffit de se créer un compte Voiceflow et d’importer le template ci-dessous.
Et finalement ajouter ton fichier de transcript.
Pour afficher le chat en fullscreen dans une page web, il te suffira d’utiliser ce script à insérer dans le code d’une page vierge.
Et voilà, ton professeur personnel est prêt.
À bientôt,
Paul.