Πώς να δημιουργήσετε ένα YouTube Bot Uploader χρησιμοποιώντας το Google Apps Script

Κάθε φορά που ακούτε τη λέξη «Bot» πιθανότατα φαντάζεστε ένα ρομπότ όπως εμφανίζεται στις ταινίες. Είναι επίσης ρομπότ, μάλλον έξυπνα. Αλλά αναφερόμαστε σε ένα διαφορετικό είδος bot εδώ.

Μπορούμε να ορίσουμε ένα bot ως σενάριο που μπορεί να χρησιμοποιηθεί για την αυτοματοποίηση ορισμένων εργασιών που είναι είτε κουραστικές είτε δύσκολες για τον άνθρωπο. Υπάρχουν καλά bots και bad bots, και υπάρχει μια πολύ λεπτή γραμμή μεταξύ τους.

Πριν ξεκινήσουμε, επιτρέψτε μου να σας πω ένα πράγμα. Αυτό το σεμινάριο συζητά μόνο το μέρος που περιλαμβάνει τη μεταφόρτωση βίντεο στο YouTube. Θα χρησιμοποιήσουμε ένα δείγμα βίντεο εδώ.

Εάν δημιουργήσετε ένα bot που ανεβάζει βίντεο τακτικά (όπως το Webdriver Torso, για το οποίο θα μιλήσουμε περισσότερο στο τέλος του άρθρου), χρειάζεστε μια πηγή για το βίντεο.

Επίσης, μια προειδοποίηση : βεβαιωθείτε ότι έχετε ελέγξει τα πνευματικά δικαιώματα όλων των βίντεο που ανεβάζετε. Η έκδοση του bot που δημιούργησα για πρώτη φορά ανέβασε βίντεο άλλων στο YouTube - και δεν θα πιστέψεις τι συνέβη. Έλαβα σειρά αξιώσεων πνευματικών δικαιωμάτων και προειδοποιήσεων και τελικά το κανάλι μου διαγράφηκε.

Έτσι σε αυτό το σεμινάριο θα σας δείξω πώς γίνεται. Αλλά αν θέλετε να το εφαρμόσετε, βρείτε πρώτα μια καλή πηγή βίντεο που μπορείτε να ανεβάσετε χωρίς ζητήματα πνευματικών δικαιωμάτων.

Γιατί το σενάριο των Εφαρμογών Google;

Το Google Apps Script είναι μια πλατφόρμα δέσμης ενεργειών που αναπτύχθηκε από την Google για την εκτέλεση ελαφρών εφαρμογών. Η σύνταξή του βασίζεται σε JavaScript. Εάν γνωρίζετε ήδη το Javascript θα το βρείτε πολύ εύκολο.

Ο λόγος που χρησιμοποιούμε το Σενάριο Εφαρμογών Google είναι επειδή καθιστά πολύ εύκολο να δημιουργήσουμε αυτό το bot. Έχει ενσωματωμένη υποστήριξη για τα περισσότερα προϊόντα Google όπως το Gmail, τα Φύλλα, τα Έντυπα και το Youtube. Και είναι δωρεάν.

Επισκόπηση του σεναρίου Google Apps

Το Σενάριο Εφαρμογών Google διαθέτει ένα πρόγραμμα επεξεργασίας και σύστημα αρχείων στο διαδίκτυο. Δεν χρειάζεται καμία ανάπτυξη, απλά πρέπει να αποθηκεύσετε τον κωδικό σας και εκτελείται.

Εάν ανοίξετε το πρόγραμμα επεξεργασίας σεναρίων εφαρμογών, θα μοιάζει με αυτό:

Όπως και κάθε άλλο πρόγραμμα επεξεργασίας κειμένου, έχει μια πλευρική γραμμή με λίστα αρχείων, ένα μενού και χώρο για τη σύνταξη κώδικα. Τα αρχεία κώδικα έχουν επέκταση .gs (πιθανώς για το σενάριο Google). Και το πιο σημαντικό, όλος ο κώδικας πρέπει να βρίσκεται μέσα σε κάποια λειτουργία - ο ανώνυμος κώδικας δεν θα εκτελεστεί.

Υπάρχουν δύο ειδικές λειτουργίες, doPost()και doGet(). Όπως υποδηλώνει το όνομα, χρησιμοποιούνται για τον χειρισμό αιτημάτων POST και GET, αντίστοιχα. Δεν θα τα χρησιμοποιούμε εδώ, αλλά αν θέλετε να δημιουργήσετε αυτό το bot σαν ένα API που μπορεί να κληθεί χρησιμοποιώντας αιτήματα HTTP, θα ήταν χρήσιμο.

Ξεκινώντας

Σε αντίθεση με άλλα μαθήματα, δεν θα σας πω να κλωνοποιήσετε ένα αποθετήριο GitHub. Πρώτον, γιατί θέλω να μάθετε και να κωδικοποιήσετε μαζί μου. Δεύτερον, ο κώδικας δεν είναι τόσο μεγάλος και πρέπει να καταλάβετε πώς λειτουργεί.

Αυτή είναι η λειτουργία που ανεβάζει ένα δεδομένο βίντεο σε ένα κανάλι 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) } }

Ενεργοποίηση του YouTube API

Προτού εκτελέσετε αυτήν τη λειτουργία, πρέπει να ενεργοποιήσετε το YouTube Data API V3. Πρέπει να είστε εξοικειωμένοι με το τι είναι ένα API, οπότε επιτρέψτε μου να το εξηγήσω με ένα παράδειγμα.

