[PYTHON] J'ai fait un calendrier qui met à jour automatiquement le calendrier de distribution de Vtuber (édition Google Calendar)

introduction

Cet article est une continuation de l'article ci-dessous.

J'ai créé un calendrier qui met automatiquement à jour le calendrier de distribution de Vtuber

La dernière fois, j'ai reçu des informations vidéo de YouTube, donc cette fois, j'enregistrerai le calendrier dans Google Agenda en fonction des informations vidéo obtenues.

environnement

Données à préparer

Méthode

Cette fois, nous enregistrerons le calendrier dans Google Agenda, vous aurez donc bien sûr besoin du calendrier de la destination d'inscription. Par conséquent, vérifiez l'ID de calendrier à l'avance dans les paramètres de calendrier.

Après cela, j'ai pu facilement m'inscrire au calendrier en suivant simplement l 'exemple officiel.

1. Activez l'API Google Calendar

Appuyez simplement sur le bouton de la page d'exemple. En même temps, enregistrez credentials.json dans le répertoire sur lequel vous travaillez.

2. Installation des bibliothèques requises

Exécutez la commande exactement comme elle est écrite.

pip install --upgrade google-api-python-client google-auth-httplib2 google-auth-oauthlib

3. Enregistrer un rendez-vous dans le calendrier

Enregistrez l'événement dans le calendrier en fonction de l'exemple de code.

from __future__ import print_function
import pickle
import os.path
from googleapiclient.discovery import build
from google_auth_oauthlib.flow import InstalledAppFlow
from google.auth.transport.requests import Request

SCOPES = ['https://www.googleapis.com/auth/calendar']

def insert_event(event, calendar_id):
    creds = None
    if os.path.exists('token.pickle'):
        with open('token.pickle', 'rb') as token:
            creds = pickle.load(token)
    if not creds or not creds.valid:
        if creds and creds.expired and creds.refresh_token:
            creds.refresh(Request())
        else:
            flow = InstalledAppFlow.from_client_secrets_file(
                'credentials.json', SCOPES)
            creds = flow.run_local_server(port=0)
        with open('token.pickle', 'wb') as token:
            pickle.dump(creds, token)

    service = build('calendar', 'v3', credentials=creds)

    event = {
        'summary': event.summary,
        'description': event.description,
        'start': {
            'dateTime': event.start_datetime,
            'timeZone': 'Japan',
        },
        'end': {
            'dateTime': event.end_datetime,
            'timeZone': 'Japan',
        }
    }
    event = service.events().insert(calendarId=calendar_id, body=event).execute()
    return event['id']

Après cela, transmettez les informations à enregistrer dans le calendrier à partir des informations vidéo acquises la dernière fois et de l'ID de calendrier confirmé en premier à cette fonction, et vous avez terminé. J'ai décidé de ne transmettre que les informations minimales pour être inscrit dans le calendrier en tant qu'événement.

--summary: Titre de la vidéo --description: URL de la vidéo --https: //www.youtube.com/watch? v = + ID vidéo --start_datetime: heure de début de livraison

Si vous notez l'ID de la valeur de retour, vous pouvez modifier le calendrier enregistré, afin de pouvoir répondre aux modifications du délai de livraison et du titre de la vidéo.

Recommended Posts

