Hogyan készítsünk YouTube feltöltő botot a Google Apps Script használatával

Amikor meghallja a „Bot” szót, valószínűleg elképzel egy robotot, amelyet a filmekben mutatnak. Ők is botok, inkább okosak. De itt egy másfajta botra hivatkozunk.

Meghatározhatunk egy botot olyan szkriptként, amely felhasználható bizonyos feladatok automatizálására, amelyek unalmasak vagy nehézek az ember számára. Vannak jó és rossz botok, és nagyon finom vonal van közöttük.

Mielőtt elkezdenénk, hadd mondjak el egy dolgot: Ez az oktatóanyag csak azt a részt tárgyalja, amely videók feltöltését jelenti a YouTube-ra. Itt használunk egy minta videót.

Ha létrehoz egy botot, amely rendszeresen tölt fel videót (például a Webdriver Torso, amelyről a cikk végén még többet beszélünk), akkor a videó forrására van szükség.

Ezenkívül figyelmeztetés : mindenképpen ellenőrizze az összes feltöltött videó szerzői jogát. A bot első verziója, amelyet először készítettem, mások videóit töltötte fel a YouTube-ra - és nem hiszed el, hogy mi történt. Kaptam egy sor szerzői jogi követelést és sztrájkot, és csatornámat végül törölték.

Tehát ebben az oktatóanyagban megmutatom, hogyan történik. De ha meg akarod valósítani, akkor először találj egy jó videoforrást, amelyet szerzői jogi kérdések nélkül feltölthetsz.

Miért a Google Apps Script?

A Google Apps Script egy olyan szkriptplatform, amelyet a Google fejlesztett ki könnyű alkalmazások futtatására. Szintaxisa a JavaScript-en alapul. Ha már ismeri a Javascriptet, akkor nagyon egyszerű lesz.

A Google Apps Script használatának oka az, hogy nagyon megkönnyíti ennek a botnak a felépítését. Beépített támogatással rendelkezik a legtöbb Google-termékhez, például a Gmailhez, a Táblázatokhoz, az Űrlapokhoz és a Youtube-hoz. És ez ingyenes.

A Google Apps Script áttekintése

A Google Apps Script online szerkesztővel és fájlrendszerrel rendelkezik. Nem igényel telepítést, csak el kell mentenie a kódot, és fut.

Ha megnyitja az Apps Script szerkesztőt, az így néz ki:

Csakúgy, mint bármely más szövegszerkesztőben, itt is van egy oldalsáv a fájlok listájával, egy menü és egy hely a kód írására. A kódfájlok .gs kiterjesztéssel rendelkeznek (valószínűleg a Google script számára). És ami a legfontosabb, az összes kódnak tartalmaznia kell valamilyen funkciót - az anonim kód nem kerül végrehajtásra.

Két speciális funkció létezik, doPost()és doGet(). Ahogy a neve is sugallja, POST és GET kérések kezelésére használják őket. Nem fogjuk itt használni őket, de ha ezt a botot szeretné létrehozni, mint például egy API-t, amely HTTP kérések segítségével hívható meg, akkor hasznos lenne.

Elkezdeni

Más oktatóanyagokkal ellentétben nem mondom meg, hogy klónozzon egy GitHub-tárat. Először is, mert azt akarom, hogy tanulj és kódolj velem együtt. Másodszor, a kód nem olyan nagy, és meg kell értenie, hogyan működik.

Ez az a funkció, amely egy adott videót feltölt egy YouTube-csatornára:

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

A YouTube API engedélyezése

A funkció futtatása előtt engedélyeznie kell a YouTube Data API V3 verziót. Önnek ismernie kell az API-t, ezért hadd próbáljam ezt megmagyarázni egy példával.

A Google Maps nagyszerű szolgáltatás. Rengeteg csodálatos eszközzel rendelkezik. Tegyük fel, hogy használni szeretné ezeket a funkciókat az alkalmazásában, mondjuk intelligens digitális meghívók készítéséhez beágyazott térképpel.

Normál esetben ehhez a Maps forráskódjára van szükség. De ez a kód nem nyílt forráskódú. És ostobaság lenne forráskódot adni valakinek csak azért, mert valamilyen funkciót használni akar. Itt jön jól egy API.

Az API-k vagy az alkalmazásprogramozási interfészek lehetővé teszik a fejlesztők számára, hogy mások is használhassák az alkalmazás funkcióit a forráskód nyilvánosságra hozatala nélkül.

Ebben az esetben a YouTube API lehetővé teszi a fejlesztők számára, hogy alkalmazásaikban használják a YouTube funkcióit, vagy hitelesítést követően irányítsanak néhány YouTube-csatornát. Ha van ötlete arról, mi az API, folytassuk.

A YouTube Data API engedélyezéséhez keresse meg az Erőforrások> Speciális Google szolgáltatások lehetőséget . Az alábbiakhoz hasonlót fog látni. Megkérheti Önt, hogy fogadja el a Google Cloud feltételeit a folytatás előtt, ha még nincs beállítva projekt. Ha megkérik, fogadja el a feltételeket.

Görgessen az aljára. Megjelenik a YouTube Data API V3. A használatához általában létre kell hoznia egy Google Cloud Projektet. Az App Script azonban létrehoz egy projektet magának, így nem kell külön külön létrehoznia. Engedélyezze és zárja be a felugró ablakot. Most már jól megy.

A funkció futtatása

Be kell illesztenie az alább megadott kódot (ugyanaz, mint fent) a szövegszerkesztőbe, és mentse a Fájl> Mentés menüből.

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

Mentése után a Futtatás> Futtatás> Feltöltés menübe kell navigálnia . Valahogy így fog kinézni:

A feltöltés gombra kattintva egy ilyen felugró ablakot kap:

Most itt nyilvánvalóvá válik az App Script hasznossága. Itt engedélyt adhat neki, hogy videókat töltsön fel a fiókodba. Figyelmeztetéseket jelenít meg arról, hogy az alkalmazás nincs ellenőrizve - de ne aggódjon, ez egy biztonsági lépés, amelyet a Google megtesz a rosszindulatú alkalmazások megakadályozása érdekében.

De itt te vagy a fejlesztő, így figyelmen kívül hagyhatod a figyelmeztetést, és engedélyt adhatsz a bal alsó sarokban található Speciális gombra. Két engedélyt kér tőled, az ábra szerint:

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.