Jetzt, da ich die YouTube-Daten-API berühren kann, möchte ich die Informationen zusammenfassen.
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.
Von hier Erstellen Sie ein Projekt.
Der Projektname ist beliebig. ** Vergessen Sie nicht, die Projekt-ID zu ändern. ** ** **
Aktiviere die YouTube-Daten-API, da sie im erstellten Projekt verwendet wird.
Von hier Gültig nach Auswahl eines Projekts Zu
Von hier aus (https://console.cloud.google.com/apis/api/youtube.googleapis.com/credentials?hl=ja) Erstellen Sie einen API-Schlüssel.
Notieren Sie sich den von Ihnen erstellten API-Schlüssel, da dieser verwendet wird, wenn Sie die API tatsächlich verwenden.
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
#!/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"
}
}
**********
#!/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"
}
}
**********
#!/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"
}
}
**********
#!/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"
}
}
**********
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