كيفية إنشاء روبوت لتحميل اليوتيوب باستخدام Google Apps Script

عندما تسمع كلمة "بوت" ربما تتخيل روبوتًا كما يظهر في الأفلام. إنهم روبوتات أيضًا ، بل أذكياء. لكننا نشير هنا إلى نوع مختلف من الروبوتات.

يمكننا تعريف الروبوت على أنه برنامج نصي يمكن استخدامه لأتمتة بعض المهام التي تكون إما مملة أو صعبة على البشر. هناك روبوتات جيدة وأخرى سيئة ، وهناك خط رفيع جدًا بينهما.

قبل أن نبدأ ، دعني أخبرك بشيء واحد ، هذا البرنامج التعليمي يناقش فقط الجزء الذي يتضمن تحميل مقاطع الفيديو على YouTube. سنستخدم نموذج فيديو هنا.

إذا قمت بإنشاء روبوت يقوم بتحميل الفيديو بانتظام (مثل Webdriver Torso ، والذي سنتحدث عنه أكثر في نهاية المقالة) ، فأنت بحاجة إلى مصدر للفيديو.

تحذير أيضًا : تأكد من التحقق من حقوق الطبع والنشر لجميع مقاطع الفيديو التي تحمّلها. إن إصدار الروبوت الذي قمت بإنشائه أولاً حمّل مقاطع فيديو للآخرين على YouTube - ولن تصدق ما حدث. تلقيت سلسلة من المطالبات والمخالفات المتعلقة بحقوق الطبع والنشر وتم حذف قناتي في النهاية.

لذا في هذا البرنامج التعليمي سوف أريكم كيف يتم ذلك. ولكن إذا كنت ترغب في تنفيذه ، فابحث أولاً عن مصدر جيد لمقاطع الفيديو التي يمكنك تحميلها دون مشاكل حقوق النشر.

لماذا Google Apps Script؟

يعد Google Apps Script نظامًا أساسيًا للبرمجة النصية تم تطويره بواسطة Google لتشغيل التطبيقات خفيفة الوزن. يعتمد تركيبها على JavaScript. إذا كنت تعرف Javascript بالفعل ، فستجدها سهلة حقًا.

السبب في أننا نستخدم Google Apps Script هو أنه يجعل من السهل حقًا إنشاء هذا الروبوت. يحتوي على دعم مضمن لمعظم منتجات Google مثل Gmail و Sheets و Forms و Youtube. وهو مجاني.

نظرة عامة على Google Apps Script

يحتوي Google Apps Script على محرر ونظام ملفات عبر الإنترنت. لا يحتاج إلى أي نشر ، ما عليك سوى حفظ الكود الخاص بك وتشغيله.

إذا فتحت محرر Apps Script ، فسيظهر على النحو التالي:

تمامًا مثل أي محرر نصوص آخر ، يحتوي على شريط جانبي به قائمة بالملفات وقائمة ومساحة لكتابة التعليمات البرمجية. ملفات التعليمات البرمجية لها امتداد gs. (ربما لبرنامج Google النصي). والأهم من ذلك ، يجب أن تكون جميع التعليمات البرمجية داخل بعض الوظائف - لن يتم تنفيذ التعليمات البرمجية المجهولة.

هناك نوعان من الوظائف الخاصة ، doPost()و doGet(). كما يوحي الاسم ، يتم استخدامها لمعالجة طلبات POST و GET ، على التوالي. لن نستخدمها هنا ، ولكن إذا كنت ترغب في إنشاء هذا الروبوت مثل واجهة برمجة التطبيقات التي يمكن استدعاؤها باستخدام طلبات 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 خدمة رائعة. لديها الكثير من الأدوات الرائعة. لنفترض أنك تريد استخدام هذه الميزات في تطبيقك ، دعنا نقول لبناء بطاقة دعوة رقمية ذكية مع خريطة مضمنة.

عادة ، للقيام بذلك تحتاج إلى شفرة المصدر للخرائط. لكن هذا الرمز ليس مفتوح المصدر. وسيكون من الحماقة إعطاء شخص ما شفرة المصدر لمجرد أنه يريد استخدام بعض الميزات. هذا هو المكان الذي تكون فيه واجهة برمجة التطبيقات سهلة الاستخدام.

تعد واجهات برمجة التطبيقات أو واجهات برمجة التطبيقات طريقة للمطورين للسماح للآخرين باستخدام ميزات تطبيقك دون الكشف عن شفرة المصدر.

