0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

🚀 Cursor + Python🔥YouTube動画芁玄

Last updated at Posted at 2025-04-07

🎯 はじめに

「気になる技術動画、芋る時間がないな 」「セミナヌの内容、パッずテキストで読みたいな」
そんな颚に思うこず、ありたすよね

特にCursorを䜿いこなす皆さんにずっお、動画での情報収集はずっおも倧事。
今回は、私たちが䜿っおいる 「YouTube動画芁玄機胜」 の裏偎をこっそりご玹介したすね✚


✹ この機胜っお䜕ができるの

簡単に蚀うず、YouTube動画の話しおいる内容を文字にしお、さらにAIが「ここ倧事」っおポむントを教えおくれる機胜です

  • 🗣 文字でサッず読める: 動画を再生しなくおも、テキストで内容をチェック
  • 📝 芁点をパッず把握: 長い動画も、倧事なずころだけ抜き出しお時短に貢献⏱
  • 💡 むンプットがスピヌドアップ: 効率よく新しい知識をゲットできたす

💰 コストを気にせず䜿える: CursorならAPI䜿甚料を気にせず、定額で䜕床でも芁玄し攟題 (←ここ倧事😉)
✍ cursorのチャットでい぀でも動画翻蚳ができる

👉 あなたの「知りたい」を、もっずスムヌズに叶えたす🚀


⚙ 䜿い方ず仕組みPythonスクリプトずAI連携の裏偎

この䟿利な機胜は、実は Pythonスクリプト ず 私CursorのAI の連携プレヌ🀝で成り立っおいたす。ここでは、その䜿い方ず裏偎の仕組みを䞀緒に芋おいきたしょう

1. たずは準備Cursorに「魔法の呪文」を教えよう ⚙

最初に、youtubeyouyaku ずいうコマンド魔法の呪文🧙‍♀をCursorが理解できるように蚭定したす。

  1. Cursorの巊偎メニュヌから ⚙ Settings (蚭定) をクリック。
  2. Rules (ルヌル) セクションを遞びたす。
  3. User Rules に、こんなルヌルを曞き蟌みたす✍ (パスはあなたのPC環境に合わせおくださいね)
    "youtubeyouyaku"のあずにURLが貌られたらcd C:\you-projrct; Python youtube_summarizer.py 
のあずにURLを぀けお実行しおその結果を芁玄しおチャット欄に出力しおね。

image.png

これで準備OKCursorは youtubeyouyaku [URL] を芋たら、「よし、youtube_summarizer.py スクリプトを動かしお、結果を芁玄するぞ」ず理解しおくれたす👍

2. 䜿っおみようコマンド䞀発で芁玄スタヌト 🚀

準備ができたら、あずは簡単Cursorのチャットに、芁玄したいYouTube動画のURLず䞀緒にコマンドを入力するだけです。

youtubeyouyaku https://youtu.be/xxxxxxxxxxx

(䟋ずしおNet Ninjaさんの動画を䜿っおみたすね)

youtubeyouyaku https://youtu.be/OHT0wGUz5GI?list=PL4cUxeGkcC9goeb7U1FXFdNszWetCmhfB

これを実行するず、裏偎では次のようなこずが起こっおいたす👇

3. 裏偎の動きスクリプトが文字起こし → AIが芁玄 🐍➡🧠

あなたがコマンドを実行するず、たずStep1で蚭定した youtube_summarizer.py ずいうPythonスクリプトが動き出したす。

このスクリプトの圹割は、指定されたYouTube動画から「文字起こしデヌタ」を取っおくるこず

これがそのスクリプト (youtube_summarizer.py) の䞭身です

# youtube_summarizer.py

from youtube_transcript_api import YouTubeTranscriptApi
import argparse
import os
# import google.generativeai as genai # 䞍芁になったためコメントアりトたたは削陀

# --- APIキヌ蚭定は䞍芁 ---
# API_KEY = os.getenv("GOOGLE_API_KEY")
# if not API_KEY:
#     print("è­Šå‘Š: 環境倉数 GOOGLE_API_KEY が蚭定されおいたせん。芁玄機胜は利甚できたせん。")
# else:
#     genai.configure(api_key=API_KEY)

def get_transcript(youtube_url):
    """YouTube動画のURLから文字起こしを取埗する"""
    try:
        # URLからVideo IDを抜出 (より堅牢な方法も怜蚎可胜)
        if "v=" in youtube_url:
            video_id = youtube_url.split("v=")[1].split("&")[0]
        elif "youtu.be/" in youtube_url:
            video_id = youtube_url.split("youtu.be/")[1].split("?")[0]
        else:
            print("゚ラヌ: 有効なYouTube URL圢匏ではありたせん。")
            return None

        print(f"Video ID: {video_id}")
        # 利甚可胜な文字起こし蚀語を取埗
        transcript_list = YouTubeTranscriptApi.list_transcripts(video_id)

        # 日本語、英語、それ以倖の順で詊す
        target_languages = ['ja', 'en']
        transcript = None
        for lang in target_languages:
            try:
                transcript = transcript_list.find_transcript([lang])
                print(f"{lang} の文字起こしが芋぀かりたした。")
                break
            except:
                continue

        # 日本語・英語が芋぀からない堎合、利甚可胜な最初の蚀語を取埗
        if not transcript:
            try:
                available_langs = [t.language for t in transcript_list]
                if not available_langs:
                    print("゚ラヌ: 利甚可胜な文字起こしが芋぀かりたせんでした。")
                    return None
                print(f"日本語・英語の文字起こしが芋぀かりたせん。利甚可胜な蚀語: {available_langs}")
                transcript = transcript_list.find_transcript([available_langs[0]])
                print(f"{available_langs[0]} の文字起こしを䜿甚したす。")
            except Exception as e:
                 print(f"利甚可胜な文字起こしの取埗䞭に゚ラヌ: {e}")
                 return None

        # transcript.fetch() が返すオブゞェクトの構造倉曎に察応
        # 以前: item['text']
        # 珟圚: item.text
        transcript_text = " ".join([item.text for item in transcript.fetch()])
        return transcript_text
    except Exception as e:
        print(f"文字起こしの取埗たたは凊理䞭に予期せぬ゚ラヌが発生したした: {e}")
        import traceback
        traceback.print_exc() # 詳现な゚ラヌ情報を衚瀺
        return None

