Pythonは多機能なプログラミング言語で、その一つとしてYouTubeの字幕をダウンロードすることが可能です。ここでは、Pythonを使ってYouTubeの字幕をダウンロードする方法を紹介します。
パッケージのインストール
まずは必要なパッケージをインストールします。ここではdownload-youtube-subtitle
というパッケージを使用します。このパッケージはYouTubeのAPIの変更に対応しており、プレイリスト全体の字幕をダウンロードすることが可能です。
pip install download-youtube-subtitle
字幕のダウンロード
次に、実際に字幕をダウンロードするコードを書きます。以下に一例を示します。
from yt_dlp import YoutubeDL
import requests
id = 'https://www.youtube.com/watch?v=vSHpZeCu8eg' # YouTubeの動画ID
language = 'ja' # 字幕の言語
subtitle_track_num = 3 # 字幕トラックの番号
# YoutubeDLのインスタンスを初期化
ydl_opts = {
'writesubtitles': True,
'allsubtitles': True,
'subtitleslangs': [f'{language}'],
}
with YoutubeDL(ydl_opts) as ydl:
info_dict = ydl.extract_info(id, download=False)
# 日本語の字幕が存在するかを確認
if 'subtitles' in info_dict and f'{language}' in info_dict['subtitles']:
subtitles_info = info_dict['subtitles'][f'{language}']
# 字幕トラックが利用可能かを確認
if subtitles_info:
subtitle_track = subtitles_info[subtitle_track_num]
# 字幕の内容を取得
subtitle_content = requests.get(subtitle_track['url']).text
# 動画のタイトルから特殊文字を削除
title = ''.join(char for char in res["title"] if char.isalnum())
# 字幕の内容をファイルに保存
with open(f'{id}_{title}_{language}.{ext}.ytt', 'w', encoding='utf-8') as subtitle_file:
subtitle_file.write(subtitle_content)
print('\\033[32m'+'success : 日本語の字幕をダウンロードして保存しました。 '+'\\033[0m')
else:
print('\\033[31m'+'failure : 日本語の字幕トラックが見つかりませんでした。 '+'\\033[0m')
else:
print('\\033[31m'+'failure : この動画には日本語の字幕が利用できません。 '+'\\033[0m')
このコードは、指定したYouTubeの動画から字幕をダウンロードし、それをテキストファイルとして保存します。
注意点
YouTubeの仕様変更により、上記のコードが動作しなくなる可能性があります。その場合は、開発者が対応するまで待つか、別の方法を探す必要があります。
また、YouTubeからダウンロードしたものはアップロードした人に権利があるので、個人の範囲内で楽しみましょう。
以上がPythonを使ってYouTubeの字幕をダウンロードする方法です。Pythonの多機能性を活かして、さまざまな作業を自動化してみてください。