Cómo construir un bot de carga de YouTube usando Google Apps Script

Siempre que escuche la palabra 'Bot', probablemente se imagina un robot como el que se muestra en las películas. También son bots, bastante inteligentes. Pero aquí nos referimos a un tipo diferente de bot.

Podemos definir un bot como un script que puede usarse para automatizar ciertas tareas que son tediosas o difíciles para los humanos. Hay buenos y malos bots, y hay una línea muy fina entre ellos.

Antes de comenzar, déjame decirte una cosa: este tutorial solo analiza la parte que implica subir videos a YouTube. Usaremos un video de muestra aquí.

Si crea un bot que sube videos con regularidad (como Webdriver Torso, del que hablaremos más al final del artículo), necesita una fuente para el video.

Además, una advertencia : asegúrese de verificar los derechos de autor de todos los videos que cargue. La versión del bot que creé por primera vez subió videos de otros a YouTube, y no creerás lo que sucedió. Recibí una serie de reclamos de derechos de autor y advertencias y, finalmente, mi canal fue eliminado.

Así que en este tutorial te mostraré cómo se hace. Pero si desea implementarlo, primero busque una buena fuente de videos que pueda cargar sin problemas de derechos de autor.

¿Por qué Google Apps Script?

Google Apps Script es una plataforma de secuencias de comandos desarrollada por Google para ejecutar aplicaciones ligeras. Su sintaxis se basa en JavaScript. Si ya conoce Javascript, lo encontrará realmente fácil.

La razón por la que usamos Google Apps Script es porque facilita mucho la creación de este bot. Tiene soporte incorporado para la mayoría de los productos de Google como Gmail, Hojas de cálculo, Formularios y Youtube. Y es gratis.

Descripción general de Google Apps Script

Google Apps Script tiene un editor y un sistema de archivos en línea. No necesita ninguna implementación, solo tiene que guardar su código y se está ejecutando.

Si abre el editor de Apps Script, se verá así:

Como cualquier otro editor de texto, tiene una barra lateral con una lista de archivos, un menú y espacio para escribir código. Los archivos de código tienen una extensión .gs (probablemente para el script de Google). Y lo más importante, todo el código debe estar dentro de alguna función; el código anónimo no se ejecutará.

Hay dos funciones especiales doPost()y doGet(). Como sugiere su nombre, se utilizan para manejar solicitudes POST y GET, respectivamente. No los usaremos aquí, pero si desea crear este bot como una API a la que se pueda llamar mediante solicitudes HTTP, sería útil.

Empezando

A diferencia de otros tutoriales, no te diré que clones un repositorio de GitHub. Primero, porque quiero que aprendas y codifiques conmigo. En segundo lugar, el código no es tan grande y debe comprender cómo funciona.

Esta es la función que sube un video dado a un canal de 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) } }

Habilitando la API de YouTube

Antes de ejecutar esta función, debe habilitar YouTube Data API V3. Debe estar familiarizado con lo que es una API, así que permítame intentar explicarlo con un ejemplo.

Google Maps es un gran servicio. Tiene muchas herramientas increíbles. Suponga que desea utilizar esas funciones en su aplicación, digamos para crear una tarjeta de invitación digital inteligente con un mapa incrustado.

Normalmente, para hacer esto necesitas el código fuente de Maps. Pero ese código no es de código abierto. Y sería una tontería darle a alguien el código fuente solo porque quiere usar alguna característica. Ahí es donde una API resulta útil.

Las API o interfaces de programación de aplicaciones son una forma en que los desarrolladores permiten que otros utilicen las funciones de su aplicación sin revelar el código fuente.

En este caso, la API de YouTube permite a los desarrolladores utilizar las funciones de YouTube en sus aplicaciones o controlar algún canal de YouTube después de la autenticación. Si tiene una idea de lo que es una API, continuemos.

Para habilitar la API de datos de YouTube, vaya a Recursos> Servicios avanzados de Google . Verá algo como el siguiente. Es posible que le pida que acepte los términos de Google Cloud antes de continuar si aún no tiene un proyecto configurado. Si se le solicita, acepte los términos.

Desplácese hasta el final. Verá YouTube Data API V3. Por lo general, debe crear un proyecto de Google Cloud para usarlo. Pero App Script crea un proyecto por sí mismo, por lo que no necesita crear algo por separado. Habilítelo y cierre la ventana emergente. Ahora estás listo para irte.

Ejecutando la función

Debe pegar el código que se proporciona a continuación (igual que el anterior) en el editor de texto y guardarlo desde el menú Archivo> Guardar .

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) } }

Después de guardarlo, debe navegar hasta el menú Ejecutar> Ejecutar función> Cargar . Se verá algo como esto:

Al hacer clic en el botón de carga, recibirá una ventana emergente como esta:

Aquí es donde se hace evidente la utilidad de App Script. Aquí, puede darle permiso para subir videos a su cuenta. Le mostrará advertencias de que la aplicación no está verificada, pero no se preocupe, ese es un paso de seguridad que toma Google para evitar aplicaciones maliciosas.

Pero aquí, usted es el desarrollador, por lo que puede ignorar la advertencia y otorgar permiso desde el botón Avanzado en la parte inferior izquierda. Le pedirá dos permisos, como se muestra:

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.