Fügen Sie einer YouTube-Wiedergabeliste über einen Telegrammkanal Tausende von Clips hinzu

Mit dem Kauf eines Fernsehgeräts mit YouTube-Anzeigefunktion und einem Abonnement für viele Telegrammkanäle, in denen täglich Clips angezeigt werden, wollte ich unnötige Bewegungen zwischen meinem Mobiltelefon und dem Fernsehgerät entfernen , um die neuesten Inhalte zu sehen.



Die Idee ist einfach:

  • Gegeben : Ein oder mehrere Telegramm-Content-Maker-Kanäle mit täglichem Hochladen der neuesten Clips.
  • Aufgabe : Erstelle mit all diesen Clips eine Wiedergabeliste auf deinem YouTube und fange automatisch neue ein.
  • Tools : Google Apps Script (GAS), YouTube-API



Exportieren des Telegrammkanalverlaufs


Wir suchen nach einem geeigneten Telegrammkanal, der Beiträge mit YouTube-Clips veröffentlicht (z. B. @fresh_farsh).

In der oberen rechten Ecke befinden sich drei Punkte - " Kanalverlauf exportieren ".


Für die Liste der Links benötigen wir nur Text. Deaktivieren Sie daher alle Kontrollkästchen und legen Sie die maximale Upload-Dauer fest, dh " von der ersten Nachricht bis zum aktuellen Datum ".


Der ChatExport-Ordner wird in mehreren nummerierten Nachrichtendateien (2,3,4 ...) hochgeladen . In HTML hängt die Anzahl der Dateien von der Menge des Kanalinhalts ab.


Analysieren eines Kanals in einer Google-Tabelle


Wir müssen eine Liste mit YouTube-Links erstellen, um sie der Google-Tabelle hinzuzufügen. Ich habe diese Seite gewählt .

Geben Sie den regulären Ausdruck in die oberste Zeile ein:

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

Unten fügen wir den Text aus allen Nachrichten (2,3,4) .html in einer Reihe ein. Im rechten Bereich ist das Ergebnis sichtbar.

Klicken Sie auf die Schaltfläche, um das Ergebnis hochzuladen.


Klicken Sie auf " Vollständige Übereinstimmung in exportierte Daten einschließen ", damit unnötige Übereinstimmungen nicht entladen werden. Wir wählen CSV , entladen.


Erstellen Sie eine Google-Tabelle.

Wir kopieren CSV hinein , entfernen unnötige Zeilen und bringen alle Links zu youtu.be


Erstellen Sie einen Wiedergabelistenkanal, die YouTube-API


Wir gehen zu YouTube .

Klicken Sie oben rechts auf das Kontosymbol - " Kanal erstellen ".


Wir haben einen Namen gefunden und die Kanal-ID in der Adressleiste gespeichert:
https://www.youtube.com/playlist?list=<ID CHANNEL>

Jetzt müssen wir die YouTube-API aktivieren.
Wir erstellen das Projekt auf eine der folgenden Arten:

  • Wir folgen dem Link und wählen dann " API und Services - Systemsteuerung - Projekt erstellen ".
  • Durch sofortiges Klicken auf den Link .

Wir benennen das Projekt und klicken auf " Erstellen ".

Klicken Sie anschließend auf " APIs und Dienste aktivieren " und suchen Sie nach " YouTube Data API v3 " - Aktivieren .

Die API ist also enthalten .

Wir kehren zur Google-Tabelle zurück.

" Tools - Skripteditor ."


Wir fügen den Code ein, wobei wir im idCHannel die ID unseres Kanals " File - Save " (STRG + S) einfügen .


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


Jetzt müssen wir die API mit unserem Skript verbinden.

" Ressourcen - Erweiterte Google-Funktionen - YouTube-Daten-API - Ein ."



Jetzt können wir das Skript ausführen. Wählen Sie im

Dropdown-Menü " Funktion auswählen" die Option " fromSheetToYouTube ". Klicken Sie

links auf das Dreieck " Ausführen ".

Wenn alles in Ordnung ist und keine roten Fehler vorliegen, ist die Funktion " Ausführen der Funktion von SheetToYouTube ... " aktiviert. Dann wird unser Skript ausgeführt.

Wenn Clips hinzugefügt werden, können Sie die Wiedergabeliste parallel überprüfen.

Das Hinzufügen erfolgt mit einer Geschwindigkeit von 1 Clip pro Sekunde plus Pause alle 50 Clips (Standard 15 Sekunden).

Nach der Ausführung können Sie das Fehlerprotokoll im Menü " Ansicht - Protokolle " anzeigen oder durch Drücken von "STRG + EINGABE" einen Link zum Anzeigen aller Startfehler anzeigen Skriptgenannt „ Apps Script Symbolleiste

Wenn der Fehler„ Die Anforderung kann nicht abgeschlossen werden, weil Sie Ihr Kontingent überschritten habenangezeigt wird , bedeutet dies, dass wir das tägliche Kontingent für Vorgänge mit der API überschritten haben .

Möglichkeiten zum Exportieren von Clips. Quoten.


YouTube hat API-Einschränkungen, die als Quoten bezeichnet werden .

Beschreibung der YouTube-Quoten hier .

Der Rest der Quoten ist hier in den Diagrammen zu sehen (aus Gründen der Übersichtlichkeit ist es besser, das Zeitintervall sofort auf das kleinste einzustellen).

