【Webスクレイピング】pythonでyoutube data apiを叩いて動画リストを作成する

Python

概要

youtuberになってメントスコーラする仕事がしたかった。どうも、しぃたけです。

Webスクレイピングの勉強をしたくていろいろ調べていたら、youtubeのスクレイピングをする方法を発見したので、記事にしてみます。

これまでkaggleやデータサイエンスの記事が多めでしたが、現実では分析したいデータがそろっていることの方が稀です。データ活用人材を目指している人なら自分でデータを拾ってくるスキルもこれから必要になってくると思うので、データ関係に興味を持っておられる方も是非見ていただければと思います。

youtube data apiについて

何それ

その名の通り、youtubeのデータを取り出すためのAPIです。

ちなみにAPIの公式リファレンスは下記にありますが、全日本語対応しています。自分の苦手としている英訳が必要ないのでこれは非常に嬉しい。さすがGoogle、神過ぎる。

API Reference  |  YouTube Data API  |  Google for Developers

このAPIはPythonだけでなく、Java、Javascript、Go、Ruby、.NET、PHP などの多言語に対応しているのもうれしいところです。


何ができるか

検索結果、サムネイル画像、チャンネル登録者などの情報がいろいろ取ってこれますが、詳しくは公式リファレンス見てください。(投げやり)

YouTube Data API の概要  |  Google for Developers



使ってみた

早速使ってみます。

なお、youtube data apiの取得方法については下記の記事がわかりやすかったです。

YouTube APIキーの取得 (2020/03/25時点) - Qiita
YouTube APIキーの取得まで Google Cloud Platformにアクセス。 こんな感じの画面が出る。赤枠のところをクリック。↓ こんな感じの画面が出る。赤枠のところをクリッ…



また、開発環境はGoogle Colaboratoryを利用しています。理由はyoutube data apiをローカルで利用しようとすると、余計なライブラリをインポートする必要があるので、最初から環境が整ってるColabを使った方が手っ取り早いためです。

参考までに。


API叩いてみる

とりあえず使ってみます。

まずは、検索ワード「筋トレ」で検索した際の検索結果を取得するスクリプトを作成してみます。

結果はPythonの辞書型で出力されます。

キーの部分にデータの内容が記載されており、チャンネル名、URL、動画タイトル などの情報が記載されてます。

ちなみに下記のように[‘items’]のプロパティを利用すると出力結果をリスト化できます。



[‘pageInfo’]プロパティを利用すると、のページング情報が取得できます。

プロパティの詳細はこちら


取得データをpandas DataFrameに変換

最後に、データをpandasのDataFrame型に変換する方法を記します。

ちなみに、youtube data apiのデフォルトでは5件までしか動画の情報を取得できないので、こちらのqiitaの記事を参考に5件以上のデータ取得をできるようにしました。

「筋トレ」での検索結果100件



ちなみに、動画再生回数、高評価、低評価数などを取得する方法は下記の通りです。詳細は参考文献をどうぞ。

高評価、低評価、視聴回数など結合

これだけデータ取れれば、データ分析、モデル作成にも利用できそうですね。

youtube data api利用の際の注意点

apiを利用していると、下記のようなエラーが発生しました。

どうやら、youtube data apiは利用限度数が決まっているそうで、限度回数以上apiを叩いてしまうとこのようなエラーが発生するそうです。

数日でまた使えるようになるみたいですが、ご利用の際は注意ください。

まとめ

Python のyoutube data apiを使ってスクレイピングを行う基礎をまとめました。

なによりGoogleの公式リファレンスが充実していて使いやすかったので、自分みたいなスクレイピング初心者でも簡単に実装できると思います。

時間があったら、取得したデータをDBに保存するような機能を実装したいと思います。

参考文献

Youtube Data APIを使ってPythonでYoutubeデータを取得する - Qiita
#はじめに最近、APIを用いて色々なデータを取得できないかを調べています。Youtube Data APIを使用して動画の再生回数やいいね数などの情報取得する方法を調べて実践したので覚書的に記事…
【データサイエンス】YouTubeのAPIを使ってYouTube内のデータを収集してみよう

コメント

タイトルとURLをコピーしました