Kad god čujete riječ "Bot", vjerojatno zamislite robota kakvog prikazuju u filmovima. I oni su botovi, prilično pametni. Ali ovdje mislimo na drugu vrstu bota.
Bota možemo definirati kao skriptu koja se može koristiti za automatizaciju određenih zadataka koji su ili dosadni ili teški za ljude. Postoje dobri i loši botovi i vrlo je tanka linija između njih.
Prije nego što započnemo, reći ću vam jedno: Ovaj vodič govori samo o dijelu koji uključuje prijenos videozapisa na YouTube. Ovdje ćemo koristiti primjer videozapisa.
Ako stvorite bota koji redovito prenosi videozapis (poput Webdriver Torso, o čemu ćemo više govoriti na kraju članka), potreban vam je izvor za video.
Također, upozorenje : provjerite jeste li provjerili autorska prava svih videozapisa koje ste prenijeli. Verzija bota koju sam prvi put kreirala prenijela je tuđe videozapise na YouTube - i nećete vjerovati što se dogodilo. Dobio sam niz tužbi zbog kršenja autorskih prava i opomena i moj je kanal na kraju izbrisan.
Dakle, u ovom uputstvu ću vam pokazati kako se to radi. Ali ako ga želite implementirati, prvo pronađite dobar izvor videozapisa koje možete prenijeti bez problema s autorskim pravima.
Zašto Google Apps Script?
Google Apps Script skripta je platforma koju je razvio Google za pokretanje laganih aplikacija. Sintaksa se temelji na JavaScript-u. Ako već znate Javascript, bit će vam vrlo jednostavno.
Razlog zbog kojeg koristimo Google Apps Script je taj što olakšava izgradnju ovog bota. Ima ugrađenu podršku za većinu Googleovih proizvoda kao što su Gmail, Tablice, Obrasci i Youtube. I to besplatno.
Pregled skripte za Google Apps
Google Apps Script ima mrežni uređivač i datotečni sustav. Ne treba nikakva implementacija, samo morate spremiti svoj kôd i on je pokrenut.
Ako otvorite uređivač Apps Script, izgledat će otprilike ovako:

Kao i bilo koji drugi uređivač teksta, ima bočnu traku s popisom datoteka, izbornikom i prostorom za pisanje koda. Datoteke koda imaju .gs nastavak (vjerojatno za Google skriptu). I najvažnije, sav kôd mora biti unutar neke funkcije - anonimni kôd se neće izvršiti.
Postoje dvije posebne funkcije, doPost()
i doGet()
. Kao što im samo ime govori, koriste se za obradu POST i GET zahtjeva. Nećemo ih ovdje koristiti, ali ako želite stvoriti ovog bota poput API-ja koji se može pozvati pomoću HTTP zahtjeva, bilo bi korisno.
Početak rada
Za razliku od ostalih vodiča, neću vam reći da klonirate GitHub spremište. Prvo, jer želim da zajedno sa mnom učite i kodirate. Drugo, kôd nije toliko velik i morate razumjeti kako to radi.
Ovo je funkcija koja prenosi zadani videozapis na YouTube kanal:
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) } }
Omogućavanje YouTube API-ja
Prije pokretanja ove funkcije morate omogućiti YouTube Data API V3. Sigurno vam je poznato što je API, pa dopustite mi da to pokušam objasniti na primjeru.
Google Maps je izvrsna usluga. Ima puno nevjerojatnih alata. Pretpostavimo da želite koristiti te značajke u svojoj aplikaciji, recimo za izradu pametne digitalne pozivnice s ugrađenom mapom.
Za to vam je obično potreban izvorni kod programa Maps. Ali taj kod nije open-source. I bilo bi glupo nekome dati izvorni kod samo zato što želi koristiti neku značajku. Tu API dobro dolazi.
API-ji ili sučelja za programiranje aplikacija način su za koji programeri drugima omogućuju upotrebu značajki vaše aplikacije bez otkrivanja izvornog koda.
U ovom slučaju, YouTubeov API omogućava programerima da koriste YouTubeove značajke u svojim aplikacijama ili da kontroliraju neki YouTube kanal nakon provjere autentičnosti. Ako imate ideju što je API, nastavimo.
Da biste omogućili YouTube Data API, idite na Resursi> Napredne Google usluge . Vidjet ćete nešto poput dolje. Možda nećete zatražiti da prihvatite uvjete Google Cloud-a prije nego što nastavite, ako već niste postavili projekt. Ako se zatraži, prihvatite uvjete.

Pomaknite se na dno. Vidjet ćete YouTube Data API V3. Obično morate stvoriti Google Cloud Project da biste ga koristili. Ali App Script stvara projekt za sebe, tako da ne morate stvoriti nešto zasebno. Omogućite ga i zatvorite skočni prozor. Sad ste spremni.
Pokretanje funkcije
Morate zalijepiti dolje navedeni kod (isti kao i gore) u uređivač teksta i spremiti ga iz izbornika Datoteka> Spremi .
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) } }
After saving it, you have to navigate to the Run > Run function > Upload menu. It will look something like this:

On clicking the upload button, you will receive a popup like this:

Now this is where the usefulness of App Script becomes apparent. Here, you can give it permission to upload videos to your account. It will show you warnings that the app is not verified – but don't worry, that's a security step Google takes to prevent malicious apps.

But here, you are the developer, so you can ignore the warning and give permission from the Advanced button on the bottom left. It will ask you for two permissions, as shown:

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.