[PYTHON] Erhalten Sie Kommentare und Abonnenten mit der YouTube-Daten-API

Was ich machen wollte

Ermitteln Sie für eine Gruppe von Benutzern, die Kommentare auf einen bestimmten Kanal verschieben, welchen Kanal jeder Benutzer registriert hat. Ist es möglich, den Kundenstamm auf diese Weise zu schätzen? Annahme. Wenn mehrere Benutzer denselben Kanal registriert haben, ist es möglich, dass der Kundenstamm diejenigen sind, die an den Themen dieses Kanals interessiert sind. (Es wurde nicht überprüft, ob der Kundenstamm geschätzt werden kann, daher werde ich ihn nach Möglichkeit irgendwo wieder veröffentlichen.)

Erklären

  1. So erhalten Sie Kommentare zu Videos, die auf einem bestimmten Kanal veröffentlicht wurden
  2. So registrieren Sie den Kanal für den angegebenen Kanal

Ich habe es schon einmal erklärt, also erkläre es diesmal nicht.

Erläuterung

1. So erhalten Sie Kommentare zu Videos, die auf einem bestimmten Kanal veröffentlicht wurden

import requests
import pandas as pd

def get_comment_info(channel_id, pageToken):
    comment_url = "https://www.googleapis.com/youtube/v3/commentThreads"
    param = {
        'key': 【Browser Key】
        , 'allThreadsRelatedToChannelId': channel_id
        , 'part': 'replies, snippet'
        #Wenn Sie den Antwortbaum nicht benötigen, benötigen Sie keine Antworten
        , 'maxResults': '50'
        , 'pageToken': pageToken
    }

    req = requests.get(comment_url, params=param)
    return req.json()

comment_df = pd.DataFrame([]*3, columns=["video_id", "author_name", "channel_id"])

for comment_thread in req["items"]:
    video_id = comment_thread["snippet"]["videoId"]
    
    author_name = comment_thread["snippet"]["topLevelComment"]["snippet"]["authorDisplayName"]
    author_channel = comment_thread["snippet"]["topLevelComment"]["snippet"]["authorChannelId"]["value"]
    comment_df = comment_df.append(pd.DataFrame([[video_id, author_name, author_channel]], columns=["video_id", "author_name", "channel_id"]))
    
    if "replies" in comment_thread and "comments" in comment_thread["replies"]:
        for replies in comment_thread["replies"]["comments"]:
            author_name = replies["snippet"]["authorDisplayName"]
            author_channel = replies["snippet"]["authorChannelId"]["value"]
            comment_df = comment_df.append(pd.DataFrame([[video_id, author_name, author_channel]], columns=["video_id", "author_name", "channel_id"]))

Die Punkte sind die folgenden zwei

Im obigen Beispiel werden nur der Kanalname und die Kanal-ID der kommentierten Person erfasst. Wenn Sie jedoch den Text des Kommentars abrufen möchten, können Sie ihn unten abrufen.

Bitte überprüfen Sie dieses Dokument für Details oder für eine etwas andere Verwendung. Diesmal geben wir beispielsweise channel_id an, um Kommentare zu allen auf diesem Kanal geposteten Videos abzurufen. Es ist jedoch auch möglich, nur bestimmte Videos anzugeben. https://developers.google.com/youtube/v3/docs/commentThreads?hl=ja

2. So registrieren Sie den Kanal für den angegebenen Kanal

def get_subscription_info(channel_id, pageToken):
    subscription_url = 'https://www.googleapis.com/youtube/v3/subscriptions'
    param = {
        'key': 【Browser Key】
        , 'channelId': channel_id
        , 'part': 'snippet'
        , 'maxResults': '50'
        , 'pageToken': pageToken
    }

    req = requests.get(subscription_url, params=param)
    return req.json()

subscription_df = pd.DataFrame([]*3, 
    columns=["channel_id", "subscript_channel_name", "subscript_channel_id"])

#Das Übergeben einer leeren Zeichenfolge an pageToken entspricht der Angabe von nichts
# 1.Wenn Sie den Code ausführen, den Sie eingegeben haben_id_list = comment_df["channel_id"].unique()werden
for channel_id in channel_id_list:

    pageToken = ""
    while True:
        req = get_subscription_info(channel_id, pageToken)

        if "items" in req:
            for item in req["items"]:
                subscript_channel_name = item["snippet"]["title"]
                subscript_channel_id = item["snippet"]["resourceId"]["channelId"]
                subscription_df = subscription_df.append(
                    pd.DataFrame(
                        [[channel_id, subscript_channel_name, subscript_channel_id]]
                        , columns=["channel_id", "subscript_channel_name", "subscript_channel_id"]
                    )
                )


        #Wenn die Anzahl der verbleibenden Elemente maxResults überschreitet, wird nextPageToken zurückgegeben.
        if "nextPageToken" in req:
            pageToken = req["nextPageToken"]
            print(channel_id, pageToken)
        else:
            break

Verwenden Sie die Abonnement-API mit japanischer Übersetzung als Unterkategorie https://developers.google.com/youtube/v3/docs/subscriptions?hl=ja

In Bezug auf die Verwendung habe ich zuvor erklärt, wie man eine Video-ID von der Wiedergabelisten-ID erhält, aber die Atmosphäre ist ähnlich. https://qiita.com/miyatsuki/items/c221b48830db2b0a9eba#12-%E3%83%97%E3%83%AC%E3%82%A4%E3%83%AA%E3%82%B9%E3%83%88id%E3%81%8B%E3%82%89%E5%8B%95%E7%94%BB%E3%81%AEid%E3%82%92%E5%8F%96%E5%BE%97

