はじめに
公式ドキュメントを読んでも実装方法がわかりづらく、完成まで時間がかかりました。
さらにネット上の記事も情報が古く、そのままでは動かないことが多かったため、今回あらためて手順をまとめました。
本記事では、Pythonを用いて、YouTube Data API v3を利用し、短いスクリプトで効率的に処理できるようにします。
準備
- APIキーの生成
- YouTube Data APIを利用するために、GoogleCloudからAPIを有効にしてください。
取得するにあたり、この記事を参考にしました。
https://qiita.com/shinkai_/items/10a400c25de270cb02e4
- YouTube Data APIを利用するために、GoogleCloudからAPIを有効にしてください。
- ライブラリをpip
pip.
pip install google-api-python-client
動画情報を取得する
動画IDを指定して実行することにより、動画情報を取得する事が出来ます。
例として、動画のタイトルを取得してみました。
movie.py
from googleapiclient.discovery import build
API_KEY = 'APIキーを入力'
video_id = "動画ID" #
youtube = build("youtube", "v3", developerKey=API_KEY)
## 動画からチャンネルIDを取得
response = youtube.videos().list(
part="snippet",
id=video_id
).execute()
title = response["items"][0]["snippet"]["title"]
print("動画のタイトル: ", title)
正しく取得する事が出来ました
他の情報も取得してみる
動画タイトルだけでなく他の情報も取得してみたいと思います。
上記に記載したソースコードを変更します。
変更.py
response = youtube.videos().list(
part="snippet,statistics,contentDetails", #ここを変更しました。
id=video_id
).execute()
以下全
movie.py
# チャンネルアイコンを取得する
from googleapiclient.discovery import build
API_KEY = 'APIキーを入力'
videoId = "動画ID"
youtube = build("youtube", "v3", developerKey=API_KEY)
# # 動画情報を取得
video_response = youtube.videos().list(
part="snippet,statistics,contentDetails",
id=videoId
).execute()
video_item = video_response["items"][0]
v_snippet = video_item["snippet"]
v_stats = video_item["statistics"]
v_details = video_item["contentDetails"]
# 動画データ
print("=== 動画情報 ===")
print("タイトル:", v_snippet["title"])
print("説明:", v_snippet.get("description", "なし")[:100], "...")
print("公開日:", v_snippet["publishedAt"])
print("チャンネル名:", v_snippet["channelTitle"])
print("サムネイル:", v_snippet["thumbnails"]["high"]["url"])
print("再生回数:", v_stats.get("viewCount", "N/A"))
print("高評価数:", v_stats.get("likeCount", "N/A"))
print("コメント数:", v_stats.get("commentCount", "N/A"))
print("動画時間:", v_details["duration"])
構造をざっくりまとめる
今回は構造をざっくりと画像でまとめてみました。
より詳しい項目や活用例については、今後別記事で紹介できればと思います。

まとめ
今回は、かなり大雑把にですが、YouTube APIを使って動画情報を取得してみました。
今後、構造について分析してみたり、チャンネル情報を取得する方法もまとめてみたいと思います。