في هذه الحالة ، تتيح واجهة برمجة تطبيقات YouTube للمطورين استخدام ميزات YouTube في تطبيقاتهم ، أو التحكم في بعض قنوات YouTube بعد المصادقة. إذا كانت لديك فكرة عن ماهية API ، فلنستمر.

لتمكين YouTube Data API ، انتقل إلى الموارد> خدمات Google المتقدمة . سترى شيء مثل أدناه. قد يطلب منك قبول شروط Google Cloud قبل المتابعة إذا لم يكن لديك مشروع تم إعداده بالفعل. إذا طُلب منك قبول الشروط.

انتقل إلى أسفل. سترى YouTube Data API V3. عادة ، تحتاج إلى إنشاء Google Cloud Project لاستخدامه. لكن App Script ينشئ مشروعًا لنفسه ، لذلك لا تحتاج إلى إنشاء شيء منفصل. قم بتمكينه وإغلاق النافذة المنبثقة. الآن أنت على ما يرام.

تشغيل الوظيفة

يجب عليك لصق الكود الوارد أدناه (كما هو مذكور أعلاه) في محرر النصوص وحفظه من قائمة File> Save .

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

بعد حفظه ، يجب عليك الانتقال إلى تشغيل> وظيفة التشغيل> قائمة التحميل . سيبدو شيئا من هذا القبيل:

عند النقر فوق الزر تحميل ، ستتلقى نافذة منبثقة مثل هذا:

الآن هذا هو المكان الذي تصبح فيه فائدة App Script واضحة. هنا ، يمكنك منحه الإذن بتحميل مقاطع الفيديو على حسابك. سيُظهر لك تحذيرات تفيد بأن التطبيق لم يتم التحقق منه - ولكن لا تقلق ، فهذه خطوة أمنية تتخذها Google لمنع التطبيقات الضارة.

ولكن هنا ، أنت المطور ، لذا يمكنك تجاهل التحذير ومنح الإذن من الزر "متقدم" في أسفل اليسار. سيطلب منك إذنين ، كما هو موضح:

إذن إدارة حسابك على YouTube هو إذن جاد. على الرغم من أنه آمن في هذه الحالة بالذات ، لا تمنح هذا الإذن مطلقًا لأي تطبيق لا تثق به. سيمنح التطبيق وصولاً كاملاً إلى حسابك على YouTube.

وهذا لا ينطبق فقط على YouTube. يجب أن تكون أكثر حرصًا قبل السماح بالنطاقات الحساسة على أي نظام أساسي ، مثل Twitter و Facebook و GitHub وطرق تسجيل الدخول الاجتماعية الأخرى.

بعد منح هذا الإذن ، سيتم تنفيذ الوظيفة. لكن لن يحدث شيء لأننا لم نحدد ما يجب تحميله.

هنا ، تحتاج إلى إعطاء قيم لمتغيرات عنوان URL والعنوان والوصف والعلامات. دعونا نأخذ عينة من الفيديو لاستخدامنا (هل تتذكر قضايا حقوق النشر هذه؟).

هذه هي upload()الوظيفة المعدلة :

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

ربما لم تسمع عنها ، لكن هذا الروبوت (أو ربما خارق البشر) قام بتحميل أكثر من 70000 مقطع فيديو على قناته على youtube خلال فترة زمنية قصيرة نسبيًا. وعلى الرغم من أنها مقاطع فيديو تم إنشاؤها من الناحية الإجرائية ، إلا أنها لا تزال رائعة جدًا.

هذه هي مقاطع الفيديو الأكثر مشاهدة على هذه القناة:

يمكنك أن ترى أن فيديو برج إيفل في الليل (وهو أمر غير قانوني) يحظى بأكبر عدد من المشاهدات. هناك نظريات مؤامرة مفادها أن هذه القناة مملوكة لموقع YouTube لأغراض الاختبار.

في كلتا الحالتين ، لا تلهمك - إذا قمت بتحميل العديد من مقاطع الفيديو ، فمن المحتمل أن يعلقك YouTube.

إذا وجدت هذا مثيرًا للاهتمام ، فيمكنك زيارة هذه المقالة لمعرفة المزيد.

كان الرد على مقالتي السابقة رائعًا - شكرًا لك! ملاحظاتك تحفزني على كتابة أشياء جديدة. أيضًا ، قم بزيارة منزلي على الإنترنت theabbie.github.io.