YouTube Data API を使って1つの動画から様々な情報を取得する

YouTube Data API を使って1つの動画から様々な情報を取得します.

全国630店舗以上!もみほぐし・足つぼ・ハンドリフレ・クイックヘッドのリラクゼーション店【りらくる】

# 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)
title video_id scrape_date published_date channelTitle channelId thumbnails_url viewCount likeCount dislikeCount commentCount tags
0 エスパータイプはなぜ不遇?ガチ環境の強み・弱みを徹底解説【ポケモン剣盾】 FAa70E8uzG4 20210610 2021-06-14T08:00:08Z ポケモンソルジャー【ポケソル】 UCeQNXy1ReMSa1GuK7nhMvIA https://i.ytimg.com/vi/FAa70E8uzG4/sddefault.jpg 47535 604 26 349 [ポケモン, ポケモン剣盾, ポケモンソード, ポケモンシールド, ソードシールド, ポケモ...

# 参考サイト

【Python】YouTube Data API を使って、いろんな情報を取得してみた! (opens new window)

YouTube Data API v3を使用して、YouTubeページと同じリストモジュールを作ってみた (opens new window)

全国630店舗以上!もみほぐし・足つぼ・ハンドリフレ・クイックヘッドのリラクゼーション店【りらくる】

YouTube Data API を使って動画の再生回数等の情報を取得する

YouTube Data API を使って動画の再生回数等の情報を取得する

YouTube Data API を使って動画の再生回数等の情報を取得します.

Python+Selenium+ChromeでDeepLの翻訳を実行する

Python+Selenium+ChromeでDeepLの翻訳を実行する

Excel等ですでに翻訳したい文をまとめている場合,いちいちコピペしてDeepLに翻訳させるのは面倒なので,Python+Selenium+ChromeでDeepLの翻訳を実行します.