LoginSignup
3
4

More than 3 years have passed since last update.

🔰初心者向け🔰PythonでYoutubeAPIを叩こう

Last updated at Posted at 2019-11-02

初めに

APIという単語はよく聞くし、どんなものかは何となくは理解していたものの使ったことは無かったので触ってみることにしました。

本題

APIキーを作成する

先ずは、何をするんだろう?となりますよね。APIキーがいるって話を聞いたことがあったので、その取得からやっていきたいと思います。以下のサイトGoogle Developer Consoleから生成します。そして、ここから新しいプロジェクトを選択しプロジェクト名を付けます。進むと、組織を聞かれますがなしで良いと思います。1.PNG
次に,使用できるAPIが無いと言われると思うので+APIとサービスを有効化を押して下さい。すると、APIライブラリへようこそ、と出てきてその下に検索ボックスがありますので、YouTube Data API v3と検索してください。検索結果に出てきましたら、それを押して有効にするという青いボタンを押してください。
image.png
上記のことをすると、下のページに飛ぶと思います。そして、Create Credentialsを押してください。
image.png
すると、下のようなページが開くと思うので下の画像に合わせて設定してみて下さい。今回は、初めてという事で一般公開データに限定してアクセス出来る項目を選択しました。最後に、必要な認証情報をクリックしてください。これでAPIキーを作成することが出来ました。
image.png
APIキーが作成されましたらメモしておいてください。これを外部には公開しないように注意しましょう。

APIキーを利用していく

それでは、利用して少しデータを取得してみましょう。下のAPI Keyというものを使います。Inked2_LI.jpg
コピペして以下のコードのYour_API_Keyに貼り付けましょう。また、タイトルを取得したい動画のURLをYoutube_URLに貼り付けましょう。

use_api.py
import json
import urllib.request

class Helper:
    def __init__(self):
        pass
    def id_from_url(self, url: str):
        return url.rsplit("/",1)[1]

class YouTubeStatus:
    def __init__(self, url: str):
        self.json_url = urllib.request.urlopen(url)
        self.data = json.loads(self.json_url.read())
#今回はタイトルのみ取得
    def get_video_title(self):
        return self.data["items"][0]["snippet"]["title"]

api_key ="Your_API_Key"
YT_URL = "Youtube_URL"

helper = Helper()
video_id = helper.id_from_url(YT_URL)
url = f"https://www.googleapis.com/youtube/v3/videos?part=snippet&id={video_id}&key={api_key}"
main_data = YouTubeStatus(url)
title = main_data.get_video_title()

print(title)

上のコードを実行すると、動画のタイトルを取得できます。ちなみに、上記のコードの変数urlにapi_key,YT_URLの値を代入したURLに飛ぶと、今回取得したjsonデータをブラウザで見ることができます。

最後に

今回は、初めて使ってみるという事でタイトルのみを取得してみました。他にもカテゴリや動画の説明など様々な要素が取得できます。Youtubeのリンクをcsvなどで読み込めばより多くの動画情報を得られそうで面白いと思いました。今後、何かに生かせればよいなと思いました。

3
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
4