[GO] [Python] Holen Sie sich alle Kommentare mit Youtube Data Api

Einführung

Ich schaue oft auf Youtube, aber wenn Sie durch die Kommentare auf der Youtube-Site scrollen, werden die folgenden Daten bis zu einem gewissen Grad erfasst und angezeigt. Wenn es sich um ein beliebtes Video handelt, gibt es mehr als 1000 Kommentare, aber es ist schwierig, alle zu sehen. Sie sehen also ungefähr 100 von oben (in der Reihenfolge der Sortierbewertung), die Sie tatsächlich sehen.

Ich war beeindruckt von dem Video von "[Wie man GACKT gewinnt] über Migration nach Übersee, Lebensweise, Geschäft, Freiwillige - Youtube", also bitte kommentieren Ich wollte sie alle sehen. Also dachte ich, wenn ich die Youtube-Daten-API verwenden würde, könnte ich alle Kommentare abrufen und sie dann alle auf einmal sehen, also habe ich es versucht.

Umfrage

API-Schlüsselaktivierung

Ich benutze zum ersten Mal die Youtube-Daten-API. Um die Youtube-Daten-API verwenden zu können, musst du den API-Schlüssel aktivieren. Daher habe ich auf die folgende Website verwiesen. Kommentare zu Youtube Live mithilfe der Youtube-Daten-API abrufen

Google Colaboratory Dieses Mal wollte ich es jedem leicht machen, Kommentare zu erhalten, und ich wollte "Google Colaboratory" verwenden, das sofort verwendet werden kann, wenn ich ein Google-Konto habe. Deshalb wollte ich Python als Programmiersprache verwenden.

Die folgende Website entsprach genau Ihrer Anfrage. YouTube-Kommentare in Python abrufen

Erhalten Sie Kommentare

Ich habe Google Colaboratory geöffnet, "getYouTubeComments.py" von der oben genannten Website mit Kopieren und Einfügen eingefügt, den API-Schlüssel und die VIDEO-ID neu geschrieben und ausgeführt. Ich konnte einen Kommentar erhalten, aber wenn ich die Kommentare der Zielaktion vergleiche, fehlt etwas. Der Kommentar enthält einen untergeordneten Kommentar, aber dieses Programm konnte den untergeordneten Kommentar nicht abrufen.

Holen Sie sich untergeordnete Kommentare

Wie bekomme ich Kommentare von Kindern? Ich kann immer noch die Anzahl der Antworten erhalten, daher verstehe ich, dass ich die untergeordneten Kommentare erhalten sollte, wenn die Anzahl der Antworten 1 oder mehr beträgt. Ich habe die folgende Site gesucht und gefunden, und die Programmiersprache ist PHP, aber alles, was ich wissen muss, ist, wie es funktioniert. Alle YouTube-Kommentare abrufen - Sleepy Porridge

Bei untergeordneten Kommentaren können Sie die übergeordnete ID (parentId) als Parameter an die Kommentarmethode übergeben.

Kommentar https://www.googleapis.com/youtube/v3/commentThreads
Untergeordneter Kommentar https://www.googleapis.com/youtube/v3/comments

Spezifikation

Der Unterschied zum referenzierten Programm besteht darin, dass Sie den Benutzernamen und die untergeordneten Kommentare durch Zuweisen von Seriennummern abrufen können.

Die Zeilenumbrüche in den Kommentaren werden am Tabulatorbegrenzer durch Leerzeichen halber Breite ersetzt. Das Kommentarformat ist "HTML" oder "Nur-Text", aber es ist "Nur-Text". Die Reihenfolge ist "Relevanz" in absteigender Reihenfolge der Bewertung. Untergeordnete Kommentare sind in keiner bestimmten Reihenfolge (selbst wenn Sie die Reihenfolge angeben, stimmen sie nicht mit der Video-Site überein). Da die übergeordnete Seriennummer 4-stellig und die untergeordnete Seriennummer 3-stellig ist, sollten Sie die Anzahl der anzuzeigenden Ziffern ändern und erhöhen, wenn Sie Kommentare erhalten möchten, die die Anzahl der Ziffern überschreiten.

000X	(Kommentar)(Gleiche Nummer) (Benutzername) (Antwortnummer)
000X-00X	(Kinderkommentar)(Gute Nummer) (Benutzername)

wie benutzt man

Öffnen Sie Google Colaboratory, fügen Sie "getYouTubeComments.py" von der oben genannten Website mit Kopieren und Einfügen ein, schreiben Sie den API-Schlüssel und die VIDEO-ID neu und führen Sie sie aus.

