前回の記事では、
ブログ記事からショート動画を自動生成する流れを紹介しました。
今回はその中でも最初のステップ、「URLから台本を作る」部分を実際に作っていきます。
■ この記事でできること
この記事を読むと👇
・URLを入力する
・ボタンを押す
・ショート動画用の台本が生成される
ところまで作れるようになります。
■ 使用する技術
- Python
- Gemini API(無料で使える)
- newspaper(記事取得)
- Streamlit(画面UI)
■ 事前準備
■ ① ライブラリインストール
pip install newspaper3k google-generativeai streamlit
■ ② Gemini APIキー取得
Gemini APIキーは無料で取得できます。
- Google AI Studioにアクセス
- 「APIキーを取得」をクリック
- 表示されたキーをコピー
👉 詳しい手順はこちら
(※別記事リンク)
■ 実装コード(コピペOK)
👉 まずは動かすことを優先します
import streamlit as st
import google.generativeai as genai
from newspaper import Article
st.title("台本生成テスト")
api_key = st.text_input("Gemini API Key", type="password")
url = st.text_input("記事URLを入力")
if st.button("台本を生成"):
if not api_key or not url:
st.warning("APIキーとURLを入力してください")
else:
try:
genai.configure(api_key=api_key)
article = Article(url)
article.download()
article.parse()
prompt = f"""
以下の内容を元にYouTubeショート動画の台本を作ってください。
・分かりやすい構成にする
・そのまま読み上げできる文章にする
・適度に「、」「。」を入れる
内容:
{article.text[:1000]}
"""
model = genai.GenerativeModel("gemini-2.5-flash")
response = model.generate_content(prompt)
st.subheader("生成された台本")
st.write(response.text)
except Exception as e:
st.error(f"エラー: {e}")
■ 使い方
- アプリを起動
streamlit run app.py
- APIキーを入力
- URLを貼る
- ボタンを押す
👉 台本が表示されます
■ 何をしているのか(最低限)
■ 記事取得
article = Article(url)
article.download()
article.parse()
👉 URLから本文を取得しています
■ AIで台本生成
model = genai.GenerativeModel("gemini-2.5-flash")
response = model.generate_content(prompt)
👉 記事を元に台本を作っています
■ つまずいたポイント
■ モデルエラー
404 models/gemini-pro is not found
👉 原因
古いモデル名を使っていた
👉 解決
gemini-2.5-flash
に変更
Geminiのモデルは頻繁に更新されるため、
AIが出してきたコード(gemini-1.5など)がそのまま使えない場合があります。
エラーが出た場合は、最新モデルに変更してください。
(例:gemini-2.5-flash)2026/3月現在
■ APIの無料枠制限
何度もテストしていると、急に台本が生成されなくなることがあります。
その場合は、APIの使用上限に達している可能性があります
👉 原因
Gemini APIには無料枠があり、1日の利用回数に制限があります。
👉 対処方法
- 少し時間をおいて再実行する
- 翌日まで待つ
- 無駄なテストを減らす
👉 補足
今回のように開発初期は何度も試すため、
意外とすぐ上限に達します。
■ 記事が取得できない
👉 一部サイトはブロックされる
■ ここまででできること
👉 すでにこれができます
- ブログ記事 → 台本
■ 次の記事
👉 次はこれ
② テキストを音声に変換する方法(Google Text-to-Speech)
をやります。
■ まとめ
今回やってみて感じたのは、
👉 AIを使うと台本作成はかなり楽になる
ということです。
そしてもう一つ
👉 エラーはほぼ確実に出る
だからこそ、
- どこで詰まるか
- どう解決するか
を残しておくことが大事だと感じました。


コメント