J'ai fait un calendrier qui met à jour automatiquement le calendrier de distribution de Vtuber (édition Google Calendar)
J'ai fait un calendrier qui met à jour automatiquement le calendrier de distribution de Vtuber
Je veux un bot Slack qui calcule et me dit le salaire d'un emploi à temps partiel à partir du calendrier de Google Agenda!
J'ai fait un bot mou qui m'informe de la température
J'ai fait un programme qui calcule automatiquement le zodiaque avec tkinter
J'ai créé un outil pour sauvegarder automatiquement les métadonnées de l'organisation Salesforce
[Python] J'ai créé un code de scraping web qui acquiert automatiquement le titre de l'actualité et l'URL de Nihon Keizai Shimbun.
J'ai créé un système qui décide automatiquement de s'exécuter demain avec Python et l'ajoute à Google Agenda.
J'ai créé une application Twitter qui décrypte les caractères de pré-connexion avec heroku (échec)
[Python / C] J'ai créé un appareil qui fait défiler sans fil l'écran d'un PC à distance.
J'ai fait une fonction pour vérifier le modèle de DCGAN
J'ai fait une image ponctuelle de l'image d'Irasutoya. (partie 1)
J'ai créé un programme qui résout la recherche d'erreur en quelques secondes
J'ai créé un robot Line qui devine le sexe et l'âge d'une personne à partir de l'image
Racler le calendrier de Hinatazaka 46 et le refléter dans Google Agenda
J'ai étudié la méthode X-means qui estime automatiquement le nombre de clusters
J'ai essayé l'analyse d'image du livre de score de tir à l'arc (un livret qui enregistre les résultats des coups). (Google Colaboratory)
J'ai fait une commande pour afficher un calendrier coloré dans le terminal
[Kaggle] J'ai fait une collection de problèmes en utilisant le didacticiel Titanic
J'ai créé une application Web qui trace le journal de vie enregistré sur Google Home comme un diagramme de Gantt.
J'ai fait une note du colaboratoire Google qui peut utiliser Spleeter facilement.
J'ai écrit un lecteur de corpus qui lit les résultats de l'analyse MeCab
L'histoire du développement d'une application WEB qui génère automatiquement des copies de capture [MeCab]
J'ai fait une simple minuterie qui peut être démarrée depuis le terminal
J'ai fait GAN avec Keras, donc j'ai fait une vidéo du processus d'apprentissage.
J'ai créé un konoha de bibliothèque qui fait passer le tokenizer à une belle sensation
J'ai fait un programme pour vérifier la taille d'un fichier avec Python
J'ai fait une erreur en récupérant la hiérarchie avec MultiIndex of pandas
[Python] Note: Fonction auto-conçue pour trouver la zone de distribution normale
J'ai créé une fonction pour voir le mouvement d'un tableau à deux dimensions (Python)
J'ai fait un outil pour estimer le temps d'exécution de cron (+ débuts de PyPI)
J'ai créé un LINE BOT qui renvoie une image de riz terroriste en utilisant l'API Flickr
L'histoire de l'adresse IPv6 que je souhaite conserver au minimum
Autour de l'authentification de PyDrive2, un package pour faire fonctionner Google Drive avec Python
J'ai créé une commande appdo pour exécuter des commandes dans le contexte de l'application
Avec LINEBot, j'ai fait une application qui m'informe de "l'heure du bus"
J'ai créé un Linebot qui m'informe des sites d'évacuation à proximité sur AWS
[Python] Un programme qui calcule le nombre de mises à jour des enregistrements les plus élevés et les plus faibles
[Discode Bot] J'ai essayé de créer un Bot qui me dit la valeur de race de Pokemon
L'histoire de la création d'un Line Bot qui nous raconte le calendrier de la programmation du concours
J'ai fait un script pour enregistrer la fenêtre active en utilisant win32gui de Python
J'ai fait un simple lecteur RSS ~ Edition C ~
J'ai créé et publié une image Docker qui lit RSS et tweete automatiquement régulièrement.
J'ai créé un programme en Python qui change les données de 1 minute de FX en une heure arbitraire (1 heure, etc.)
Une histoire qui réduit l'effort de fonctionnement / maintenance
[Python] Un programme qui compte le nombre de vallées
J'ai créé un outil de nettoyage pour Google Container Registry
J'ai créé une boîte de changement de seuil pour Pepper's Dialog
Créez un BOT qui raccourcit l'URL Discord
#Une fonction qui renvoie le code de caractère d'une chaîne de caractères
Étapes pour calculer la probabilité d'une distribution normale
J'ai essayé de visualiser les informations spacha de VTuber
Générer cette forme du fond d'une bouteille pour animaux de compagnie
Un mémo que j'ai touché au magasin de données avec python
J'ai créé une application Android qui affiche Google Map
Une histoire qui a analysé la livraison de Nico Nama.
[Python] Un programme qui compare les positions des kangourous.
Clustering G-means qui détermine automatiquement le nombre de clusters
J'ai créé un outil pour obtenir les liens de réponse d'OpenAI Gym en même temps