Es gibt Zeiten, in denen Sie nur die Anzahl der YouTube-Aufrufe aufzeichnen möchten, oder? Ich war süchtig nach einem Tanzvideo und habe mich gefragt, ob die Anzahl der Aufrufe mit der Medienpräsenz zusammenhängt. Deshalb habe ich mich dafür entschieden und die Anzahl nur mithilfe der Youtube-Daten-API, Lambda, Cloud Watch und Google-Tabellen aufgezeichnet. Ich habs gemacht.
Python 3.7, Umgebung ist Windows. Lesen Sie für Mac den Befehl usw.
Ich habe es mit Bezug auf das Folgende gemacht https://qiita.com/akabei/items/0eac37cb852ad476c6b9 https://qiita.com/masaha03/items/fab8c8411a020ff2bd42
Aktivieren Sie die APIs für Youtube, Google Drive und Google Spreadsheet.
Registrieren Sie sich, um GCP zu verwenden Selbst wenn Sie nur die API verwenden, müssen Sie das Projekt auf GCP registrieren. Der Projektname ist beliebig.
API aus API-Bibliothek aktivieren Suchen Sie in der Bibliothek "APIs and Services" nach APIs. Suchen und aktivieren Sie die Youtube-Daten-API, die Google Drive-API und die Google Sheets-API.
Authentifizierungsschlüssel abrufen Erstellen Sie einen Schlüssel aus "Anmeldeinformationen". Die Youtube Data API authentifiziert sich mit dem API-Schlüssel, der Google Drive API und der Google Sheets API mit dem Dienstkonto. Speichern Sie das Dienstkonto als JSON-Datei.
Bereiten Sie eine Tabelle vor. (Diesmal wird der Blattname standardmäßig erstellt.)
Schreiben Sie die Anzahl der Ansichten und Kommentare in die Tabelle. Da der Unterschied zwischen der Anzahl der Wiedergaben und der Anzahl der Kommentare auf der Tabellenkalkulationsseite festgelegt ist, lassen Sie ihn beim Schreiben leer.
import gspread
import json
import const
from datetime import datetime
from googleapiclient.discovery import build
from oauth2client.service_account import ServiceAccountCredentials
def youtube_count(request, context):
YOUTUBE_API_KEY = const.getYoutubeApiKey()
#Youtube Video ID, die Sie erhalten möchten
YOUTUBE_MOVIE_ID = 'Video ID'
#Mit API-Schlüssel authentifizieren
youtube = build('youtube', 'v3', developerKey=YOUTUBE_API_KEY)
#Holen Sie sich die Anzahl der Aufrufe und die Anzahl der Kommentare (zusätzlich können Sie auch die Anzahl der Likes erhalten)
statistics = youtube.videos().list(part = 'statistics', id = YOUTUBE_MOVIE_ID).execute()['items'][0]['statistics']
#Es scheint, dass Sie weiterhin Aktualisierungstoken ausgeben müssen, wenn Sie dies nicht wie folgt beschreiben
scope = ['https://spreadsheets.google.com/feeds','https://www.googleapis.com/auth/drive']
#Legen Sie den Namen der heruntergeladenen JSON-Datei fest
credentials = ServiceAccountCredentials.from_json_keyfile_name('Dateiname', scope)
#Melden Sie sich mit Ihren OAuth2-Anmeldeinformationen bei der Google-API an.
gc = gspread.authorize(credentials)
#Variablen für freigegebene Tabellenkalkulationsschlüssel[SPREADSHEET_KEY]Speichern in.
SPREADSHEET_KEY = const.getSpleadsheetKey()
#Öffnen Sie Blatt 1 der freigegebenen Tabelle
worksheet = gc.open_by_key(SPREADSHEET_KEY).sheet1
#Aktuelle Uhrzeit
now_date = datetime.now().strftime("%Y/%m/%d %H:%M")
#schreiben
worksheet.append_row([now_date,statistics['viewCount'], '', statistics['commentCount']])
Platzieren Sie zusätzlich zur Hauptdatei die JSON-Datei des Dienstkontos, die Datei const.py mit dem auszufüllenden Tabellenkalkulationsschlüssel und den API-Schlüssel der Youtube-Daten-API in derselben Hierarchie.
Legen Sie die erstellte Python-Datei in Lambda fest.
Stellen Sie die Bibliothek auf Lambda-Ebenen ein Es ist ziemlich voll, also schreibe ich einen weiteren Artikel. https://qiita.com/chr36/items/eb6e98f81c8d358ae64c
Lambda einrichten (Die Erstellung eines AWS-Kontos entfällt.) Wählen Sie "Neue Funktion" von Lambda und erstellen Sie eine Funktion. Stellen Sie den oben erstellten Code und die Einstellungsdatei bereit und verknüpfen Sie die registrierten Ebenen.
Zeitzoneneinstellung Es ist erforderlich, die Zeitzone einzustellen, um Datum und Uhrzeit auszugeben. Dieses Mal wird die Zeitzone in der Umgebungsvariablen in "Asien / Tokio" geändert, dies wird jedoch offiziell ** nicht empfohlen **. http://blog.serverworks.co.jp/tech/2019/10/30/lambda-timezone-2/
Andere Einstellungen Es scheint, dass es einige Zeit dauern kann, bis die Youtube-API abgerufen wird. Wenn das Zeitlimit auf 3 Sekunden festgelegt ist, schlägt die Erfassung möglicherweise fehl. Da die Standardeinstellung bei einem Fehler erneut ausgeführt werden soll, kann derselbe Inhalt zweimal aufgezeichnet werden, wenn die Standardeinstellung verwendet wird. Stellen Sie daher die Zeitüberschreitungszeit auf ca. 10 Sekunden ein. Wenn Sie sie nicht benötigen, stellen Sie die einmalige oder einmalige ** Neuausführung ein.
Ausgelöst durch CloudWatch-Ereignisse. Dieses Mal dachte ich, ich sollte es vorerst einmal pro Stunde bekommen, also werde ich versuchen, es einmal pro Stunde mit einer Zeitplanformel zu bekommen.
Dadurch wird die Tabelle automatisch ausgefüllt. Nachdem ich in die Tabelle geschrieben habe, versuche ich, den Unterschied in Formatierung und Wiedergabezahl mithilfe von GAS automatisch zu berechnen. Dies wird jedoch zu einem späteren Zeitpunkt erfolgen.
Klicken Sie hier für das süchtige Video. Schneemanns "Crazy F-R-E-S-H Beat". https://www.youtube.com/watch?v=lfVfBqkk2Vo
Recommended Posts