Speziell,

Recommended Posts

Erhalten Sie Kommentare und Abonnenten mit der YouTube-Daten-API
Erhalten Sie Kommentare auf Youtube Live mit [Python] und [Pytchat]!
Holen Sie sich die Anzahl der Youtube-Abonnenten
Holen Sie sich Youtube-Daten in Python mithilfe der Youtube-Daten-API
Holen Sie sich Urlaub mit der Google Kalender-API
Holen Sie sich Artikelbesuche und Likes mit Qiita API + Python
Holen Sie sich Aktienkursdaten mit Quandl API [Python]
Holen Sie sich den Betreff und den Text von Google Mail mit der Python- und Google Mail-API
[Python] Mit der API von Qiita erhalten Sie Benutzer- und Artikelinformationen
[CGI] Führen Sie das Server-Python-Programm mit Vue.js + axios aus und rufen Sie die Ausgabedaten ab
Rufen Sie die API mit python3 auf.
Holen Sie sich ein Ranking mit Rakuten API
Versuchen Sie, mit Python schnell und einfach auf die Twitter-API zuzugreifen
Erhalten Sie Daten mithilfe der API des Ministeriums für innere Angelegenheiten und Kommunikation
Befreien Sie sich mit Python und regulären Ausdrücken von schmutzigen Daten
Löse das Spiralbuch (Algorithmus und Datenstruktur) mit Python!
Optimieren Sie das Sammeln von Informationen mit Twitter API und Slack Bots
Holen Sie sich YouTube Live-Chat-Felder in Echtzeit mit API
Abrufen von Daten aus der Analyse-API mit Google API Client für Python
Holen Sie sich zusätzliche Daten zu LDAP mit Python (Writer und Reader)
Machen Sie ein BLE-Thermometer und ermitteln Sie die Temperatur mit Pythonista3
Holen Sie sich das Wetter mit API und lassen Sie Raspberry Pi sprechen!
[Einführung in Python] So erhalten Sie Daten mit der Funktion listdir
Spielen Sie mit der YouTube Data API v3 mit dem Google API Python Client
Holen Sie sich den Kauf- und Verkaufspreis der virtuellen Währung mit der API von Zaif Exchange und erstellen Sie ein Diagramm
Abrufen von Salesforce-Daten mithilfe der REST-API
Ermitteln Sie die Anzahl der PVs von Qiita-Artikeln, die Sie mit API veröffentlicht haben
Holen Sie sich die stärkste Umgebung mit VS Code, Remote-Containern und Remote-Docker-Daemon
Holen Sie sich die vollständigen Tick-Daten für Bitflyer
Erhalten Sie Conversions und Einnahmen mit der Google Analytics-API und melden Sie sich bei Slack
So erhalten Sie mithilfe der Mastodon-API Follower und Follower von Python
Holen Sie sich das Wetter mit Python-Anfragen
Holen Sie sich das Wetter mit Python-Anfragen 2
[Python] Mit DataReader Wirtschaftsdaten abrufen
Holen Sie sich Daten von VPS MySQL mit Python 3 und SQL Alchemy
Gewähren Sie mit dem Befehl curl ein Zugriffstoken und POSTEN Sie die API
Abrufen von Amazon-Daten mit Keep API # 1 Abrufen von Daten
[Python] Ich habe versucht, mithilfe der YouTube-Daten-API verschiedene Informationen abzurufen!
Ich habe versucht, die statistischen Daten der neuen Corona mit Python abzurufen und zu analysieren: Daten der Johns Hopkins University
Sammle Videoinformationen zu "Singen mit XX Personen" [Python] [Youtube Data API]
So ermitteln Sie mit Python den Unterschied zwischen Datum und Uhrzeit in Sekunden
Ich habe versucht, den Authentifizierungscode der Qiita-API mit Python abzurufen.
[Persönliches Memo] Holen Sie sich Daten im Web und machen Sie daraus einen DataFrame
Codebeispiel zum Abrufen von oauth_token und oauth_token_secret der Twitter-API in Python 2.7
Senden und Empfangen von Bilddaten als JSON in Python über das Netzwerk
Lesen Sie das Diagrammbild mit OpenCV und ermitteln Sie die Koordinaten des Endpunkts des Diagramms
Erhalten Sie Nachrichten von jedem der drei großen Mobilfunkunternehmen mithilfe von Django und der Nachrichten-API
Ich habe versucht, die Filminformationen der TMDb-API mit Python abzurufen
Erhalten und schätzen Sie die Form des Kopfes mit Dlib und OpenCV mit Python
Zeichnen Sie mit Pythons Matplotlib mehrere Karten und Daten gleichzeitig
Holen Sie sich mit Python zusätzliche Daten zu LDAP
Datenpipeline-Aufbau mit Python und Luigi
Greifen Sie mit Requests auf die Docker Remote API zu
[Hinweis] Mit Python Daten von PostgreSQL abrufen
Holen Sie sich Lebensmitteldaten mit Amazon API (Python)
Holen Sie sich die Spaltenliste und Datenliste von CASTable
Ich habe versucht, YOUTUBE Data API V3 zu verwenden
[Python] Ruft den Variablennamen mit str ab
Holen Sie sich Daten von Cloudant mit Bluemix-Kolben
Erhalten Sie Parlamentsprotokolle über API
Holen Sie sich Google Fit API-Daten in Python