أضف آلاف المقاطع إلى قائمة تشغيل YouTube من قناة Telegram

من خلال شراء جهاز تلفزيون مزود بوظيفة مشاهدة YouTube واشتراك في العديد من قنوات Telegram حيث يتم وضع المقاطع يوميًا ، أردت إزالة الحركات غير الضرورية بين هاتفي المحمول والتلفزيون لمشاهدة أحدث محتوى جديد.



الفكرة بسيطة:

  • معطى : قناة واحدة أو أكثر من قنوات Telegram لصنع المحتوى مع تحميل يومي لأحدث المقاطع.
  • المهمة : قم بإنشاء قائمة تشغيل على موقع يوتيوب الخاص بك مع كل هذه المقاطع والتقاط مقاطع جديدة تلقائيًا.
  • الأدوات : Google Apps Script (GAS) و YouTube API



تصدير سجل قناة Telegram


نحن نبحث عن قناة Telegram مناسبة تنشر المنشورات بمقاطع YouTube (على سبيل المثال ، خذfresh_farsh).

في الزاوية العلوية اليمنى ، هناك ثلاث نقاط - "سجل قنوات التصدير ".


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


يتم تحميل مجلد ChatExport ، داخل عدة ملفات رسائل مرقمة (2،3،4 ...) ، يعتمد عدد الملفات على محتوى القناة.


تحليل قناة في جدول بيانات جوجل


نحتاج إلى إنشاء قائمة بروابط YouTube لإضافتها إلى جدول بيانات Google. اخترت هذا الموقع .

أدخل التعبير العادي في السطر العلوي:

">(https:\/\/<a href="about:blank">www.youtube.com\/.*</a>?)<\/a>|">(https:\/\/youtu.be\/.*?)<\/a>

أدناه نقوم بإدراج النص من جميع الرسائل (2،3،4) .html في صف. في الجزء الأيمن ، تكون النتيجة مرئية.

انقر فوق الزر لتحميل النتيجة.


اضغط على " تضمين التطابق الكامل في البيانات المصدرة " حتى لا يتم إلغاء تحميل التطابقات غير الضرورية. نختار CSV ، إلغاء التحميل.


إنشاء جدول بيانات Google.

نقوم بنسخ CSV فيه ، وإزالة الخطوط غير الضرورية ، وإحضار جميع الروابط إلى youtu.be


أنشئ قناة قائمة تشغيل ، YouTube API


نذهب إلى يوتيوب .

في الجزء العلوي الأيسر ، انقر على رمز الحساب - " إنشاء قناة ".


لقد توصلنا إلى اسم ، وتذكر معرف القناة من شريط العناوين:
https://www.youtube.com/playlist؟list=<ID CHANNEL>

الآن نحن بحاجة إلى تمكين YouTube API.
نقوم بإنشاء المشروع بإحدى الطرق:


نسمي المشروع ، انقر فوق " إنشاء ".

بعد ذلك ، انقر على " تمكين واجهات برمجة التطبيقات والخدمات " ، وابحث عن " YouTube Data API v3 " - تمكين .

لذلك ، يتم تضمين API .

نعود إلى جدول جوجل.

" أدوات - محرر البرنامج النصي ."


نقوم بلصق الشفرة ، حيث نقوم في idCHannel بإدخال معرف قناتنا ، " File - Save " (CTRL + S).


مصدر الرمز
idCHannel = 'PLZqUj_5dkPHaAYSECFNOKqnsr2JypZnoo' // ID 

//     Google    YouTube
function fromSheetToYouTube(){
  //    
  var ss = SpreadsheetApp.getActiveSpreadsheet()
  var s = ss.getSheets()[0]
  //      
  var data = s.getDataRange().getValues()
  //   . 
  for (var d=1; d<=200; d++) {
    try {
      YouTube.PlaylistItems.insert({
        snippet: {
          playlistId: idCHannel,
          resourceId: {
            kind: "youtube#video",
            videoId: data[d][0].replace('https://youtu.be/','')
          }
        }
      }, "snippet")
      //     B  ,   
      s.getRange("B"+parseInt(d+1)).setValue('')
      //      
      Utilities.sleep(1000)
      //   15    50 
      if (d%50 == 0) Utilities.sleep(15000)
    } catch (e) {
      console.error(e);
    }
  }
}


