0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

YouTube動画の字幕・文字起こしを取得して、Pythonでテキスト分析する方法

0
Posted at

YouTube動画の字幕・文字起こしを取得して、Pythonでテキスト分析する方法

ChatGPT Image 2026年8月9日 22_31_58.png

YouTubeには、プログラミング解説、技術カンファレンス、インタビュー、講義など、テキストデータとしても価値の高いコンテンツが数多くあります。

しかし、動画の中から特定のキーワードや発言を探したい場合、最初から最後まで動画を見直すのは時間がかかります。

そこで今回は、YouTube動画の文字起こしをテキストとして扱い、Pythonで簡単なテキスト分析を行う方法を紹介します。

今回の流れは以下です。

YouTube動画
    ↓
文字起こし
    ↓
テキストのクリーニング
    ↓
単語の抽出
    ↓
出現頻度の分析
    ↓
可視化

1. YouTubeの文字起こしをテキストとして取得する

YouTube動画の内容を分析する場合、まず動画の音声・字幕をテキストデータとして取得する必要があります。

自分で文字起こし処理を実装する方法もありますが、動画の字幕を利用できる場合は、まず既存の文字起こしデータを利用するほうがシンプルです。

例えば、YouTube動画のURLから文字起こしテキストを取得する方法として、私は YTtoText というシンプルなツールを利用しています。

YouTubeのURLを入力すると、動画の文字起こしを読みやすいテキストとして確認できます。

特に、以下のような長時間の動画を調べる場合に便利です。

  • プログラミングチュートリアル
  • 技術カンファレンス
  • インタビュー
  • ポッドキャスト
  • オンライン講義
  • 技術解説動画

この記事では、取得した文字起こしをPythonで処理してみます。

2. サンプルの文字起こしを用意する

まずは分析用のテキストを用意します。

実際のYouTube動画の文字起こしを使う場合は、取得したテキストをこの変数に入れてください。

transcript = """
Python is a popular programming language used for data analysis,
machine learning, automation, and web development.

Python has a large ecosystem of libraries and frameworks.
Data scientists use Python for processing and analyzing large datasets.
Machine learning is another important application of Python.
"""

3. テキストをクリーニングする

文字起こしデータには、改行や余分な空白などが含まれている場合があります。

まずは不要な空白を整理します。

import re

def clean_text(text):
    text = re.sub(r'\s+', ' ', text)
    return text.strip()

clean_transcript = clean_text(transcript)

print(clean_transcript)

これだけでも、後続のテキスト処理が扱いやすくなります。

4. 単語を抽出する

次に、文章から英単語を抽出します。

words = re.findall(r'\b[a-zA-Z]+\b', clean_transcript.lower())

print(words[:20])

例えば、以下のようなリストが得られます。

['python', 'is', 'a', 'popular', 'programming', ...]

5. 単語の出現回数を調べる

Pythonの Counter を使うと、単語が何回登場したかを簡単に調べられます。

from collections import Counter

word_counts = Counter(words)

for word, count in word_counts.most_common(10):
    print(f"{word}: {count}")

これによって、その動画で頻繁に登場する単語を確認できます。

例えば、プログラミングに関する動画であれば、

python
data
machine
learning
programming

のような技術用語が上位に出てくる可能性があります。

6. 頻出単語をグラフで可視化する

数字だけでは分かりにくい場合は、グラフにすると直感的に理解できます。

import matplotlib.pyplot as plt

common_words = word_counts.most_common(10)

words = [item[0] for item in common_words]
counts = [item[1] for item in common_words]

plt.figure(figsize=(10, 5))
plt.bar(words, counts)

plt.xlabel("Word")
plt.ylabel("Frequency")
plt.title("Most Common Words in YouTube Transcript")

plt.xticks(rotation=45)
plt.tight_layout()
plt.show()

これで、文字起こしの中で頻繁に使われている単語を簡単に確認できます。

7. 日本語の文字起こしを分析する場合

日本語の文字起こしを分析する場合、英語のように単純にスペースで単語を区切ることができません。

そのため、形態素解析を利用する方法があります。

例えば、MeCabやJanomeなどを利用できます。

Janomeを使う場合は、以下のように形態素解析を行えます。

from janome.tokenizer import Tokenizer

tokenizer = Tokenizer()

text = "Pythonを使ってYouTubeの文字起こしを分析します。"

for token in tokenizer.tokenize(text):
    print(token.surface, token.part_of_speech)

これによって、日本語の文章を単語単位で処理できます。

8. 文字起こしデータからできること

YouTubeの文字起こしをテキストデータとして取得すると、単純な単語頻度だけでなく、さらに多くの分析ができます。

例えば、

  • キーワード抽出
  • TF-IDF
  • 感情分析
  • トピック分析
  • テキスト分類
  • 要約
  • 文書間の類似度分析
  • 埋め込みベクトルによる検索
  • RAG用データの作成

などに応用できます。

特に長時間の技術動画を対象にする場合、文字起こしを検索可能なデータにしておくと、動画の中から必要な情報を探しやすくなります。

9. YouTube文字起こしを利用するときの注意点

文字起こしデータを利用するときは、著作権やYouTubeの利用規約などを確認する必要があります。

特に、第三者が作成した動画の文字起こしをそのまま公開・再配布する場合は注意してください。

個人的な調査や分析で利用する場合と、文字起こしデータそのものを公開・再配布する場合では、考慮すべき点が異なります。

また、動画に字幕が存在しない場合や、自動生成字幕の品質が低い場合には、分析結果にも影響します。

そのため、重要な分析を行う場合は元の動画や字幕の内容も確認することをおすすめします。

10. まとめ

YouTube動画は、そのままでは分析しにくいデータですが、文字起こしをテキストとして取得すると、Pythonを使ってさまざまな分析ができるようになります。

基本的な流れは、

YouTube
↓
文字起こし
↓
テキストクリーニング
↓
単語抽出
↓
頻度分析
↓
可視化

です。

まずは単語の出現頻度を調べるだけでも、動画の大まかなテーマを把握できます。

さらにTF-IDF、形態素解析、自然言語処理、LLMなどを組み合わせれば、より高度な分析にも発展させることができます。

YouTube動画の文字起こしを手軽に取得してから分析したい場合は、YTtoText を利用できます。

この記事が、YouTubeの動画コンテンツをテキストデータとして分析する際の参考になれば幸いです。

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?