投資分析や情報収集のために、YouTubeの動画を端から端まで眺める。その行為が悪いとは言わない。だが、時間は有限だ。1,000本を超える動画アーカイブを持つチャンネルをすべてチェックするのに、一体どれだけのコストを支払うつもりなのか。
賢明な投資家や分析家は、時間をショートカットする。Macのターミナルとわずかなコードを用い、チャンネル内の全動画から「テキスト」のみを抽出する方法がある。それをGoogleのAI「NotebookLM」に読み込ませれば、膨大な知識ベースを持つ強力な分析パートナーが手に入るというわけだ。
手順は至ってシンプル。「コマンドをコピーして実行する」。それだけで完結する。
ステップ1:道具の調達
まずはMacの「ターミナル」を起動する。黒い画面が表示されても動じる必要はない。
最初に、動画データを扱うためのツール「yt-dlp」を導入する。すでに環境が整っているなら、この工程は飛ばして構わない。
python3 -m pip install yt-dlp
ステップ2:字幕データの確保
動画ファイルそのものは不要だ。必要なのは「言葉」のみ。
まずはデスクトップに専用のフォルダを作成し、そこへ移動する。
cd ~/Desktop && mkdir my_channel_subs && cd my_channel_subs
次に、字幕データをダウンロードする。以下のコマンドの末尾にあるURLを、分析したいチャンネルのURLに書き換えてから実行してくれ。
python3 -m yt_dlp --skip-download --write-auto-sub --sub-lang ja --output "%(upload_date)s_%(title)s" https://www.youtube.com/@ターゲットのチャンネルID/videos
ステップ3:データの研磨
ここが最も重要な局面だ。ダウンロードされたVTTファイルを確認すればわかる通り、タイムスタンプや制御タグで埋め尽くされている。加えてYouTubeの自動字幕は「カラオケ形式」であり、同じフレーズが何度も重複して記録されている。
このままAIに読み込ませても、ノイズ過多でエラーを吐くだけだ。
そこで、フォルダ内の全ファイルを巡回し、不要なタグを除去し、重複行を整理して、可読性の高い「TXTファイル」へと変換するプログラムを作成する。
以下の長いコードブロックをコピーし、ターミナルに貼り付けて実行する。これで「変換ツール」がその場で作られる。
# 変換プログラムを作成する
cat << 'EOF' > convert_all_vtts.py
import glob
import re
import os
def clean_text(text):
lines = text.split('\n')
cleaned_lines = []
# タグと時刻の削除
for line in lines:
if '-->' in line or line.startswith('WEBVTT') or line.startswith('Kind:') or line.startswith('Language:'):
continue
line = re.sub(r'<[^>]+>', '', line)
line = line.strip()
if line:
cleaned_lines.append(line)
# 重複行の削除(カラオケ字幕対策)
unique_lines = []
if not cleaned_lines:
return ""
for i in range(len(cleaned_lines) - 1):
current_line = cleaned_lines[i]
next_line = cleaned_lines[i+1]
if next_line.startswith(current_line):
continue
if current_line == next_line:
continue
unique_lines.append(current_line)
if cleaned_lines:
unique_lines.append(cleaned_lines[-1])
return '\n'.join(unique_lines)
# 実行処理
vtt_files = glob.glob("*.vtt")
print(f"{len(vtt_files)} 個のファイルを確認。変換を開始する。")
count = 0
for vtt_file in vtt_files:
try:
with open(vtt_file, 'r', encoding='utf-8') as f:
content = f.read()
clean_content = clean_text(content)
txt_file = vtt_file.rsplit('.', 1)[0] + ".txt"
with open(txt_file, 'w', encoding='utf-8') as f:
f.write(clean_content)
count += 1
except Exception as e:
print(f"エラー発生 ({vtt_file}): {e}")
print(f"完了。 {count} 個のファイルをテキスト形式に変換した。")
EOF
道具は完成した。あとは引き金を引くだけだ。以下のコマンドで変換を実行する。
python3 convert_all_vtts.py
ステップ4:情報の統合
フォルダ内には、整形されたテキストファイルが並んでいるはずだ。
NotebookLMには一度に読み込めるファイル数に制限があるため、これらを「一つの統合ファイル」にまとめる処理を行う。
cat *.txt > All_Videos_Cleaned.txt
ファイナル:AIによる分析
これで準備は整った。デスクトップに生成された All_Videos_Cleaned.txt。これこそが、そのチャンネルが長年蓄積してきた知見の結晶だ。
あとはこれをGoogleの NotebookLM にアップロードすればいい。
「今後の市場見通しはどうなっている?」「過去に言及されたリスク要因を列挙せよ」……あらゆる問いかけに対し、答えは即座に提示される。
数千時間の動画を視聴する必要はない。結果だけを享受すればいい。
なお、この手法はあくまで私的利用の範囲に留めること。権利侵害やトラブルにならぬよう、節度ある運用を推奨する。