Comment créer un bot YouTube Uploader à l'aide du script Google Apps

Chaque fois que vous entendez le mot «Bot», vous imaginez probablement un robot comme ils le montrent dans les films. Ce sont aussi des robots, plutôt intelligents. Mais nous parlons ici d'un autre type de bot.

Nous pouvons définir un bot comme un script qui peut être utilisé pour automatiser certaines tâches qui sont soit fastidieuses, soit difficiles pour les humains. Il y a de bons et de mauvais bots, et il y a une ligne très fine entre eux.

Avant de commencer, laissez-moi vous dire une chose, ce tutoriel ne traite que de la partie qui consiste à télécharger des vidéos sur YouTube. Nous utiliserons un exemple de vidéo ici.

Si vous créez un bot qui télécharge régulièrement des vidéos (comme Webdriver Torso, dont nous parlerons plus en détail à la fin de l'article), vous avez besoin d'une source pour la vidéo.

Aussi, un avertissement : assurez-vous de vérifier les droits d'auteur de toutes les vidéos que vous mettez en ligne. La version du robot que j'ai créée pour la première fois a mis en ligne les vidéos des autres sur YouTube - et vous ne croirez pas ce qui s'est passé. J'ai reçu une série de réclamations et d'avertissements pour atteinte aux droits d'auteur et ma chaîne a finalement été supprimée.

Dans ce tutoriel, je vais donc vous montrer comment procéder. Mais si vous souhaitez l'implémenter, trouvez d'abord une bonne source de vidéos que vous pouvez télécharger sans problèmes de droits d'auteur.

Pourquoi Google Apps Script?

Google Apps Script est une plate-forme de script développée par google pour exécuter des applications légères. Sa syntaxe est basée sur JavaScript. Si vous connaissez déjà Javascript, vous le trouverez très facile.

La raison pour laquelle nous utilisons Google Apps Script est que cela facilite grandement la création de ce bot. Il prend en charge la plupart des produits Google tels que Gmail, Sheets, Forms et Youtube. Et c'est gratuit.

Présentation de Google Apps Script

Google Apps Script dispose d'un éditeur et d'un système de fichiers en ligne. Il n'a besoin d'aucun déploiement, il vous suffit d'enregistrer votre code et il est en cours d'exécution.

Si vous ouvrez l'éditeur de scripts d'applications, cela ressemblera à ceci:

Comme tout autre éditeur de texte, il dispose d'une barre latérale avec une liste de fichiers, un menu et un espace pour écrire du code. Les fichiers de code ont une extension .gs (probablement pour le script Google). Et le plus important, tout le code doit être à l'intérieur d'une fonction - le code anonyme ne sera pas exécuté.

Il existe deux fonctions spéciales, doPost()et doGet(). Comme leur nom l'indique, ils sont utilisés pour gérer les requêtes POST et GET, respectivement. Nous ne les utiliserons pas ici, mais si vous voulez créer ce bot comme une API qui peut être appelée à l'aide de requêtes HTTP, ce serait utile.

Commencer

Contrairement à d'autres tutoriels, je ne vous dirai pas de cloner un dépôt GitHub. Premièrement, parce que je veux que vous appreniez et codiez avec moi. Deuxièmement, le code n'est pas si gros et vous devez comprendre comment cela fonctionne.

C'est la fonction qui télécharge une vidéo donnée sur une chaîne YouTube:

function upload(url, title, description, topics) { try { var video = UrlFetchApp.fetch(url); YouTube.Videos.insert({ snippet: { title: title, description: description, tags: topics }, status: { privacyStatus: "public", }, }, "snippet,status", video); return ContentService.createTextOutput("done") } catch (err) { return ContentService.createTextOutput(err.message) } }

Activer l'API YouTube

Avant d'exécuter cette fonction, vous devez activer YouTube Data API V3. Vous devez être familier avec ce qu'est une API, alors laissez-moi essayer de l'expliquer avec un exemple.

Google Maps est un excellent service. Il a beaucoup d'outils incroyables. Supposons que vous souhaitiez utiliser ces fonctionnalités dans votre application, disons pour créer une carte d'invitation numérique intelligente avec une carte intégrée.

Normalement, pour ce faire, vous avez besoin du code source de Maps. Mais ce code n'est pas open-source. Et il serait insensé de donner du code source à quelqu'un simplement parce qu'il veut utiliser une fonctionnalité. C'est là qu'une API est utile.

Les API ou interfaces de programmation d'application sont un moyen pour les développeurs d'autoriser d'autres personnes à utiliser les fonctionnalités de votre application sans divulguer le code source.

Dans ce cas, l'API de YouTube permet aux développeurs d'utiliser les fonctionnalités de YouTube dans leurs applications ou de contrôler une chaîne YouTube après l'authentification. Si vous avez une idée de ce qu'est une API, continuons.

Pour activer l'API de données YouTube, accédez à Ressources> Services Google avancés . Vous verrez quelque chose comme ci-dessous. Il peut vous demander d'accepter les conditions de Google Cloud avant de continuer si vous n'avez pas de projet déjà configuré. Si demandé, acceptez les conditions.

Faites défiler vers le bas. Vous verrez l'API de données YouTube V3. En règle générale, vous devez créer un projet Google Cloud pour l'utiliser. Mais App Script crée un projet pour lui-même, vous n'avez donc pas besoin de créer quelque chose de séparé. Activez-le et fermez la fenêtre contextuelle. Maintenant, vous êtes prêt à partir.

Exécuter la fonction

Vous devez coller le code ci-dessous (comme ci-dessus) dans l'éditeur de texte et l'enregistrer à partir du menu Fichier> Enregistrer .

function upload(url, title, description, topics) { try { var video = UrlFetchApp.fetch(url); YouTube.Videos.insert({ snippet: { title: title, description: description, tags: topics }, status: { privacyStatus: "public", }, }, "snippet,status", video); return ContentService.createTextOutput("done") } catch (err) { return ContentService.createTextOutput(err.message) } }

Après l'avoir enregistré, vous devez accéder au menu Exécuter> Fonction Exécuter> Télécharger . Cela ressemblera à quelque chose comme ceci:

En cliquant sur le bouton de téléchargement, vous recevrez une fenêtre contextuelle comme celle-ci:

Maintenant, c'est là que l'utilité d'App Script devient évidente. Ici, vous pouvez lui donner l'autorisation de télécharger des vidéos sur votre compte. Il vous montrera des avertissements que l'application n'est pas vérifiée - mais ne vous inquiétez pas, c'est une mesure de sécurité que Google prend pour empêcher les applications malveillantes.

Mais ici, vous êtes le développeur, vous pouvez donc ignorer l'avertissement et donner l'autorisation à partir du bouton Avancé en bas à gauche. Il vous demandera deux autorisations, comme indiqué:

Permission to manage your YouTube account is a serious permission. Though it's safe in this particular instance, never give this permission to any app you don't trust. It will give the app complete access to your YouTube account.

And this isn't just the case for YouTube. You should be extra careful before you allow sensitive scopes on any platform, like Twitter, Facebook, GitHub and other social sign-in methods.

After you give that permission, the function will be executed. But nothing will happen as we didn't specify what should be uploaded.

Here, you need to give values to the URL, title, description, and tags variables. Let us take a sample video for our use (remember those copyright issues?).

This is the modified upload() function:

function upload() { try { var video = UrlFetchApp.fetch("//www.w3schools.com/html/mov_bbb.mp4"); YouTube.Videos.insert({ snippet: { title: "Big Buck Funny", description: "This Is The Description", tags: ["funny"] }, status: { privacyStatus: "public", }, }, "snippet,status", video); return ContentService.createTextOutput("done") } catch (err) { return ContentService.createTextOutput(err.message) } }

You can Save it and Run the function again. You can see that we changed the URL to a video URL, the title and description were set, and the tags are also set as an array. You can also set privacyStatus to private for testing.

Let's see the results:

As I told you at the start of the tutorial, copyright infringement is a big deal. The above video was removed by YouTube within minutes of uploading.

So, find a good video source first. If you want to generate videos programatically, there are libraries like ffmpeg, but let's not discuss that here. The aim of this article was to create a bot and we did.

Bot that regularly uploads videos

Suppose you find a source for videos and want your bot to regularly upload videos. Google Apps Script has an inbuilt Cron service which will execute your function at regular intervals, like daily, or once a week. You can create a trigger from the dashboard:

You will get an option to add a trigger on the bottom right. The options will look something like this:

You can set the function to be called, the frequency, and other options. Thus we have successfully created a YouTube Uploader Bot.

This was just one use of Google Apps script – you can use it for other tasks like:

  • Modifying Google Forms
  • Creating extensions for Google Sheets
  • Creating Blogger posts programatically

You may try other projects too, There is a lot you can do with it.

Webdriver Torso

You may not have heard about it, but this bot (or maybe a superhuman) has uploaded more than 70,000 videos on its youtube channel over a relatively short period of time. And although they are procedurally generated videos, it's still very cool.

These are the most viewed videos on this channel:

You can see that the Eiffel Tower at night video (which is illegal) has the most views. There are conspiracy theories that this channel is owned by YouTube for testing purposes.

Either way, don't get inspired – if you upload this many videos, YouTube will most probably suspend you.

If you found this interesting, you may visit this article to know more.

The response to my previous article was great – thank you! Your feedback motivates me to write new stuff. Also, do visit my internet home theabbie.github.io.