Οι Χάρτες Google είναι μια εξαιρετική υπηρεσία. Έχει πολλά καταπληκτικά εργαλεία. Ας υποθέσουμε ότι θέλετε να χρησιμοποιήσετε αυτές τις λειτουργίες στην εφαρμογή σας, ας πούμε για τη δημιουργία μιας έξυπνης ψηφιακής κάρτας πρόσκλησης με ενσωματωμένο χάρτη.

Κανονικά, για να το κάνετε αυτό χρειάζεστε τον πηγαίο κώδικα των Χαρτών. Αλλά αυτός ο κωδικός δεν είναι ανοιχτού κώδικα. Και θα ήταν ανόητο να δώσετε σε κάποιον πηγαίο κώδικα μόνο και μόνο επειδή θέλουν να χρησιμοποιήσουν κάποια λειτουργία. Εκεί είναι ένα πρακτικό API.

Τα API ή οι διεπαφές προγραμματισμού εφαρμογών, είναι ένας τρόπος για τους προγραμματιστές να επιτρέπουν σε άλλους να χρησιμοποιούν τις λειτουργίες της εφαρμογής σας χωρίς να αποκαλύπτουν τον πηγαίο κώδικα.

Σε αυτήν την περίπτωση, το API του YouTube επιτρέπει στους προγραμματιστές να χρησιμοποιούν τις λειτουργίες του YouTube στις εφαρμογές τους ή να ελέγχουν κάποιο κανάλι YouTube μετά τον έλεγχο ταυτότητας. Εάν έχετε μια ιδέα για το τι είναι ένα API, ας συνεχίσουμε.

Για να ενεργοποιήσετε το API δεδομένων YouTube, μεταβείτε στην ενότητα Πόροι> Σύνθετες υπηρεσίες Google . Θα δείτε κάτι σαν το παρακάτω. Μπορεί να σας ζητήσει να αποδεχτείτε τους όρους του Google Cloud πριν συνεχίσετε εάν δεν έχετε ήδη ρυθμίσει ένα έργο. Εάν σας ζητηθεί, αποδεχτείτε τους όρους.

Μετακινηθείτε προς τα κάτω. Θα δείτε το YouTube Data API V3. Συνήθως, πρέπει να δημιουργήσετε ένα Google Cloud Project για να το χρησιμοποιήσετε. Αλλά το App Script δημιουργεί ένα έργο για τον εαυτό του, οπότε δεν χρειάζεται να δημιουργήσετε κάτι ξεχωριστό. Ενεργοποιήστε το και κλείστε το αναδυόμενο παράθυρο. Τώρα είσαι καλός να πας.

Εκτέλεση της λειτουργίας

Πρέπει να επικολλήσετε τον παρακάτω κώδικα (όπως παραπάνω) στον επεξεργαστή κειμένου και να τον αποθηκεύσετε από το μενού Αρχείο> Αποθήκευση .

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

Αφού το αποθηκεύσετε, πρέπει να μεταβείτε στο μενού Εκτέλεση> Εκτέλεση> Μενού μεταφόρτωσης . Θα μοιάζει με αυτό:

Κάνοντας κλικ στο κουμπί μεταφόρτωσης, θα λάβετε ένα αναδυόμενο παράθυρο όπως αυτό:

Τώρα εδώ γίνεται εμφανής η χρησιμότητα του σεναρίου εφαρμογών. Εδώ, μπορείτε να του επιτρέψετε να ανεβάσετε βίντεο στο λογαριασμό σας. Θα σας δείξει προειδοποιήσεις ότι η εφαρμογή δεν έχει επαληθευτεί - αλλά μην ανησυχείτε, αυτό είναι ένα βήμα ασφαλείας που λαμβάνει η Google για να αποτρέψει κακόβουλες εφαρμογές.

Αλλά εδώ, είστε ο προγραμματιστής, οπότε μπορείτε να αγνοήσετε την προειδοποίηση και να δώσετε άδεια από το κουμπί για προχωρημένους κάτω αριστερά. Θα σας ζητήσει δύο δικαιώματα, όπως φαίνεται:

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

Μπορεί να μην έχετε ακούσει γι 'αυτό, αλλά αυτό το bot (ή ίσως ένας υπεράνθρωπος) έχει ανεβάσει περισσότερα από 70.000 βίντεο στο κανάλι σας στο YouTube για σχετικά σύντομο χρονικό διάστημα. Και παρόλο που είναι διαδικτυακά δημιουργημένα βίντεο, είναι ακόμα πολύ ωραίο.

Αυτά είναι τα βίντεο με τις περισσότερες προβολές σε αυτό το κανάλι:

Μπορείτε να δείτε ότι το βίντεο του Πύργου του Άιφελ τη νύχτα (το οποίο είναι παράνομο) έχει τις περισσότερες προβολές. Υπάρχουν θεωρίες συνωμοσίας ότι αυτό το κανάλι ανήκει στο YouTube για δοκιμαστικούς σκοπούς.

Σε κάθε περίπτωση, μην εμπνευστείτε - αν ανεβάσετε αυτά τα πολλά βίντεο, το YouTube πιθανότατα θα σας αναστείλει.

Εάν το βρήκατε ενδιαφέρον, μπορείτε να επισκεφτείτε αυτό το άρθρο για να μάθετε περισσότερα.

Η απάντηση στο προηγούμενο άρθρο μου ήταν καταπληκτική - ευχαριστώ! Τα σχόλιά σας με παρακινούν να γράψω νέα πράγματα. Επίσης, επισκεφθείτε το σπίτι μου στο Διαδίκτυο theabbie.github.io.