1
3

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の字幕ファイル(YTTファイル)をダウンロードする方法

Last updated at Posted at 2023-08-31

高度な表示のできる字幕の存在

YouTubeでこのような字幕が表示される動画を見たことがありますか?

sample.gif

自分でもこんな字幕を作ってみたい!

YouTube独自の字幕ファイル(YTTファイル)について調べていたところ、次の記事を見つけました:

この記事ではYTTファイルの仕様について詳しく解説しています。
しかし、この記事ではYTTファイルのダウンロード方法が記載されていませんでした。

YTTファイルのダウンロード方法

必要な環境

  • OS: Windows 11 Pro 22H2
  • Python: 3.9.16
  • yt-dlp: 2023.7.6
  • VSCode: 1.81.1

1. Python環境の構築

Pythonの環境構築については、こちらの記事などを参考にしてください。

2. yt-dlpのインストール

以下のコマンドを実行して、yt-dlpをインストールします。

$ pip install yt-dlp

3. コードを書く

以下のコードをyoutube_subtitle.pyという名前で保存します。

from yt_dlp import YoutubeDL
import requests

id = 'https://www.youtube.com/watch?v=vSHpZeCu8eg'  # 'vSHpZeCu8eg' のみでも可
language = 'ja'
subtitle_track_num = 3  # 必要に応じて特定の字幕トラックを選択できます

# YoutubeDLのインスタンスを初期化
ydl_opts = {
    'writesubtitles': True,
    'allsubtitles': True,
    'subtitleslangs': [language],
}

with YoutubeDL(ydl_opts) as ydl:
    info_dict = ydl.extract_info(id, download=False)

# 日本語の字幕が存在するかを確認
if 'subtitles' in info_dict and language in info_dict['subtitles']:
    subtitles_info = info_dict['subtitles'][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')

4. 実行する

スクリプトを実行すると、指定したYouTube動画の日本語字幕がダウンロードされ、YTTファイルとして保存されます。
保存されたYTTファイルを適用すると、表示が少し崩れることがありますが、ほぼ元の字幕と一致します。

Animation.gif

最後に

yt-dlpはYouTubeの仕様変更で動かなくなることがあります。その場合、開発者が対応するまで待ちましょう。

また、ダウンロードしたコンテンツは個人利用の範囲内で楽しみましょう。

この記事が、YouTubeの字幕をダウンロードして活用する際の参考になれば幸いです。

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?