Was wir aus der Beschreibung der Quoten wissen müssen:
Projekte, die die YouTube-Daten-API aktivieren, haben eine Standardkontingentzuweisung von 10.000 Einheiten pro Tag
10.000 Quoten pro Tag .

Eine Schreiboperation kostet ungefähr 50 Einheiten
Eine Schreiboperation kostet 50 Kontingente.

Wenn Sie die Quoten Rechner berechnen , dann ein Betrieb , ein Video zu der Wiedergabeliste hinzugefügt playlistItems-Einsatz wird uns ein verlassen mehr als 50 kleine Quoten wenn Snippet aktiviert ist.

Insgesamt erhalten wir 10000/53 ca. 188 Clips.

Wenn aus irgendeinem Grund kein Zugriff auf den Clip besteht oder der Autor ihn gelöscht hat, wird die Anforderung verschwendet und es wird ein Lesekontingent ausgegeben.
Unter Berücksichtigung des Prozentsatzes der "unzugänglichen / gelöschten" Videos können wir an einem Tag etwa 180 Clips senden .

Schauen wir uns alle Optionen zum Herunterladen von Clips von den langsamsten bis zu den effektivsten an


  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


Wenn dies unser Kanal ist oder wir den Kanaladministrator kontaktiert haben, von dem die Clips analysiert wurden, und er sich zur Zusammenarbeit bereit erklärt hat, können Sie einen kleinen Bot schreiben, der neue Kanalclips verfolgt und sie unserer YouTube-Wiedergabeliste hinzufügt.

Wir machen den Bot nach den Anweisungen , wir kommen mit dem Namen. Nach dem Erstellen des Bots benötigen wir ein Token der Form 123456789: ABCD ...

Wir gehen in unsere Google-Tabelle im Skripteditor.

Sie können dasselbe Projekt wie unser vorheriges fromSheetToYouTube- Skript verwenden .

Wir fügen die doPost- Funktion ein , die Nachrichten vom Bot auf der Eingabe abfängt , Links mit der regulären analysiert und eine Wiedergabeliste zu unserem YouTube hinzufügt.

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


Hinzugefügt, gespeichert, muss veröffentlicht werden, um einen Zugriffslink zu erhalten.

Klicken Sie auf " Veröffentlichen - Als Webanwendung bereitstellen ... ".

Wählen Sie wie im Screenshot Dropdown-Menüs aus.


Als nächstes benötigen wir den Inhalt des gesamten Links https

: //script.google.com/macros/s ... Sobald wir das Bot-Token und einen Link zu unserer Anwendung haben, können wir sie über Webhook verknüpfen .

https://api.telegram.org/bot<BOT TOKEN> / setWebHook? url = <LINK ZUR ANWENDUNG>
Eine Meldung sollte angezeigt werden

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

Ich schreibe sofort, dass das Zurücksetzen eines Webhooks (Lösen des Bots von der Anwendung) folgendermaßen erfolgt: https://api.telegram.org/bot<BOT TOKEN> /
setWebHook

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

Wie in der Bypass - Blockierung

auf einer Reihe von Anbietern, alles auf den Betrieb von Telegramm über einen Browser verwendet ist blockiert . Dementsprechend wird bei einem Aufruf von https://api.telegram.org/ " Zugriff auf die Site nicht möglich " angezeigt .

Hier hilft uns das VPN. Ich habe den Hotspot Shield Free VPN Proxy - Unbegrenzte VPN- Erweiterung für Google Chrome verwendet

. Unser Bot ist also mit dem Skript verbunden. Wenn Sie etwas in den Bot schreiben, wird die doPost- Funktion dies abfangen und verarbeiten.

Die Eingabestruktur von JSON-Nachrichten finden Sie hier .

Im Prinzip werden einige dieser Funktionen für einige Leute ausreichen - wir abonnieren viele Kanäle, analysieren alles in einer Wiedergabeliste und senden dann neue Beiträge von allen Kanälen an die Bots, und wir wissen, dass sie sofort zu unserer Wiedergabeliste hinzugefügt werden.

Automatisierung

Um den Prozess zu automatisieren, fügen Sie den Bot vom Administrator zum Kanal hinzu, nachdem Sie hier die Datenschutzrichtlinien gelesen haben .

Jetzt, mit einem neuen Beitrag im Kanal, wird unser Skript empfangen

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

e ist der Eingabeparameter.

Beim Senden von einem Bot

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

Sie können nach eigenem Ermessen die Überprüfung des Vorhandenseins von Clips, Wiederholungen, Anmeldungen in Zellen usw. mithilfe des Handbuchs durchführen .

Denken Sie daran, dass das GAS nicht sofort beim ersten Start verarbeitet wird, sondern nach etwa 10 bis 30 Sekunden, sodass Ihre erste Nachricht an den Bot nicht sofort eingeht.

Fazit


Wir haben also verschiedene Möglichkeiten zum Hinzufügen von Clips kennengelernt.

Zusätzlich haben wir einen an den Kanal angehängten Telegramm-Bot, der Nachrichten sowohl vom Kanal als auch an diesen abfangen, in GAS analysieren und zur YouTube-Wiedergabeliste hinzufügen kann.
Das Problem ist behoben.

Quellen


Beschreibung aller Methoden zur Arbeit mit Telegramm-Bots hier .
YouTube-API-Referenz hier
Alle Google Apps Script-Teams hier

All Articles