Tambahkan ribuan klip ke daftar putar YouTube dari saluran Telegram

Dengan pembelian TV dengan fungsi menonton YouTube dan berlangganan banyak saluran Telegram di mana klip ditata setiap hari, saya ingin menghapus gerakan yang tidak perlu antara ponsel saya dan TV untuk menonton konten segar terbaru.



Idenya sederhana:

  • Diberikan : Satu atau lebih saluran pembuat konten Telegram dengan unggahan harian klip terbaru.
  • Tugas : Buat daftar putar di YouTube Anda dengan semua klip ini dan secara otomatis tangkap yang baru.
  • Alat : Google Apps Script (GAS), YouTube API



Ekspor Riwayat Saluran Telegram


Kami mencari saluran Telegram yang sesuai yang memposting pos dengan klip YouTube (misalnya, ambil @fresh_farsh).

Di sudut kanan atas ada tiga titik - " Ekspor saluran sejarah ".


Untuk daftar tautan, kami hanya perlu teks, jadi hapus semua tanda centang dan setel periode unggah maksimum, yaitu, " dari pesan pertama ke tanggal saat ini ."


Folder ChatExport diunggah , di dalam beberapa file pesan bernomor (2,3,4 ...). Html , jumlah file tergantung pada jumlah konten saluran.


Mem-parsing saluran dalam spreadsheet google


Kita perlu membuat daftar tautan YouTube untuk ditambahkan ke spreadsheet Google. Saya memilih situs ini .

Masukkan ekspresi reguler di baris atas:

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

Di bawah ini kami menyisipkan teks dari semua pesan (2,3,4) .html berturut-turut. Di panel kanan, hasilnya terlihat.

Klik tombol untuk mengunggah hasilnya.


Tekan " Sertakan kecocokan penuh dalam data yang diekspor " sehingga kecocokan yang tidak perlu tidak dibongkar. Kami memilih CSV , bongkar.


Buat spreadsheet Google.

Kami menyalin CSV ke dalamnya , menghapus garis yang tidak perlu, membawa semua tautan ke youtu.be


Buat saluran daftar putar, YouTube API


Kami pergi ke YouTube .

Di kanan atas, klik ikon akun - " Buat Saluran ".


Kami datang dengan sebuah nama, ingat ID saluran dari bilah alamat:
https://www.youtube.com/playlist?list=<ID CHANNEL>

Sekarang kita harus mengaktifkan API YouTube.
Kami membuat proyek dengan salah satu cara:

  • Kami mengikuti tautan , lalu pilih " API dan Layanan - Panel Kontrol - Buat Proyek "
  • Dengan mengklik tautan langsung .

Kami beri nama proyek, klik " Buat ."

Selanjutnya, klik " Aktifkan API dan Layanan ", cari " YouTube Data API v3 " - Aktifkan .

Jadi, API disertakan .

Kami kembali ke tabel Google.

" Alat - editor skrip ."


Kami menempelkan kode, di mana di idCHannel kami memasukkan ID saluran kami, " File - Save " (CTRL + S).


Kode sumber
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);
    }
  }
}


Sekarang kita perlu menghubungkan API ke skrip kita.

" Sumber Daya - Fitur Google Lanjutan - API Data YouTube - Aktif ."



Sekarang kita siap menjalankan skrip.

Di menu tarik-turun " Select function " , pilih " fromSheetToYouTube ". Klik

segitiga " Run " di sebelah kiri .

Jika semuanya beres dan tidak ada kesalahan merah, " Menjalankan fungsi fromSheetToYouTube ... " aktif, maka skrip kami sedang berjalan.

Klip ditambahkan, Anda dapat memeriksa daftar putar secara paralel.

Menambahkan berjalan dengan kecepatan 1 klip per detik, ditambah jeda setiap 50 klip (default 15 detik).

Setelah eksekusi, Anda dapat melihat log kesalahan dalam menu " Lihat - Log " atau dengan menekan "CTRL + ENTER", ada juga tautan untuk melihat semua kesalahan startup naskahdisebut " Bilah Alat Script Aplikasi"

Jika kami melihat kesalahan" Permintaan tidak dapat diselesaikan karena Anda telah melampaui kuota Anda ", ini berarti bahwa kami telah melampaui kuota harian untuk operasi dengan API.

Cara mengekspor klip. Kuota.


YouTube memiliki batasan API yang disebut kuota .

Deskripsi kuota YouTube di sini .

Sisa kuota dapat dilihat di sini pada grafik (lebih baik mengatur interval waktu dengan segera yang terkecil untuk kejelasan).

Apa yang perlu kita ketahui dari deskripsi tentang kuota:
Proyek yang mengaktifkan API Data YouTube memiliki alokasi kuota default 10 ribu unit per hari
10.000 kuota per hari .

