Kuidas luua YouTube'i üleslaadija boti Google Apps Scripti abil

Alati, kui kuulete sõna "Bot", kujutate tõenäoliselt ette robotit, nagu nad filmides näitavad. Ka nemad on robotid, pigem targad. Kuid siin peame silmas teistsugust botti.

Me võime määratleda roboti kui skripti, mida saab kasutada teatud inimeste jaoks tüütute või raskete ülesannete automatiseerimiseks. On häid ja halbu roboteid, nende vahel on väga peen joon.

Enne alustamist lubage mul öelda üks asi. Selles õpetuses käsitletakse ainult seda osa, mis hõlmab videote üleslaadimist YouTube'i. Kasutame siin näidisvideot.

Kui loote roboti, mis laadib videoid regulaarselt üles (nt Webdriver Torso, millest räägime lähemalt artikli lõpus), vajate video jaoks allikat.

Samuti hoiatus : kontrollige kindlasti kõigi üleslaaditud videote autoriõigusi. Esmakordselt loodud roboti versioon laadis YouTube'i üles teiste videod - ja te ei usu, mis juhtus. Sain rea autoriõiguste rikkumisi ja streike ning minu kanal kustutati lõpuks.

Nii et selles õpetuses näitan teile, kuidas see on tehtud. Aga kui soovite seda rakendada, leidke kõigepealt hea videote allikas, mille saate üles laadida ilma autoriõigustega seotud probleemideta.

Miks just Google Apps Script?

Google Apps Script on skriptimisplatvorm, mille Google on välja töötanud kergete rakenduste käitamiseks. Selle süntaks põhineb JavaScriptil. Kui sa juba tead Javascripti, siis on see väga lihtne.

Põhjus, miks me kasutame Google Apps Scripti, on see, et see muudab selle roboti loomise väga lihtsaks. Sellel on sisseehitatud tugi enamikule Google'i toodetest, nagu Gmail, Arvutustabelid, Vormid ja Youtube. Ja see on tasuta.

Google Apps Scripti ülevaade

Google Apps Scriptil on veebiredaktor ja failisüsteem. See ei vaja mingit juurutamist, peate lihtsalt oma koodi salvestama ja see töötab.

Kui avate rakenduste skripti redigeerija, näeb see välja umbes selline:

Nagu igal teiselgi tekstiredaktoril, on sellel ka failiriba, menüü ja ruumi koodi kirjutamiseks külgriba. Koodifailidel on laiend .gs (tõenäoliselt Google'i skripti jaoks). Ja mis kõige tähtsam, kogu kood peab olema mõne funktsiooni sees - anonüümset koodi ei käivitata.

On kaks erifunktsiooni doPost()ja doGet(). Nagu nimigi ütleb, kasutatakse neid vastavalt POST- ja GET-päringute töötlemiseks. Me ei kasuta neid siin, kuid kui soovite luua selle roboti nagu API, mida saab kutsuda HTTP-päringute abil, oleks see kasulik.

Alustamine

Erinevalt teistest õpetustest ei ütle ma teile, et klooniksite GitHubi hoidlat. Esiteks sellepärast, et ma tahan, et sa õpiksid ja koodiksid minuga koos. Teiseks, kood pole nii suur ja peate mõistma, kuidas see töötab.

See on funktsioon, mis laadib antud video YouTube'i kanalile üles:

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

YouTube'i API lubamine

Enne selle funktsiooni käivitamist peate lubama YouTube Data API V3. Te peate olema tuttav sellega, mis on API, nii et lubage mul proovida seda näitega selgitada.

Google Maps on suurepärane teenus. Sellel on palju hämmastavaid tööriistu. Oletame, et soovite neid funktsioone oma rakenduses kasutada, oletame näiteks sisseehitatud kaardiga nutika digitaalse kutsekaardi ehitamiseks.

Tavaliselt vajate selleks Mapsi lähtekoodi. Kuid see kood pole avatud lähtekoodiga. Ja oleks rumal anda kellelegi lähtekood lihtsalt sellepärast, et ta soovib mõnda funktsiooni kasutada. Seal on API mugav.

API-d või rakenduste programmeerimisliidesed on arendajatele viis lubada teistel kasutada teie rakenduse funktsioone lähtekoodi avaldamata.

Sel juhul võimaldab YouTube'i API arendajatel oma rakendustes kasutada YouTube'i funktsioone või pärast autentimist mõnda YouTube'i kanalit juhtida. Kui teil on idee, mis on API, jätkame.

YouTube Data API lubamiseks minge ressurssidele> Täpsemad Google'i teenused . Näete midagi sellist nagu allpool. See võib paluda teil enne jätkamist nõustuda Google Cloudi tingimustega, kui teil pole projekti veel seadistatud. Kui küsitakse, nõustuge tingimustega.

Kerige alla. Näete YouTube Data API V3. Tavaliselt peate selle kasutamiseks looma Google'i pilveprojekti. Kuid rakenduse skript loob enda jaoks projekti, nii et teil pole vaja midagi eraldi luua. Lubage see ja sulgege hüpikaken. Nüüd on sul hea minna.

Funktsiooni käivitamine

Peate kleepima allpool toodud koodi (sama mis eespool) tekstiredaktorisse ja salvestama selle menüüst Fail> Salvesta .

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

Pärast selle salvestamist peate navigeerima menüüsse Run> Run> Run> Upload . See näeb välja umbes selline:

Nupul Üleslaadimine klõpsamisel kuvatakse selline hüpikaken:

Nüüd ilmneb siin rakenduse skripti kasulikkus. Siin saate anda talle loa videote üleslaadimiseks oma kontole. See näitab teile hoiatusi, et rakendust pole kinnitatud - kuid ärge muretsege, see on turvasamm, mille Google pahatahtlike rakenduste vältimiseks teeb.

Kuid siin olete teie arendaja, nii et võite hoiatust ignoreerida ja vasakus alanurgas asuvast nupust Täpsem luba anda. See küsib teilt kahte luba, nagu näidatud:

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

Võib-olla pole te sellest midagi kuulnud, kuid see bot (või võib-olla ka üliinimene) on suhteliselt lühikese aja jooksul oma youtube'i kanalile üles laadinud üle 70 000 video. Ja kuigi need on protseduuriliselt loodud videod, on see siiski väga lahe.

Need on selle kanali vaadatuimad videod:

Näete, et kõige rohkem vaatamisi on öösel Eiffeli tornil (mis on ebaseaduslik). On vandenõuteooriaid, mille kohaselt on see kanal testimise eesmärgil YouTube'i omanduses.

Mõlemal juhul ärge inspireerige - kui laadite üles nii palju videoid, peatab YouTube teid tõenäoliselt.

Kui leiate, et see on huvitav, võite seda artiklit rohkem teada saada.

Vastus minu eelmisele artiklile oli suurepärane - aitäh! Teie tagasiside motiveerib mind uusi asju kirjutama. Külastage ka minu Interneti-kodu theabbie.github.io.