Geben Sie API_KEY ein

Der API-Schlüssel wird mit den Anmeldeinformationen für die YouTube-API-API-API-Aktivierung ausgegeben. Schreiben Sie daher den API_KEY des Programms in den ausgegebenen API-Schlüssel um.

Geben Sie die Video-ID ein

Im Fall von "https://www.youtube.com/watch?v=oeJ_b0iG9lM" ist "oeJ_b0iG9lM" die Video-ID. Schreiben Sie daher die Video-ID des Zielvideos mit "Video-ID eingeben" des Programms neu.

Programm

getYouTubeComments.py


import requests
import json

URL = 'https://www.googleapis.com/youtube/v3/'
#Geben Sie hier API KEY ein
API_KEY = 'Geben Sie API KEY ein'
#Geben Sie hier Ihre Video-ID ein
VIDEO_ID = 'Geben Sie die Video-ID ein'

def print_video_comment(no, video_id, next_page_token):
  params = {
    'key': API_KEY,
    'part': 'snippet',
    'videoId': video_id,
    'order': 'relevance',
    'textFormat': 'plaintext',
    'maxResults': 100,
  }
  if next_page_token is not None:
    params['pageToken'] = next_page_token
  response = requests.get(URL + 'commentThreads', params=params)
  resource = response.json()

  for comment_info in resource['items']:
    #Kommentar
    text = comment_info['snippet']['topLevelComment']['snippet']['textDisplay']
    #Gute Nummer
    like_cnt = comment_info['snippet']['topLevelComment']['snippet']['likeCount']
    #Anzahl der Antworten
    reply_cnt = comment_info['snippet']['totalReplyCount']
    #Nutzername
    user_name = comment_info['snippet']['topLevelComment']['snippet']['authorDisplayName']
    # Id
    parentId = comment_info['snippet']['topLevelComment']['id']
    print('{:0=4}\t{}\t{}\t{}\t{}'.format(no, text.replace('\n', ' '), like_cnt, user_name, reply_cnt))
    if reply_cnt > 0:
      cno = 1
      print_video_reply(no, cno, video_id, next_page_token, parentId)
    no = no + 1

  if 'nextPageToken' in resource:
    print_video_comment(no, video_id, resource["nextPageToken"])

def print_video_reply(no, cno, video_id, next_page_token, id):
  params = {
    'key': API_KEY,
    'part': 'snippet',
    'videoId': video_id,
    'textFormat': 'plaintext',
    'maxResults': 50,
    'parentId': id,
  }

  if next_page_token is not None:
    params['pageToken'] = next_page_token
  response = requests.get(URL + 'comments', params=params)
  resource = response.json()

  for comment_info in resource['items']:
    #Kommentar
    text = comment_info['snippet']['textDisplay']
    #Gute Nummer
    like_cnt = comment_info['snippet']['likeCount']
    #Nutzername
    user_name = comment_info['snippet']['authorDisplayName']

    print('{:0=4}-{:0=3}\t{}\t{}\t{}'.format(no, cno, text.replace('\n', ' '), like_cnt, user_name))
    cno = cno + 1

  if 'nextPageToken' in resource:
    print_video_reply(no, cno, video_id, resource["nextPageToken"], id)

#Holen Sie sich alle Kommentare
video_id = VIDEO_ID
no = 1
print_video_comment(no, video_id, None)

Ausführungsergebnis

Wenn Sie den Videokommentar von "[Wie man GACKT gewinnt] über Migration nach Übersee, Lebensweise, Geschäft, Freiwillige - Youtube" erhalten, ist dies wie folgt. Werden.

Beispiel für die Erfassung von Kommentaren


0006 Nicht nur der Inhalt, sondern ich habe auch gelernt, wie man spricht und zuhört. Wir werden unser Bestes tun, um den Kindern zu vermitteln, dass die Erfahrung, Herausforderungen anzunehmen, ein unersetzlicher Schatz ist. 622 Ein Mann versuchte es mit einer Klasse 9
0006-001 Ich bin zutiefst bewegt, es hier im Kommentarbereich zu sehen. Es scheint heute eine gute Sache zu geben 0 Akari Hoshino
      ⋮
0006-008 Ich lerne immer 14 Wasser.
0006-009 Echtes Gras 16
0007 Achan kann die Geschichte gut anhören. Ich antworte oft mit kurzen Worten wie "Hey" oder "Ist es Niigata?"

