みなさん、こんにちは。どんぶラッコです。
今回は、YouTubeが提供しているAPIを使って、動画検索ををPythonから行うチュートリアルをやってみましょう!
HTTP通信をする、となると前回のように requests や Beatutifulsoup を使うのかな…? と考えると思います。
でも、今回はそれよりももっと簡単です!何故ならばGoogleが便利なライブラリを用意してくれているからです!
ここでは、一番基礎の「入力キーワードを元に検索結果を表示する」をやってみましょう!
YouTube API キーを取得する
そもそも、YouTubeのAPIを使うには、APIを使うための鍵(キー)を取得する必要があります。
このブログでも後日まとめ記事を作ろうと思いますが、まずは外部サイトを参照しながらAPIキーを作ってみてくださいm(_ _)m
公式サイト
外部サイト(APIキー取得方法)
こちらの記事が丁寧でわかりやすかったです。
http://piyohiko.webcrow.jp/kids_tube/help/index.html
サンプルコード
from apiclient.discovery import build
from apiclient.errors import HttpError
# API情報
DEVELOPER_KEY = '[取得したAPIキー]'
YOUTUBE_API_SERVICE_NAME = 'youtube'
YOUTUBE_API_VERSION = 'v3'
youtube = build(
YOUTUBE_API_SERVICE_NAME,
YOUTUBE_API_VERSION,
developerKey=DEVELOPER_KEY
)
search_response = youtube.search().list(
q='[検索したいキーワード]',
part='id,snippet',
).execute()
search_response
[取得したAPIキー]、[検索したいキーワード] はご自身のAPIキー、検索ワードに置き換えてください。
うまくいっていれば、このような結果が表示されます!
今回は「プログラミング」で検索をしてみました。
JSON形式 (Pythonでは辞書型に変換されます)で取得されていることがわかります。
あとは、冒頭のようにそれぞれのタイトルと投稿日時を取得したい場合は、for文でそれぞれのパラメータを抽出してあげましょう。
for sr in search_response.get("items", []):
print(sr['snippet']['title'])
print(sr['snippet']['publishedAt'])
apiclient が見つからない場合。
今回はColaboratory上でコードを記述しましたが、ローカル環境で開発をしていた場合、apiclientのライブラリが見つからない!と怒られるかもしれません。
その場合はgoogleが提供しているライブラリを pip
でダウンロードしておきましょう。
pip install google-api-python-client
これでOKです!
YouTube API では、もっと詳細な検索条件をつけることが可能です!
ぜひ公式サイトの仕様もチェックしてみてください♪