[RUBY] So erhalten Sie die neueste Live-Übermittlungs-ID für einen Kanal ohne Verwendung der YouTube-Daten-API

Hinweis

Nutzungsbedingungen-YouTube Bitte überprüfe unbedingt die Nutzungsbedingungen von YouTube, da diese je nach Nutzung mit den Nutzungsbedingungen von YouTube in Konflikt stehen können.

Hintergrund

Dies ist ein Problem, auf das ich bei der jüngsten Entwicklung persönlicher Apps gestoßen bin. Da die Live-Verbreitung von YouTube jeden Tag aktiv ist, möchten Sie häufig die neuesten Informationen zur Live-Verteilung für diesen Kanal abrufen, während Sie über eine Kanal-ID verfügen. Beim Versuch, die neuesten Live-Verteilungsinformationen mithilfe der YouTube-Daten-API abzurufen, treten jedoch die folgenden zwei Probleme auf.

  1. Abrufen der gesamten Kanalinformationen Auch wenn Sie versuchen, das neueste Kanalvideo aus der Ressource "Kanäle" abzurufen, sind die Informationen zur Live-Verteilung (Informationen während der Live-Verteilung oder zur Veröffentlichung geplant) nicht enthalten. (Derzeit ab Mai 2020)
  2. Wenn Sie eine Suchressource mit einer Kanal-ID verwenden, wird diese wie ein Schreibvorgang behandelt, sodass sie Dutzende Male mehr kostet als die Liste anderer Informationserfassungsvorgänge (https://developers.google). .com / youtube / v3 / Erste Schritte? hl = ja) wird verbraucht.

Da es keinen Sinn macht, wenn Sie das Vorhandensein oder Fehlen von Live-Verteilungsinformationen nicht häufig abrufen und aktualisieren, wird durch die Verwendung der Suchressource bald die Kontingentkostenverteilung aufgehoben, die für einen Tag verwendet werden kann. Wenn es andererseits eine Möglichkeit gibt, die Live-Übermittlungs-ID "videoId" abzurufen, können Sie die "videoId" angeben, um zu geringen Quotenkosten auf die Live-Übermittlungsinformationen aus der Ressource "videos" zuzugreifen. Daher ist es erforderlich, die neueste Live-Distributions-ID des Kanals "videoId" abzurufen, ohne die YouTube-Daten-API zu verwenden.

Methode (Ruby)

Es wird möglicherweise nicht viel verwendet, aber wenn Sie Live-Übertragungsinformationen in Ihrem Kanal haben, können Sie die unten stehende URL verwenden, um den neuesten Live-Übertragungs-Player auf Ihrer Seite einzubetten.

url = "https://www.youtube.com/embed/live_stream?channel=<Kanal-ID>"

Es ist einfacher zu sprechen, wenn Sie die neueste Live-Distribution anzeigen. Als nächstes müssen Sie die Seite ~~ entfernen und die erforderlichen Informationen videoId abrufen.

content = Net::HTTP.get_response(URI.parse(url)).entity
unless content.match(/watch\?.+/) == nil
  match = content.match(/watch\?.+/)[0]
  videoId = match.sub("watch?v=","").sub("\">","")
end

Da es im Grunde genommen in Form von "watch? V = " auf YouTube-Seiten und URLs geschrieben ist, können Sie die Methoden "match" und "sub" aus dem erhaltenen "Inhalt" verwenden, um "videoId" zu erhalten. Leicht zu haben. (Danke an YouTube, das es richtig gepflegt hat) Nachdem Sie die Video-ID haben, können Sie die Ressource "Videos (Videos)" der YouTube-Daten-API verwenden, um den Verteilungsstatus und die Verteilungszeit abzurufen.

Referenz (Methode in PHP)

https://stackoverflow.com/questions/58040154/how-to-get-live-video-id-from-from-youtube-channel-html

Recommended Posts

So erhalten Sie die neueste Live-Übermittlungs-ID für einen Kanal ohne Verwendung der YouTube-Daten-API
So geben Sie Array-Werte ohne Verwendung einer for-Anweisung aus
So erhalten Sie den Inhalt von Map mithilfe des for-Anweisungsmemorandums
[Java] Wie man mit der String-Klasse an die Spitze eines bestimmten Strings kommt
So erhalten Sie die ID eines Benutzers, der sich in Swift bei Firebase authentifiziert hat
[Java] So erhalten Sie mithilfe von Stream auf einfache Weise die längste Zeichenfolge von ArrayList
[Für Anfänger] So bedienen Sie die Stream-API nach Java 8
Wie erstelle ich einen MOD für Slay the Spire?
[Swift] So erhalten Sie die Firebase-Dokument-ID
SDWebImage: So löschen Sie den Cache für eine bestimmte UIImageView
[Ein Muss für einen Java-Ingenieurlehrling] Verwendung der Stream-API
So installieren Sie JDK 8 unter Windows ohne Verwendung des Installationsprogramms
So verbinden Sie eine Tabelle ohne DBFlute und SQL
Jetzt ist es an der Zeit, mit der Stream-API zu beginnen
[jsoup] So erhalten Sie die gesamte Dokumentation
So spielen Sie eine MIDI-Datei mit der Java Sound API ab
So erstellen Sie eine JAR-Datei und eine War-Datei mit dem Befehl jar
So erstellen Sie mit SPRING INITIALIZR einen Hinadan für ein Spring Boot-Projekt
Einfache Möglichkeit zum Erstellen einer Zuordnungsklasse bei Verwendung der API
So erhalten Sie die ID des automatisch inkrementierten PRIMAY-Schlüssels in MyBatis
[Für Anfänger] So erhalten Sie den Namen der Ruby-Eisenbahnlinie
So überprüfen Sie den Inhalt der Java-Zeichenfolge mit fester Länge
Wie man einen revolutionären Diamanten mit Java für Aussage macht wwww
[java8] Um die Stream-API zu verstehen
So konfigurieren Sie Hochverfügbarkeit (HA), ohne dass ein R3 Corda Load Balancer von Drittanbietern erforderlich ist
Zurückgeben eines Werts vom Modell an den Controller mithilfe des [Swift5] -Protokolls
Eine Geschichte, der ich beim Testen der API mit MockMVC verfallen war
Versuchen Sie, mithilfe der API eine Karte von Jave an Trello auszustellen oder zu erhalten
So konvertieren Sie ein Array von Strings mit der Stream-API in ein Array von Objekten
So erhalten Sie das aktuelle Datum als Zeichenfolge im Format JJJJMMTT
So geben Sie registrierten Daten beim Hinzufügen eines neuen Datensatzes die MAX + 1-ID
So ermitteln Sie den absoluten Pfad eines in Java ausgeführten Verzeichnisses
[Java] Generieren Sie mithilfe der Stream-API eine verengte Liste aus mehreren Listen
So führen Sie einen Vertrag mit web3j aus
So sortieren Sie eine Liste mit Comparator
Datenverarbeitung mit der Stream-API von Java 8
Versuchen Sie es mit der Stream-API in Java
So erstellen Sie ein Maven-Repository für 2020
[Java] So erhalten Sie das aktuelle Verzeichnis
So erhalten Sie das Datum mit Java
Ich habe versucht, die Stream-API zusammenzufassen
So wird die Abfragezeichenfolge bei Verwendung von PreparedStatement in JDBC tatsächlich ausgegeben
So erhalten Sie Artikel mithilfe der Nachrichten-API, der New York Times-API, des Wikipedia-Edelsteins usw.
So spielen Sie eine MIDI-Datei mit der Java Sound API ab (geben Sie das zu verwendende MIDI-Gerät an)
[Swift] So generieren Sie eine ID, um eine bestimmte Sache eindeutig zu identifizieren (mithilfe der UUID)
[Java] So erhalten Sie HashMap-Elemente per Schleifensteuerung mithilfe der erweiterten for-Anweisung
[Ruby] POST-HTTP-Anforderung mithilfe der OAuth-Authentifizierung an die Web-API senden
So erstellen Sie eine eindeutige Datenkombination in der Schienen-Zwischentabelle