Romain Canu

ClipTube

Temps de lecture : 7 min

Présentation et objectifs du projet

Ce projet personnel consiste à générer automatiquement tous les soirs une compilation vidéo des clips Twitch de la catégorie CASINO les plus vus, puis à la mettre en ligne sur YouTube.

Les objectifs du projet sont multiples :

  • Mettre en pratique mes connaissances Python

  • Apprendre et commencer à prendre en main Sélénium sur un projet concret. Sélénium est un framework de test informatique développé en Java mais qui offre des passerelles pour s'exécuter avec différents langages comme Python et PHP. Il permet d'interagir avec différents navigateurs web tels que Google Chrome grâce au chromedriver ou Mozilla Firefox avec Gecko de même que le ferait un utilisateur de l'application.

  • S'autoformer sur le service web IFTTT, permettant de créer des chaînes d'instruction simples (applets) qui sont exécutées dès qu’un changement intervient (exemple : si une nouvelle vidéo est disponible sur YouTube, elle est alors automatiquement partagée sur les différents réseaux sociaux)

  • Avoir une grande visibilité sur YouTube de manière à avoir une affiliation avec un ou plusieurs casinos en ligne (Partenariat / Sponsoring)

Les étapes

J'ai commencé par développer un script en Python qui vient télécharger depuis la plateforme de streaming Twitch les clips (extraits d'un flux en direct) de la catégorie CASINO les plus vus du jour.

Mon objectif étant de proposer des vidéos d'environ 10 minutes, j'ai ajouté dans le script un traitement qui consiste à venir coller bout à bout les clips téléchargés jusqu'à atteindre la durée cible.

Une fois cette étape validée, j'ai continué le développement du script Python en me concentrant cette fois-ci sur la génération d'une miniature qui est un aperçu du contenu de la vidéo, puis sur la génération de toutes les informations nécessaires à la mise en ligne sur YouTube, c'est-à-dire :

  • Le titre qui sera celui du clip Twitch le plus vu

  • La description avec le crédit des personnes présentes dans la vidéo

  • Les tags qui correspondent à un ensemble de mots-clés qui se rapporte au casino (exemples : casino en ligne, blackjack, roulette, slots…)

J'ai ensuite implémenté la mise en ligne de la vidéo sur YouTube tous les jours à 21h00 (avec les informations précédentes complétées automatiquement) en utilisant le framework Sélénium depuis le script Python. Il est à noter que je n’utilise pas l’API officielle de YouTube pour la mise en ligne des vidéos, car, contrairement à Sélénium, l'API est limitée en fonctionnalités ainsi qu’en nombre de vidéos pouvant être mises en ligne par mois. J’utilise donc Sélénium pour cette mise en ligne qui est également plus simple en termes de connexion avec le compte YouTube, car contrairement à l'API officielle de YouTube, il n'y a pas besoin ici de créer différentes clés API ainsi que d’autoriser les adresses IP des ordinateurs qui vont se connecter au compte pour la mise en ligne de la vidéo.

Enfin, je me suis appuyé sur le service web IFTTT pour publier la miniature de la nouvelle vidéo ainsi que le lien de visionnage sur des comptes Twitter et Instagram dédiés.

Pour terminer et afin de contrôler le bon déroulement du script, j’ai programmé des notifications que je reçois automatiquement sur mon téléphone à chaque étape de mise en ligne pour vérifier que tout s’exécute correctement (voir l'image ci-dessous).

Les acteurs

J'ai réalisé le projet seul, en m’appuyant sur les ressources disponibles sur internet (openclassrooms) ainsi que sur mes connaissances acquises en autodidacte, à l’école et en entreprise.

Les résultats

J’ai mis moins d’une semaine, en travaillant chaque soir, pour développer le projet ClipTube. Après quelques mois de mise en ligne, j’ai eu la grande satisfaction d’obtenir des résultats très encourageants sur le nombre de visionnages et d’abonnés pour une chaîne YouTube entièrement automatisée qui ne nécessite aucune intervention de ma part.

Néanmoins, j'ai constaté un problème après plusieurs semaines de fonctionnement : YouTube change de temps en temps le nom des classes des éléments (bouton, champ texte …), ce qui bloque parfois Sélénium. Pour assurer la continuité du service, j’ai donc dû créer un pipeline qui teste tous les jours, une heure avant la mise en ligne de la vidéo, si les noms des classes ont changé. Si c’est le cas, je dois alors regarder sur le site YouTube pour avoir la liste des modifications et mettre à jour en conséquence les variables dans mon code.

Les lendemains du projet

À l’heure actuelle, la seule chose qui n’est pas automatisée est la réponse aux différents commentaires que je reçois sur les vidéos. Néanmoins, pour trier les commentaires de façon automatique, j’utilise aujourd’hui Bodyguard (solution de modération basée sur de l’intelligence artificielle pour protéger en temps réel les individus, familles et entreprises des contenus toxiques en ligne) qui détecte et supprime les commentaires haineux, les publicités, les arnaques, les liens et les spams. Une des améliorations possibles serait de mettre en place une intelligence artificielle pouvant répondre automatiquement aux commentaires en détectant les tonalités émotionnelles et linguistiques (comme l’API d'IBM : Watson Tone Analyzer)

Mon regard critique

À travers la réalisation de ce projet, j’ai pu acquérir les compétences que je recherchais sur Sélénium.

J’ai également réussi à reproduire tous les travaux (de tournage, montage, mise en ligne, partage de vidéo sur les réseaux) que font les Youtubeurs, mais de façon entièrement automatisée.