PythonでYoutubeDataAPIを使って動画IDからメタ情報を取得する。
YouTube Data APIのAPIキーの作成
https://zenn.dev/eito_blog/articles/f2d870ffddb636
ライブラリのインストール
pip install google-api-python-client
コレが必要
動画IDからデータを取得する関数を定義
from apiclient.discovery import build YOUTUBE_API_KEY = '***************************************' YOUTUBE_API_SERVICE_NAME = 'youtube' def get_movie_meta(movie_id): youtube = build(YOUTUBE_API_SERVICE_NAME, 'v3', developerKey = YOUTUBE_API_KEY) videos_response = youtube.videos().list(part='snippet,statistics', id='{},'.format(movie_id)).execute() # snippet snippetInfo = videos_response["items"][0]["snippet"] # 動画タイトル movie_title = snippetInfo['title'] # チャンネル名 channeltitle = snippetInfo['channelTitle'] movie_meta = { 'movie_title': movie_title, 'channeltitle': channeltitle, } return movie_meta
取得したメタ情報をビューからテンプレートに渡す
class DetailView(generic.DetailView): model = Article template_name = 'moviebbs/detail.html' def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) self.object = self.get_object() movie_id = self.object.movie_id movie_meta = get_data_api.get_movie_meta(movie_id) context['movie_title'] = movie_meta['movie_title'] context['channeltitle'] = movie_meta['channeltitle']
動画のメタ情報をテンプレートで表示
<p>{{ movie_title }}</p> <p>{{ channeltitle }}</p>