[Python] Ich habe versucht, mithilfe der YouTube-Daten-API verschiedene Informationen abzurufen!

Einführung

Jetzt, da ich die YouTube-Daten-API berühren kann, möchte ich die Informationen zusammenfassen.

Was ist die YouTube-Daten-API?

https://developers.google.com/youtube/v3/docs

Mit der von YouTube bereitgestellten API können Sie Informationen wie Videos und Kanäle abrufen und in Ihrer Website oder Anwendung verwenden. Bitte beachten Sie, dass die maximale tägliche API-Nutzung (Kontingent) 10000 beträgt.

Holen Sie sich den API-Schlüssel

Erstellen Sie ein Projekt auf der Google Cloud Platform

Von hier Erstellen Sie ein Projekt.

Der Projektname ist beliebig. ** Vergessen Sie nicht, die Projekt-ID zu ändern. ** ** **

プロジェクトの作成

Aktiviere die YouTube Data API v3

Aktiviere die YouTube-Daten-API, da sie im erstellten Projekt verwendet wird.

Von hier Gültig nach Auswahl eines Projekts Zu

APIを有効にする

Anmeldeinformationen erstellen

Von hier aus (https://console.cloud.google.com/apis/api/youtube.googleapis.com/credentials?hl=ja) Erstellen Sie einen API-Schlüssel.

API キーの作成

Notieren Sie sich den von Ihnen erstellten API-Schlüssel, da dieser verwendet wird, wenn Sie die API tatsächlich verwenden.

Versuchen Sie, mit der YouTube-Daten-API verschiedene Informationen abzurufen

Installieren Sie die erforderlichen Pakete

Verwenden Sie pyenv, um die Version von Python zu ändern.

$ pyenv install 3.8.3
$ pyenv local 3.8.3

Installiere das Paket, um die YouTube-Daten-API zu verwenden.

$ pip install google-api-python-client==1.9.3

Suche nach YouTube-Kanalinformationen

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import json

from apiclient.discovery import build

API_KEY = '<Geben Sie den API-Schlüssel ein, den Sie zuletzt erhalten haben>'
YOUTUBE_API_SERVICE_NAME = 'youtube'
YOUTUBE_API_VERSION = 'v3'
SEARCH_TEXT = '<Kanalname, den Sie suchen möchten>'

youtube = build(
    YOUTUBE_API_SERVICE_NAME,
    YOUTUBE_API_VERSION,
    developerKey=API_KEY
)

response = youtube.search().list(q=SEARCH_TEXT, part='id,snippet', maxResults=25).execute()

for item in response.get('items', []):
    if item['id']['kind'] != 'youtube#channel':
        continue
    print('*' * 10)
    print(json.dumps(item, indent=2, ensure_ascii=False))
    print('*' * 10)

↓ Das Ergebnis sieht so aus ↓

**********
{
  "kind": "youtube#searchResult",
  "etag": "jjisWD5m1O7aBCLstjwy_ldRnf4",
  "id": {
    "kind": "youtube#channel",
    "channelId": "UCTmRAt3wuYY8W5z9j9va97Q"
  },
  "snippet": {
    "publishedAt": "2017-12-13T04:47:03Z",
    "channelId": "UCTmRAt3wuYY8W5z9j9va97Q",
    "title": "Yahoo!Entwicklernetzwerk",
    "description": "Yahoo! JAPAN Technology channel produced by Yahoo! JAPAN.",
    "thumbnails": {
      "default": {
        "url": "https://yt3.ggpht.com/-ZUW9jc79uzQ/AAAAAAAAAAI/AAAAAAAAAAA/LWM2XNvQPmI/s88-c-k-no-mo-rj-c0xffffff/photo.jpg "
      },
      "medium": {
        "url": "https://yt3.ggpht.com/-ZUW9jc79uzQ/AAAAAAAAAAI/AAAAAAAAAAA/LWM2XNvQPmI/s240-c-k-no-mo-rj-c0xffffff/photo.jpg "
      },
      "high": {
        "url": "https://yt3.ggpht.com/-ZUW9jc79uzQ/AAAAAAAAAAI/AAAAAAAAAAA/LWM2XNvQPmI/s800-c-k-no-mo-rj-c0xffffff/photo.jpg "
      }
    },
    "channelTitle": "Yahoo!Entwicklernetzwerk",
    "liveBroadcastContent": "none",
    "publishTime": "2017-12-13T04:47:03Z"
  }
}
**********

Weitere Informationen finden Sie auf YouTube-Kanälen

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import json

from apiclient.discovery import build

API_KEY = '<Geben Sie den zuvor erhaltenen API-Schlüssel ein>'
YOUTUBE_API_SERVICE_NAME = 'youtube'
YOUTUBE_API_VERSION = 'v3'
CHANNEL_ID = '<Zuletzt erfasste Kanal-ID>'

youtube = build(
    YOUTUBE_API_SERVICE_NAME,
    YOUTUBE_API_VERSION,
    developerKey=API_KEY
)

response = youtube.channels().list(
    part = 'snippet,statistics',
    id = CHANNEL_ID
    ).execute()

for item in response.get("items", []):
    if item["kind"] != "youtube#channel":
        continue
    print('*' * 10)
    print(json.dumps(item, indent=2, ensure_ascii=False))
    print('*' * 10)

↓ Das Ergebnis sieht so aus ↓

**********
{
  "kind": "youtube#channel",
  "etag": "itHsa0qDp15obMLvkpN6HnFjF_M",
  "id": "UCTmRAt3wuYY8W5z9j9va97Q",
  "snippet": {
    "title": "Yahoo!Entwicklernetzwerk",
    "description": "Yahoo! JAPAN Technology channel produced by Yahoo! JAPAN.",
    "customUrl": "yahoodevelopernetworkjp",
    "publishedAt": "2017-12-13T04:47:03Z",
    "thumbnails": {
      "default": {
        "url": "https://yt3.ggpht.com/a/AATXAJzznTJCL9uFV63JvRtbeYwgzur7mwoqtPRQvg=s88-c-k-c0xffffffff-no-rj-mo",
        "width": 88,
        "height": 88
      },
      "medium": {
        "url": "https://yt3.ggpht.com/a/AATXAJzznTJCL9uFV63JvRtbeYwgzur7mwoqtPRQvg=s240-c-k-c0xffffffff-no-rj-mo",
        "width": 240,
        "height": 240
      },
      "high": {
        "url": "https://yt3.ggpht.com/a/AATXAJzznTJCL9uFV63JvRtbeYwgzur7mwoqtPRQvg=s800-c-k-c0xffffffff-no-rj-mo",
        "width": 800,
        "height": 800
      }
    },
    "localized": {
      "title": "Yahoo!Entwicklernetzwerk",
      "description": "Yahoo! JAPAN Technology channel produced by Yahoo! JAPAN."
    },
    "country": "JP"
  },
  "statistics": {
    "viewCount": "7471",
    "commentCount": "0",
    "subscriberCount": "157",
    "hiddenSubscriberCount": false,
    "videoCount": "12"
  }
}
**********

Erhalten Sie Informationen zu Videos, die von YouTube-Kanälen veröffentlicht wurden

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import json

from apiclient.discovery import build

API_KEY = '<Geben Sie den zuvor erhaltenen API-Schlüssel ein>'
YOUTUBE_API_SERVICE_NAME = 'youtube'
YOUTUBE_API_VERSION = 'v3'
CHANNEL_ID = '<Zuvor erhaltene Kanal-ID>'

youtube = build(
    YOUTUBE_API_SERVICE_NAME,
    YOUTUBE_API_VERSION,
    developerKey=API_KEY
)

response = youtube.search().list(
    part = "snippet",
    channelId = CHANNEL_ID,
    maxResults = 1,
    order = "date" #Nach Datum sortieren
    ).execute()

for item in response.get("items", []):
    if item["id"]["kind"] != "youtube#video":
        continue
    print('*' * 10)
    print(json.dumps(item, indent=2, ensure_ascii=False))
    print('*' * 10)

↓ Das Ergebnis sieht so aus ↓

**********
{
  "kind": "youtube#searchResult",
  "etag": "CtC0g1Ocx7pK6H8Yhd3hGS5z3uY",
  "id": {
    "kind": "youtube#video",
    "videoId": "vd3YVCtW-LY"
  },
  "snippet": {
    "publishedAt": "2020-02-20T06:02:39Z",
    "channelId": "UCTmRAt3wuYY8W5z9j9va97Q",
    "title": "Bildschirmübergangsdesign mit dem neuen HTML-Portal ~ PayPay Mall und Yahoo!Mit einem Beispiel für Nachrichten ~/ Developers Summit 2020 14-A-2",
    "description": "Video der Sitzung auf dem Developers Summit 2020. Beschreibt das Portal. Klicken Sie hier für eine Übersicht über die Bühne https://event.shoeisha.jp/devsumi/20200213/session/2384/...",
    "thumbnails": {
      "default": {
        "url": "https://i.ytimg.com/vi/vd3YVCtW-LY/default.jpg ",
        "width": 120,
        "height": 90
      },
      "medium": {
        "url": "https://i.ytimg.com/vi/vd3YVCtW-LY/mqdefault.jpg ",
        "width": 320,
        "height": 180
      },
      "high": {
        "url": "https://i.ytimg.com/vi/vd3YVCtW-LY/hqdefault.jpg ",
        "width": 480,
        "height": 360
      }
    },
    "channelTitle": "Yahoo!Entwicklernetzwerk",
    "liveBroadcastContent": "none",
    "publishTime": "2020-02-20T06:02:39Z"
  }
}
**********

Erhalten Sie detaillierte Informationen zum Video

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import json

from apiclient.discovery import build

API_KEY = '<Geben Sie den zuvor erhaltenen API-Schlüssel ein>'
YOUTUBE_API_SERVICE_NAME = 'youtube'
YOUTUBE_API_VERSION = 'v3'
CHANNEL_ID = '<Zuvor erhaltene Kanal-ID>'
VIDEO_ID_LIST = ['<Zuletzt erfasste Video-ID>']

youtube = build(
    YOUTUBE_API_SERVICE_NAME,
    YOUTUBE_API_VERSION,
    developerKey=API_KEY
)

for video_id in VIDEO_ID_LIST:
    response = youtube.videos().list(
      part = 'snippet,statistics',
      id = video_id
      ).execute()

    for item in response.get("items", []):
        if item["kind"] != "youtube#video":
            continue
        print('*' * 10)
        print(json.dumps(item, indent=2, ensure_ascii=False))
        print('*' * 10)

↓ Das Ergebnis sieht so aus ↓

**********
{
  "kind": "youtube#video",
  "etag": "Y5QH8Ur-9BQigbr4XHTRNldn7_I",
  "id": "vd3YVCtW-LY",
  "snippet": {
    "publishedAt": "2020-02-20T06:02:39Z",
    "channelId": "UCTmRAt3wuYY8W5z9j9va97Q",
    "title": "Bildschirmübergangsdesign mit dem neuen HTML-Portal ~ PayPay Mall und Yahoo!Mit einem Beispiel für Nachrichten ~/ Developers Summit 2020 14-A-2",
    "description": "Video der Sitzung auf dem Developers Summit 2020.\Beschreibt nportal.\n\n Klicken Sie hier, um eine Übersicht über die Bühne zu erhalten\nhttps://event.shoeisha.jp/devsumi/20200213/session/2384/\n\n Klicken Sie hier für Materialien\nhttps://www.slideshare.net/techblogyahoo/htmlportal-paypayyahoo-devsumi",
    "thumbnails": {
      "default": {
        "url": "https://i.ytimg.com/vi/vd3YVCtW-LY/default.jpg ",
        "width": 120,
        "height": 90
      },
      "medium": {
        "url": "https://i.ytimg.com/vi/vd3YVCtW-LY/mqdefault.jpg ",
        "width": 320,
        "height": 180
      },
      "high": {
        "url": "https://i.ytimg.com/vi/vd3YVCtW-LY/hqdefault.jpg ",
        "width": 480,
        "height": 360
      }
    },
    "channelTitle": "Yahoo!Entwicklernetzwerk",
    "tags": [
      "devsumi",
      "devsumiA",
      "Portals"
    ],
    "categoryId": "28",
    "liveBroadcastContent": "none",
    "defaultLanguage": "ja",
    "localized": {
      "title": "Bildschirmübergangsdesign mit dem neuen HTML-Portal ~ PayPay Mall und Yahoo!Mit einem Beispiel für Nachrichten ~/ Developers Summit 2020 14-A-2",
      "description": "Video der Sitzung auf dem Developers Summit 2020.\Beschreibt nportal.\n\n Klicken Sie hier, um eine Übersicht über die Bühne zu erhalten\nhttps://event.shoeisha.jp/devsumi/20200213/session/2384/\n\n Klicken Sie hier für Materialien\nhttps://www.slideshare.net/techblogyahoo/htmlportal-paypayyahoo-devsumi"
    },
    "defaultAudioLanguage": "ja"
  },
  "statistics": {
    "viewCount": "74",
    "likeCount": "2",
    "dislikeCount": "0",
    "favoriteCount": "0",
    "commentCount": "0"
  }
}
**********

schließlich

Wie war das? Es gibt viele andere Veröffentlichungen zu Codebeispielen. Schauen Sie sich diese also an und probieren Sie sie aus. Wenn Sie etwas falsch finden, kommentieren Sie bitte mm

Recommended Posts

[Python] Ich habe versucht, mithilfe der YouTube-Daten-API verschiedene Informationen abzurufen!
Ich habe versucht, Videos mit der Youtube Data API (Anfänger) zu suchen.
Ich habe versucht, YOUTUBE Data API V3 zu verwenden
Holen Sie sich Youtube-Daten in Python mithilfe der Youtube-Daten-API
Ich habe versucht, verschiedene Informationen von der Codeforces-API abzurufen
[Python] Holen Sie sich alle Kommentare mit Youtube Data Api
Ich habe versucht, CloudWatch-Daten mit Python abzurufen
Ich habe versucht, die Filminformationen der TMDb-API mit Python abzurufen
Ich habe versucht, die Informationen des Webs mit "Requests" und "lxml" abzurufen.
[Python] Ich habe versucht, Daten mit der API von Wikipedia zu sammeln
Ich habe versucht, mit pypyodbc schnell Daten von AS / 400 abzurufen
Ich habe versucht, die UnityCloudBuild-API von Python zu verwenden
Ich habe versucht, mit pypyodbc Preparation 1 schnell Daten von AS / 400 abzurufen
So erhalten Sie Artikeldaten mithilfe der Qiita-API
Informationen zu auf YouTube hochgeladenen Videos abrufen [Python]
Ich habe versucht, den Authentifizierungscode der Qiita-API mit Python abzurufen.
Ich habe versucht, verschiedene Sätze mit der automatischen Zusammenfassungs-API "summpy" zusammenzufassen.
Ich habe versucht, fMRI-Daten mit Python zu analysieren (Einführung in die Dekodierung von Gehirninformationen)
[Rails] So erhalten Sie Standortinformationen mithilfe der Geolocation-API
Ich habe versucht, mit Blenders Python script_Part 01 zu beginnen
Holen Sie sich Youtube-Daten mit Python
Holen Sie sich LEAD-Daten mit der REST-API von Marketo in Python
Python-Programmierung: Ich habe versucht, Nachrichtenartikel mit Selenium und BeautifulSoup4 abzurufen (zu crawlen)
Ich habe versucht, mit Blenders Python script_Part 02 zu beginnen
[Python] Abrufen von Insight-Daten mithilfe der Google My Business-API
Ich habe versucht, mit AWS Lambda einen AMI zu erhalten
[Python] Ich habe versucht, Json von Tintenfischring 2 zu bekommen
Python-Programmierung: Ich habe versucht, mithilfe von BeautifulSoup4 Unternehmensinformationen (Crawlen) von Yahoo Finance in den USA abzurufen
Ich habe versucht, mit Python auf Google Spread Sheets zuzugreifen
Ich habe versucht, verschiedene Informationen von Remote-PC aus Python von WMI Library zu extrahieren
Ich habe versucht, einen Pandas-Datenrahmen zu erstellen, indem ich mit Python Informationen zum Lebensmittelrückruf abgekratzt habe
Ich habe versucht, die Standortinformationen des Odakyu-Busses zu erhalten
Ich habe versucht, API list.csv mit Python aus swagger.yaml zu erstellen
Ich habe verschiedene Methoden ausprobiert, um japanische Post mit Python zu senden
Ich habe eine Stoppuhr mit tkinter mit Python gemacht
Ich habe versucht, scRNA-seq-Daten mithilfe der topologischen Datenanalyse (TDA) zu analysieren.
Ausgabe von Produktinformationen an csv mithilfe der Rakuten-Produktsuch-API [Python]
Spielen Sie mit der YouTube Data API v3 mit dem Google API Python Client
Rufen Sie github api in Python auf, um Informationen zur Pull-Anforderung zu erhalten
Abrufen von Salesforce-Daten mithilfe der REST-API
Ich habe versucht, eine Quip-API zu erstellen
Ich habe versucht, Python zu berühren (Installation)
Abrufen von Amazon-Daten mit Keep API # 1 Abrufen von Daten
Ich habe versucht, Thonny (Python / IDE) zu verwenden.
Ich habe Teslas API berührt
Ich habe versucht, die checkio-API zu verwenden
Ich habe versucht, mit Pandas eine Pferderenn-Datenbank zu erstellen
Ich habe versucht, den Index der Liste mithilfe der Aufzählungsfunktion abzurufen
Ich habe versucht, mit Python einen regulären Ausdruck für "Betrag" zu erstellen
So erhalten Sie mithilfe der Mastodon-API Follower und Follower von Python
Ich habe versucht, mit Python einen regulären Ausdruck von "Zeit" zu erstellen
[Python] Ein Memo, das ich versucht habe, mit Asyncio zu beginnen
Ich habe versucht, mit Python einen regulären Ausdruck von "Datum" zu erstellen
Ich habe versucht, meinen Lieblingssänger (SHISHAMO) mit der Spotify-API zu analysieren
[Pandas] Ich habe versucht, Verkaufsdaten mit Python zu analysieren. [Für Anfänger]
Sammeln Sie Produktinformationen und Prozessdaten mit der Rakuten-Produktsuch-API [Python].
Ich habe versucht, mit Boto3 eine Liste der AMI-Namen zu erhalten
Ich habe versucht, BigQuery-Daten mit Jupyter Lab mit GCP zu visualisieren