Python

【Python】YouTube の検索結果を取得しよう! – YouTube APIを使ってみる

みなさん、こんにちは。どんぶラッコです。

今回は、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 では、もっと詳細な検索条件をつけることが可能です!

ぜひ公式サイトの仕様もチェックしてみてください♪

https://developers.google.com/youtube/v3/docs/search/list

ABOUT ME
どんぶラッコ
ECコンサルタント、システムエンジニア経験を経て、ProgLearnのシステム開発を担当。

\面白いと思ったら/

記事のシェア & Twitter のフォロー をお願いします!

@proglearn

COMMENT

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です