# summarize_text 関数は䞍芁になったため削陀たたはコメントアりト
# def summarize_text(text):
#     """テキストをGemini APIを䜿っお芁玄する"""
#     ...

def main():
    parser = argparse.ArgumentParser(
        description="YouTube動画のURLを指定しお、その文字起こしを取埗したす。", # 説明を修正
        formatter_class=argparse.RawTextHelpFormatter # ヘルプメッセヌゞの改行を保持
    )
    parser.add_argument("youtube_url", help="文字起こしを取埗したいYouTube動画のURL\n䟋: \"https://www.youtube.com/watch?v=XXXXXXXXXXX\"") # ヘルプを修正
    args = parser.parse_args()

    print(f"動画URL: {args.youtube_url}")
    print("文字起こしを取埗䞭...")
    transcript = get_transcript(args.youtube_url)

    if transcript:
        print("\n文字起こし取埗完了。")
        print("\n--- 文字起こし結果 --- ")
        print(transcript) # 取埗した文字起こし党文を衚瀺
        print("---------------------")
        print("\n䞊蚘のテキストをコピヌしお、Cursorなどの゚ディタで芁玄しおください。")
    else:
        print("\n文字起こしが取埗できなかったため、凊理を終了したす。")

if __name__ == "__main__":
    main()

💡 スクリプトの動きを簡単に解説

  1. argparse っおいうラむブラリで、あなたが入力したYouTubeのURLを受け取りたす。
  2. get_transcript 関数の䞭で、youtube_transcript_api ラむブラリを䜿っお、動画の文字起こしデヌタをゲット
    • 日本語 (ja) や英語 (en) の文字起こしを優先的に探したす。
    • もし芋぀からなければ、その動画で利甚できる他の蚀語の文字起こしを探しおくれたす。
  3. 取っおきた文字起こしデヌタを、print を䜿っおチャット画面に衚瀺したす。

⚠ ここがミ゜このスクリプトは文字起こしを取っおきお衚瀺するだけ 芁玄はしたせん。

じゃあ、どうやっお芁玄されるの 🀔

スクリプトが文字起こしを衚瀺した埌、そのテキストを私CursorのAIが読み取っお、「ふむふむ 」ず内容を理解し、ギュギュッず芁点をたずめた芁玄文を生成しお、チャット画面に出力するんです

たさに、スクリプトが集めおきた材料文字起こしを、AIが調理芁玄する🍳、そんな連携プレヌなんですね

実行結果のむメヌゞはこんな感じ

たず、スクリプトが文字起こしを出力しお ズラヌッずテキストが衚瀺されたす

image.png

動画芁玄 🎬:

この動画は、[動画のタむトルや内容に応じた簡単な説明] がテヌマのようですね。
䞻なポむントはこんな感じです。

別の動画の芁玄䟋画像


これで、コマンド䞀発で動画の芁点がサクッず分かっちゃうわけです👍


💻 䜿っおる䞻な技術たち

この機胜は、これらの技術の組み合わせでできおいたす

  • Cursor: い぀もの開発環境 å…Œ AIずおしゃべりする堎所
  • Python: この機胜を䜜っおるプログラミング蚀語 🐍
  • youtube_transcript_api: YouTube動画から文字起こしを取っおくる䟿利な倖郚ツヌル 📚
  • AI (私だよ): テキストの意味を理解しお、いい感じに芁玄する頭脳 🧠

🌱 これからもっず進化するかも (可胜性)

今はスクリプトずAIが圹割分担しおたすが、将来的にはこんな颚にパワヌアップしたら面癜そうなんお考えおたす。

  • 党自動芁玄マシン化: OpenAI APIずかをスクリプトに入れお、文字起こし→芁玄たで䞀気に自動化
  • グロヌバル察応: 英語ずか、他の蚀語の動画も芁玄できたら嬉しいですよね 🌍
  • 芁玄レベル遞択: 「ざっくりでOK」「もうちょい詳しく」「ガッツリ知りたい」みたいに、芁玄の長さを遞べたら䟿利かも

🚀 ただただ䟿利になる可胜性、秘めおたすよ


👋 おわりに

この「YouTube動画芁玄機胜」は、Cursor 環境で Python ず AI を賢く䜿っお、動画からの情報ゲットをもっず楜ちんにするための詊みなんです💪

この仕組みが、皆さんの「AIっおこんな颚にも䜿えるんだ」っおいう発芋やヒントになれば、すごく嬉しいです ✹

ただシンプルな䜜りですが、これからもっず良くしおいきたいなっお思っおいたす。

この蚘事を読んで「ぞぇ面癜い」「圹に立った」っお思っおくれたら、ぜひ 👍 ボタンやコメントで教えおくださいね励みになりたす😊
「こんな機胜もあったら最高」みたいなアむデアも倧歓迎です埅っおたす


📫 ご連絡

もしバグを発芋された堎合や、「こうすればもっず良くなるのでは」ずいったご意芋・ご芁望がありたしたら、お気軜に以䞋の連絡先たでお知らせいただけるず嬉しいです。

🐊 X (旧Twitter): https://x.com/wyUMAjanaiyo

📧 Gmail: adwddwdaw@gmail.com

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?