\

Pythonを使ってYouTubeの動画を文字起こしする方法について説明します。主に以下の3つの方法があります。

  1. youtube-transcript-api + LangChain
  2. pytube + moviepy + Whisper
  3. yt-dlp + Whisper

youtube-transcript-api + LangChain

この方法はYouTubeの字幕を取得します。自動生成字幕しかない場合は精度が少し下がるかもしれません。また、自動字幕もない場合は取得ができません。

pip install langchain youtube-transcript-api
from langchain_community.document_loaders import YoutubeLoader

YOUTUBE_URL = "https://www.youtube.com/watch?v=Rs2ORs1lNqY"
loader = YoutubeLoader.from_youtube_url(YOUTUBE_URL, add_video_info=False, language=["ja"], translation="en")
documents = loader.load()
content = documents[0].page_content
print(content)

pytube + moviepy + Whisper

この方法はYouTubeの動画をmp3に変換し、その音声データをWhisperで文字起こしします。料金がかかるけど、精度は高い。

pip install pytube moviepy openai
from pytube import YouTube
from moviepy.editor import *
from openai import OpenAI
import os

YOUTUBE_URL = "https://www.youtube.com/watch?v=Rs2ORs1lNqY"
FILE_PATH = "output"

os.environ["OPENAI_API_KEY"] = "sk-xxx"
client = OpenAI()

yt = YouTube(YOUTUBE_URL)
audio_stream = yt.streams.filter(only_audio=True).first()
temp_file = audio_stream.download()
audio_clip = AudioFileClip(temp_file)
audio_clip.write_audiofile(FILE_PATH + ".mp3", codec="libmp3lame")
os.remove(temp_file)

audio_file = open(f"/content/{FILE_PATH}.mp3", "rb")
transcript = client.audio.transcriptions.create(model="whisper-1", file=audio_file)
content = transcript.text
print(content)

yt-dlp + Whisper

この方法については詳細な情報がありませんが、yt-dlpを使ってYouTubeの動画や音声をダウンロードし、その後Whisperで文字起こしを行うという流れになります。

以上がPythonを使ったYouTube動画の文字起こし方法です。それぞれの方法には一長一短がありますので、自分のニーズに合わせて選択してください。

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です