TAKAとAI老師の挑戦:Dailymotion APIとの戦い
TAKA: 「老師、大変だ!YouTube APIがリクエスト制限に引っかかって、動画が全然取得できないよ。」
AI老師: 「おお、それは困ったのう。しかしYouTubeだけが動画サイトではないぞ。他の選択肢を試す時が来たのではないか?」
TAKA: 「他の選択肢?」
AI老師: 「そうじゃ。今回はDailymotion APIを試してみるのじゃ。他のプラットフォームにも面白い動画がたくさんあるぞ。」
- Dailymotion APIの導入
TAKA: 「じゃあ、Dailymotion APIを使ってみる!何から始めればいいの?」
AI老師: 「まずはDailymotionの開発者ページでアカウントを作成し、APIキーを取得するのじゃ。」
TAKA: 「わかった、登録してAPIキーを取ってきたよ!次は?」
AI老師: 「次に、FlaskのバックエンドにDailymotionの動画を取得する処理を追加するぞ。」
TAKA: 「こんな感じのコードでいいかな?」
import requests
Dailymotion APIキー
DAILYMOTION_API_KEY = ‘あなたのAPIキー’
def search_dailymotion_videos(query, limit=5):
url = f’https://api.dailymotion.com/videos?search={query}&limit={limit}&fields=id,title,thumbnail_url,channel.name,views_total,created_time’
response = requests.get(url)
if response.status_code == 200:
return response.json().get(‘list’, [])
return []
@app.route(‘/search_dailymotion’)
def search_dailymotion():
query = request.args.get(‘query’, ”)
if query:
videos = search_dailymotion_videos(query)
return render_template(‘search_dailymotion.html’, query=query, videos=videos)
return redirect(url_for(‘index’))
AI老師: 「うむ、基本的には良いコードじゃな。ただし、APIのエラー処理をもう少し丁寧にすると、トラブルが起きたときの対処が楽になるぞ。」
- HTMLテンプレートの作成
TAKA: 「Flaskのルートは用意したけど、検索結果を表示するページがまだだ。」
AI老師: 「ならばsearch_dailymotion.htmlを作成して、動画のサムネイルやタイトルを表示するのじゃ。」
TAKA: 「こんな感じでどう?」
Dailymotion Search Results
Dailymotion Search Results
Search Results for “{{ query }}”
{% if videos %} {% for video in videos %}
{{ video.title }}
Channel: {{ video[‘channel.name’] }}
Views: {{ video.views_total }}
Uploaded: {{ video.created_time }}
{% endfor %} {% else %}
No videos found for your query. {% endif %}
AI老師: 「見た目はシンプルだが、必要な情報が揃っておる。これで検索結果が見やすくなるじゃろう。」
- 動画の埋め込み
TAKA: 「でも、このままだとただの静止画だね。動画を再生するにはどうすればいい?」
AI老師: 「Dailymotionのプレーヤーを埋め込むのが良いじゃろう。以下のように、動画IDを使って埋め込みURLを生成するのじゃ。」 https://www.dailymotion.com/embed/video/%7B%7B%20video.id%20%7D%7D
TAKA: 「なるほど!埋め込みプレーヤーを使えば動画を直接再生できるんだね。」
- テストと結果
TAKA: 「やった!Dailymotionから動画を取得して、プレーヤーで再生できるようになったよ。」
AI老師: 「よくやったぞ、TAKA。これでYouTube以外のプラットフォームも活用できるようになったのう。」
TAKA: 「老師のおかげだよ!次はもっと便利な検索フィルターを追加したいな。」
AI老師: 「その意気じゃ。開発は一歩ずつ進めるのが肝要だぞ。」
解決した問題点
YouTube APIのリクエスト制限による機能停止。
Dailymotion APIを使用した動画検索と再生機能の実装。
今後の課題
検索フィルター機能の追加(再生時間やカテゴリーで絞り込み)。
複数プラットフォームを統合した検索結果表示。