Operasi tulis memiliki biaya sekitar 50 unit
Satu operasi tulis memiliki biaya 50 kuota.

Jika Anda menghitung kuota kalkulator , maka satu operasi menambahkan video ke daftar putar playlistItems-insert akan meninggalkan kita lebih dari 50 kuota jika snippet diaktifkan.

Total yang kita dapatkan 10000/53 sekitar 188 klip.

Jika karena alasan tertentu tidak ada akses ke klip atau penulis menghapusnya, permintaan akan sia-sia, menghabiskan satu kuota membaca.
Artinya, dengan mempertimbangkan persentase video "tidak dapat diakses / dihapus", kami dapat mengirim sekitar 180 klip dalam satu hari .

Mari kita lihat semua opsi untuk mengunduh klip dari yang paling lambat hingga yang paling efektif


  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


Jika ini adalah saluran kami atau kami menghubungi administrator saluran, tempat klip diurai dan dia setuju untuk bekerja sama, Anda dapat menulis bot kecil yang melacak klip saluran baru dan menambahkannya ke daftar putar YouTube kami.

Kami membuat bot sesuai dengan instruksi , kami datang dengan nama. Setelah membuat bot, kita perlu token dari bentuk 123456789: ABCD ...

Kita masuk ke tabel Google kami di editor skrip.

Anda dapat menggunakan proyek yang sama dengan skrip fromSheetToYouTube kami sebelumnya .

Kami menyisipkan fungsi doPost , itu akan menangkap pesan dari bot pada input, mengurai tautan dengan yang biasa dan menambahkan daftar putar ke YouTube kami.

Kode sumber
//     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);
      }
}


Ditambahkan, disimpan, harus dipublikasikan untuk mendapatkan tautan akses.

Klik " Publikasikan - Menyebarkan sebagai aplikasi web ... "

Pilih menu tarik-turun, seperti pada tangkapan layar.


Selanjutnya, kita memerlukan konten seluruh tautan https

: //script.google.com/macros/s ... Setelah kita memiliki token bot dan tautan ke aplikasi kita, kita dapat menautkannya melalui webhook .

https://api.telegram.org/bot<BOT TOKEN> / setWebHook? url = <LINK KE APLIKASI>
Pesan harus ditampilkan

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

Saya akan segera menulis bahwa mereset webhook (melepaskan bot dari aplikasi) dilakukan seperti ini: https://api.telegram.org/bot<BOT TOKEN> /
setWebHook

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

Cara memotong pemblokiran

Pada sejumlah penyedia layanan, segala sesuatu yang berkaitan dengan pengoperasian Telegram melalui peramban diblokir . Karenanya, panggilan ke https://api.telegram.org/ akan menampilkan " Tidak dapat mengakses situs ."

Di sini VPN akan membantu kami, saya menggunakan Proxy VPN Gratis Hotspot Shield - Ekstensi VPN tidak terbatas untuk Google Chrome

Jadi, bot kami terhubung ke skrip dan jika Anda menulis sesuatu di bot, fungsi doPost akan menangkap dan memprosesnya.

Struktur input pesan JSON ada di sini .

Pada prinsipnya, beberapa fungsi ini akan cukup untuk beberapa orang - kami berlangganan banyak saluran, mem-parsing semuanya menjadi satu daftar putar, dan kemudian mengirim posting baru dari semua saluran ke bot dan kami tahu bahwa mereka akan langsung ditambahkan ke daftar putar kami.

Otomasi

Untuk mengotomatiskan proses, tambahkan bot ke saluran oleh administrator, setelah membaca tentang kebijakan privasi di sini .

Sekarang, dengan posting baru di saluran, skrip kami akan menerima

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

e adalah parameter input.

Saat mengirim dari bot, masing-masing

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

Atas kebijaksanaan Anda, Anda dapat mempercepat pemeriksaan untuk keberadaan klip, replay, log dalam sel, dll, menggunakan manual .

Ingat bahwa GAS tidak diproses pada mulanya awal segera, tetapi setelah sekitar 10-30 detik, sehingga pesan pertama Anda ke bot tidak akan segera datang.

Kesimpulan


Jadi, kami telah mempelajari beberapa cara untuk menambahkan klip.

Selain itu, kami memiliki bot Telegram yang terhubung ke saluran, yang mampu menangkap pesan baik dari saluran dan dialamatkan padanya, menguraikannya dalam GAS dan menambahkan ke daftar putar YouTube.
Masalah terpecahkan.

Sumber


Deskripsi semua metode bekerja dengan bot Telegram di sini .
Referensi YouTube API di sini
Semua tim Skrip Google Apps di sini

All Articles