الآن نحن بحاجة لربط API إلى برنامجنا النصي.

" الموارد - ميزات Google المتقدمة - YouTube Data API - تشغيل ."



الآن نحن على استعداد لتشغيل البرنامج النصي.

في القائمة المنسدلة " تحديد وظيفة " ، حدد " fromSheetToYouTube ". انقر فوق

مثلث " تشغيل " على اليسار .

إذا كان كل شيء على ما يرام ولم تكن هناك أخطاء حمراء ، فإن " وظيفة التشغيل من SheToToYouTube ... " قيد التشغيل ، فإن النص البرمجي يعمل.

تتم إضافة مقاطع ، يمكنك التحقق من قائمة التشغيل بالتوازي.

تتم الإضافة بسرعة مقطع واحد في الثانية ، بالإضافة إلى الإيقاف المؤقت كل 50 مقطعًا (افتراضيًا 15 ثانية).

بعد التنفيذ ، يمكنك رؤية سجل الأخطاء في قائمة " عرض - سجلات " أو بالضغط على "CTRL + ENTER" ، هناك أيضًا رابط لعرض جميع أخطاء بدء التشغيل النصييسمى " شريط أدوات برمجة التطبيقات ""

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

طرق تصدير المقاطع. الحصص.


يوتيوب لديه قيود API تسمى الحصص .

وصف حصص يوتيوب هنا .

يمكن رؤية بقية الحصص هنا على الرسوم البيانية (من الأفضل تعيين الفاصل الزمني على الفور الأصغر للوضوح).

ما نحتاج إلى معرفته من الوصف الخاص بالحصص:
تمتلك المشاريع التي تمكّن YouTube Data API تخصيصًا افتراضيًا للحصة يبلغ 10 آلاف وحدة في اليوم
10000 حصة في اليوم .

تبلغ تكلفة عملية الكتابة حوالي 50 وحدة
تكلفة عملية الكتابة الواحدة 50 حصة.

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

المجموع نحصل على 10000/53 حوالي 188 مقطع.

إذا لسبب ما لم يكن هناك وصول إلى المقطع أو حذفه المؤلف ، فسيتم إهدار الطلب ، وقضاء حصة قراءة واحدة.
أي مع مراعاة النسبة المئوية لمقاطع الفيديو "التي يتعذر الوصول إليها / حذفها" ، يمكننا إرسال حوالي 180 مقطعًا في يوم واحد .

دعونا نلقي نظرة على جميع الخيارات لتنزيل المقاطع من الأبطأ إلى الأكثر فعالية


  1. , .
    — “ — URL», , " ".

    , . Selenium IDE — Katalon, Katalon Recorder (Selenium IDE++ Chrome Firefox)
  2. 180
    .
    , 15 , 15:00 180 .
  3. 180
    Google: "", "1".

    "" , "1", , "", ( ).

    fromSheetToYouTube ( ""), "1".

    "" — " — — ".



    " " .

    "1" "".

    "1" "".

    ""


    "".


    " ".

    .

    : 5-6 1000 .

    , , .



    1. .
    2. Google , IP Google .


    VPN IP ( ).

    IP+VPN .

    , , .



    .

    TODO

    " " API Google (Google Sheets API v4) R googlesheets4.
  4. :

    • Google (. ).
    • .
  5. 50 . !
    , .

    YouTube , ID ( 50 ).
    : https://www.youtube.com/watch_videos?video_ids=<ID1,ID2,ID3>

    , , ID.

    https://www.youtube.com/watch?v=jSPUkvjaiBs&list=< ID>
    : https://www.youtube.com/playlist?disable_polymer=true&list=< ID>

    disable_polymer .

    , "" ( 3 — «»).


    : 50 , .

    :

    • .
    • ! 50 .

Telegram GAS


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

نصنع البوت وفقًا للتعليمات ، نخرج بالاسم. بعد إنشاء البوت ، نحتاج إلى رمز مميز من النموذج 123456789: ABCD ...

