[PYTHON] Enregistrer des vues YouTube sur une feuille de calcul à l'aide de Lambda

Il y a des moments où vous souhaitez simplement enregistrer le nombre de vues YouTube, n'est-ce pas? J'étais accro à une vidéo de danse et je me demandais si le nombre de vues était lié à l'exposition médiatique, alors j'ai décidé de l'obtenir, et je viens d'enregistrer le nombre en utilisant l'API de données Youtube, Lambda, Cloud Watch et les feuilles de calcul Google. Je l'ai fait.

Python 3.7, l'environnement est Windows. Pour Mac, lisez la commande, etc.

référence

Je l'ai fait en référence à ce qui suit https://qiita.com/akabei/items/0eac37cb852ad476c6b9 https://qiita.com/masaha03/items/fab8c8411a020ff2bd42

Activer l'API

Activez les API Youtube, Google Drive et Google Spreadsheet.

Préparer une feuille de calcul

Préparez une feuille de calcul. (Cette fois, le nom de la feuille est créé par défaut)

Obtenez des vues Youtube et écrivez sur des feuilles de calcul

Écrivez le nombre de vues et de commentaires sur la feuille de calcul. La différence entre le nombre de lectures et le nombre de commentaires étant définie du côté de la feuille de calcul, laissez ce champ vide lors de l'écriture.

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()
    #Identifiant vidéo YouTube que vous souhaitez obtenir
    YOUTUBE_MOVIE_ID = 'ID vidéo'

  #S'authentifier avec la clé API
    youtube = build('youtube', 'v3', developerKey=YOUTUBE_API_KEY)

    #Obtenez le nombre de vues et le nombre de commentaires (en plus de cela, vous pouvez également obtenir le nombre de likes)
    statistics = youtube.videos().list(part = 'statistics', id = YOUTUBE_MOVIE_ID).execute()['items'][0]['statistics']

    #Il semble que vous deviez continuer à émettre des jetons d'actualisation si vous ne décrivez pas comme suit
    scope = ['https://spreadsheets.google.com/feeds','https://www.googleapis.com/auth/drive']

    #Définissez le nom du fichier json téléchargé
    credentials = ServiceAccountCredentials.from_json_keyfile_name('nom de fichier', scope)

    #Connectez-vous à l'API Google à l'aide de vos informations d'identification OAuth2.
    gc = gspread.authorize(credentials)

    #Variables pour les clés de feuille de calcul partagées[SPREADSHEET_KEY]Stocker dans.
    SPREADSHEET_KEY = const.getSpleadsheetKey()

    #Ouvrez la feuille 1 de la feuille de calcul partagée
    worksheet = gc.open_by_key(SPREADSHEET_KEY).sheet1

    #Heure actuelle
    now_date = datetime.now().strftime("%Y/%m/%d %H:%M")

    #écrire
    worksheet.append_row([now_date,statistics['viewCount'], '', statistics['commentCount']])

En plus du fichier principal, placez le fichier JSON du compte de service, le fichier const.py qui décrit la clé de feuille de calcul à renseigner et la clé API de l'API de données Youtube dans la même hiérarchie.

Définir sur Lambda

Définissez le fichier Python créé dans Lambda.

Paramètres des événements CloudWatch

Déclenché par CloudWatch Events. Cette fois, j'ai pensé que je devrais l'obtenir une fois par heure pour le moment, alors j'essaierai de l'obtenir une fois par heure avec une formule d'horaire. image.png

Cela remplira automatiquement la feuille de calcul. image.png Après avoir été écrit dans la feuille de calcul, j'essaie de calculer automatiquement la différence de formatage et de nombre de lectures à l'aide de GAS, mais cela sera fait à une date ultérieure.

finalement

Cliquez ici pour la vidéo accro. "Crazy F-R-E-S-H Beat" de Snow Man. https://www.youtube.com/watch?v=lfVfBqkk2Vo

Recommended Posts

Enregistrer des vues YouTube sur une feuille de calcul à l'aide de Lambda
Comment générer un nouveau groupe de journaux dans CloudWatch à l'aide de python dans Lambda
Utiliser l'impression dans l'expression lambda Python2
Comment obtenir la valeur du magasin de paramètres dans lambda (en utilisant python)
Obtenez des données Youtube en Python à l'aide de l'API Youtube Data
Scraping de sites Web à l'aide de JavaScript en Python
Dessinez une structure arborescente en Python 3 à l'aide de graphviz
Créer un enregistrement avec des pièces jointes dans KINTONE à l'aide du module de requêtes Python
Créer un fichier GIF en utilisant Pillow en Python
Afficher les avis sur les médicaments à l'aide de listes en Python
Conseils pour utiliser Elastic Search de manière efficace
Créez un fichier MIDI en Python en utilisant pretty_midi
J'ai écrit un analyseur japonais en japonais en utilisant pyparsing.
Environnement enregistré pour l'analyse des données avec Python
Qu'est-ce qu'un chien? Django - Volume d'utilisation des valeurs obtenues à partir de l'URL dans une vue basée sur les classes
Obtenir le nom de fichier dans un dossier à l'aide de glob
Essayez la détection des visages en temps réel à l'aide d'une webcam
Représentation de séquences de Fibonacci à l'aide d'expressions lambda dans différentes langues
Comment exécuter une commande à l'aide d'un sous-processus en Python
Lambda dans VPC ne peut pas envoyer de courrier avec Boto3 même si vous utilisez le point de terminaison VPC pour SES