YouTube Data API を使って1つの動画から様々な情報を取得する
YouTube Data API を使って1つの動画から様々な情報を取得します.
有料枠設定にしていますが,下記のサイトで他の記事もみれます.youtubeの投げ銭的な物として,お考えください.
YouTube Data APとは
YouTubeが提供しているAPIで、動画やチャンネル、再生リストに関わる情報を取得して、自分のWebサイトやアプリケーションで使用することができます。
公式のドキュメントが用意されているので、詳しくはこちらをご覧ください。
https://developers.google.com/youtube/v3/getting-started?hl=ja
引用元:YouTube Data API v3を使用して、YouTubeページと同じリストモジュールを作ってみた(opens new window)
YouTube が提供している API で、動画やチャンネルなど情報を取得して、自分の Web サイトやアプリケーションで使用することができます。
一日あたりのAPI使用量(クォータ)の上限が10000になっているので、注意して使用してください。
引用元:【Python】YouTube Data API を使って、いろんな情報を取得してみた!(opens new window)
APIのキーを取得
YouTube Data API使えるようになるために、APIのキーを取得します.
引用元:【Python】YouTube Data API を使って、いろんな情報を取得してみた!(opens new window)
Google Cloud Platformでプロジェクトを作成
Google Cloud Platformからプロジェクトを作成します.
プロジェクト名は任意で、 プロジェクトIDは忘れずに変更しましょう。
YouTube Data API v3 を有効化
作成したプロジェクトで,YouTube Data API を使用するため,有効にします.
ここからプロジェクトを選択した後、有効にします.
認証情報の作成
ここから API キーを作成します。
作成した API キーは、実際に API を使う時に使用しますので、メモしておいてください。
モジュールのインストール
!pip install google-api-python-client
youtubeの情報を取得(1つの動画)
上記でキーを取得したYouTube Data API を使って1つの動画から様々な情報を取得します.
最終的には,DataFrameで出力します.
ここでは,以下の情報を取得します.
・video_id
・タイトル
・クレイピング日時
・動画の公開日時
・チャンネルタイトル
・チャンネルID
・サムネイル
・再生回数
・goodボタン数
・badボタン数
・コメント数
・タグ
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import json
import datetime
import pandas as pd
from apiclient.discovery import build
# 動画のURL
URL = 'https://www.youtube.com/watch?v=FAa70E8uzG4'
video_id = URL.split('v=')[1]
# APIの起動
YOUTUBE_API_KEY = '******************'
youtube = build('youtube', 'v3', developerKey=YOUTUBE_API_KEY)
# 動画情報のリクエスト
response = youtube.videos().list(part = 'snippet,statistics',
id = video_id
).execute()
# 動画情報の取得
item = response.get("items", [])[0]
# 動画情報の整理
# タイトル
title = item['snippet']['title']
# スクレイピング日時
scrape_date = str(datetime.date.today()).replace('-','')
# 公開日時
published_date = item['snippet']['publishedAt']
# チャンネルタイトル
channelTitle = item['snippet']['channelTitle']
# チャンネルID
channelId = item['snippet']['channelId']
# サムネイル
thumbnails_url = item['snippet']['thumbnails']['standard']['url']
# 再生回数
viewCount = item['statistics']['viewCount']
# goodボタン
likeCount = item['statistics']['likeCount']
# badボタン
dislikeCount = item['statistics']['dislikeCount']
# コメント数
commentCount = item['statistics']['commentCount']
# タグ
tags = item['snippet']['tags']
# データフレーム化
_list = [[title, video_id, scrape_date, published_date, channelTitle, channelId, thumbnails_url, viewCount, likeCount, dislikeCount, commentCount, tags]]
df_info = pd.DataFrame(_list, columns=['title', 'video_id', 'scrape_date', 'published_date', 'channelTitle', 'channelId', 'thumbnails_url', 'viewCount', 'likeCount', 'dislikeCount', 'commentCount', 'tags'])
# 日本時刻に修正+9hours
df_info['publishedAt'] = pd.to_datetime(df_info['publishedAt']) + datetime.timedelta(hours=9)
display(df_info)
# csvに出力
# df_info.to_csv('{}_scape.csv'.format(scrape_date), index=False)
参考サイト
ここから先は
0字
¥ 100
この記事が気に入ったらサポートをしてみませんか?