نذهب إلى جدول Google في محرر البرنامج النصي.

يمكنك استخدام نفس المشروع مثل برنامجنا النصي السابق fromSheetToYouTube .

نقوم بإدراج وظيفة doPost ، وسوف تلتقط الرسائل من برنامج التتبُّع على الإدخال ، وتحليل الروابط مع الوظيفة العادية وإضافة قائمة تشغيل إلى YouTube.

مصدر الرمز
//     Telegram
function doPost(e) {
  //     JSON
  var inp = JSON.parse(e.postData.contents)
  //   .   ,  channel_post,      message
  if (typeof inp.channel_post === 'undefined'){
    var inpTxt = inp.message.text
  }else{
    var inpTxt = inp.channel_post.text
  }
  //   
  var y = /(?<=youtube.com\/watch\?v=)(.*?)$|(?<=youtu.be\/)(.*?)$/.exec(inpTxt)[0]
  try {
    YouTube.PlaylistItems.insert({
      snippet: {
        playlistId: idCHannel, // 
        resourceId: {
          kind: "youtube#video",
          videoId: y // 
        }
      }
    }, "snippet")
      } catch (e) {
        console.error(e);
      }
}


إضافة ، حفظ ، يجب نشره من أجل الحصول على ارتباط الوصول.

انقر على " نشر - نشر كتطبيق ويب ... "

حدد القوائم المنسدلة ، كما في لقطة الشاشة.


بعد ذلك ، نحتاج إلى محتويات الرابط بأكمله https

: //script.google.com/macros/s ... بمجرد أن نحصل على رمز الروبوت ورابط لتطبيقنا ، يمكننا ربطهم من خلال الرد التلقائي على الويب .

https://api.telegram.org/bot<BOT TOKEN> / setWebHook؟ url = <LINK TO THE APPLICATION>
يجب عرض رسالة

{"ok":true,"result":true,"description":"Webhook was set"}

سأكتب على الفور أن إعادة تعيين الرد التلقائي على الويب (إزالة البوت من التطبيق) يتم على هذا النحو : https://api.telegram.org/bot<BOT TOKEN> /
setWebHook

{"ok":true,"result":true,"description":"Webhook was deleted"}

كيفية تجاوز الحظر

على عدد من مقدمي الخدمة ، يتم حظر كل ما يتعلق بتشغيل Telegram من خلال متصفح . وبناءً على ذلك ، ستظهر المكالمة إلى https://api.telegram.org/ " تعذر الوصول إلى الموقع ".

هنا سوف تساعدنا VPN ، لقد استخدمت وكيل VPN المجاني من Hotspot Shield - ملحق VPN غير محدود لـ Google Chrome

لذا ، فإن البوت الخاص بنا متصل بالنص البرمجي وإذا قمت بكتابة شيء ما في البوت ، فإن وظيفة doPost ستلتقطه وتعالجه .

بنية الإدخال لرسائل JSON هنا .

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

الأتمتة

لأتمتة العملية ، أضف المسؤول إلى القناة بواسطة المسؤول ، بعد قراءة سياسات الخصوصية هنا .

الآن ، مع مشاركة جديدة في القناة ، سيتلقى نصنا

JSON.parse(e.postData.contents).channel_post.text

e هي معلمة الإدخال.

عند الإرسال من بوت ، على التوالي

JSON.parse(e.postData.contents).message.text

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

تذكر أن GAS لا تتم معالجتها في البداية الأولى على الفور ، ولكن بعد حوالي 10-30 ثانية ، لذلك لن تأتي رسالتك الأولى إلى البوت على الفور.

استنتاج


لذلك ، تعلمنا عدة طرق لإضافة مقاطع.

بالإضافة إلى ذلك ، لدينا روبوت Telegram متصل بالقناة ، قادر على التقاط الرسائل من القناة وموجهة إليها ، وتحليلها في GAS وإضافتها إلى قائمة تشغيل YouTube.
حلت المشكلة.

المصادر


وصف جميع طرق العمل مع الروبوتات Telegram هنا .
مرجع YouTube API هنا
جميع فرق Google Apps Script هنا

All Articles