Schließlich

Der Adventskalender kommt bald. Wir suchen auch in diesem Jahr nach Artikeln für "Visual Basic Adventskalender 2020". Es scheint, dass Sie es mit Visual Basic oder Excel anstelle von Python versuchen können.

Recommended Posts

[Python] Holen Sie sich alle Kommentare mit Youtube Data Api
Holen Sie sich Youtube-Daten in Python mithilfe der Youtube-Daten-API
[Python] Ich habe versucht, mithilfe der YouTube-Daten-API verschiedene Informationen abzurufen!
Holen Sie sich Youtube-Daten mit Python
Holen Sie sich LEAD-Daten mit der REST-API von Marketo in Python
[Python] Abrufen von Insight-Daten mithilfe der Google My Business-API
Erhalten Sie Kommentare und Abonnenten mit der YouTube-Daten-API
Abrufen von Salesforce-Daten mithilfe der REST-API
Datenerfassung mit Python Googlemap API
Abrufen von Amazon-Daten mit Keep API # 1 Abrufen von Daten
Spielen Sie mit der YouTube Data API v3 mit dem Google API Python Client
Python> Wörterbuch> Werte ()> Alle Werte mithilfe von Werten abrufen ()
Ich habe versucht, YOUTUBE Data API V3 zu verwenden
Holen Sie sich Google Fit API-Daten in Python
Erstellen einer Google-Tabelle mit der Python / Google Data-API
Holen Sie sich die Bild-URL mithilfe der Flickr-API in Python
Holen Sie sich Aktienkursdaten mit Quandl API [Python]
Datenbereinigung mit Python
So erhalten Sie Artikeldaten mithilfe der Qiita-API
Erhalten Sie Kommentare auf Youtube Live mit [Python] und [Pytchat]!
Laden Sie Videos mit der YouTube-API hoch
Datenanalyse mit Python-Pandas
Ich habe versucht, Videos mit der Youtube Data API (Anfänger) zu suchen.
Erhalten Sie Daten mithilfe der API des Ministeriums für innere Angelegenheiten und Kommunikation
Abrufen von Daten aus der Analyse-API mit Google API Client für Python
[Python] Ich habe versucht, Daten mit der API von Wikipedia zu sammeln
Holen Sie sich LeapMotion-Daten in Python.
[Python3] Google übersetzt Google Übersetzung ohne Verwendung von API
Versuchen Sie es mit der Pleasant-API (Python / FastAPI).
[Python] Mit DataReader Wirtschaftsdaten abrufen
Datenerfassungsnotiz mit der Backlog-API
Python Holen Sie sich das kommende Wetter von der Wetter-API
Versuchen Sie es mit der Aktions-API von Python argparse
Führen Sie Ansible über Python mithilfe der API aus
Holen Sie sich Daten von Twitter mit Tweepy
So erhalten Sie mithilfe der Mastodon-API Follower und Follower von Python
Sammeln Sie Produktinformationen und Prozessdaten mit der Rakuten-Produktsuch-API [Python].
Holen Sie sich mit Python zusätzliche Daten zu LDAP
Mausbedienung mit Windows-API in Python
Versuchen Sie es mit der Wunderlist-API in Python
[Hinweis] Mit Python Daten von PostgreSQL abrufen
Holen Sie sich Suica Balance in Python (mit libpafe)
Sammle Videoinformationen zu "Singen mit XX Personen" [Python] [Youtube Data API]
Versuchen Sie, die Kraken-API mit Python zu verwenden
Holen Sie sich Lebensmitteldaten mit Amazon API (Python)
Erhalten Sie E-Mails mithilfe der Google Mail-API in Java
Tweet mit der Twitter-API in Python
Ich habe versucht, die UnityCloudBuild-API von Python zu verwenden
[Python] Verschiedene Datenverarbeitung mit Numpy-Array
[Python] Python-Paketinformationen mit der PyPI-API abrufen
FX-Datenerfassung mit der OANDA REST-API
Kenntnis der Verwendung der Aurora Severless Data API
Rufen Sie Daten über die Salesforce-API (Bulk-API) in Python ab und laden Sie sie in BigQuery
Holen Sie sich mit Python Zeitreihendaten von k-db.com
Vorgehensweise zur Verwendung der WEG-API von TeamGant (mit Python)
Versuchen Sie es mit der BitFlyer Ligntning API in Python
Ich habe versucht, CloudWatch-Daten mit Python abzurufen