👀

youtubeの英語字幕を読みやすいテキストに変換する

2021/08/29に公開

やったこと

Youtubeの英語字幕をダウンロードするサイトで字幕テキストをダウンロードすると、文の途中で改行が入り、読みづらい。

このテキストを読みやすい形に整形するスクリプトを書きました。

スクリプト

import sys
import os

if __name__ == '__main__':
    
    input_file = 'test.txt'
    if len(sys.argv) == 2:
        input_file = sys.argv[1]
        print(input_file)
    else:
        print("please pass args")
        exit(1)

    if not os.path.isfile(input_file):
        print("file not found")
        exit(1)
        
    f = open(input_file, 'r')
    lines = f.readlines()

    output_lines = []
    i = 0
    temp_text = ""
    while i < len(lines):
        stripped_text = lines[i].rstrip('\n')
        if len(stripped_text) > 0:
            if stripped_text[-1] in [".", "!", "?", "]"]:
                output_lines.append(temp_text + " " + stripped_text)
                temp_text = ""
            else:        
                if temp_text == "":
                    temp_text = stripped_text
                else:
                    temp_text += " "
                    temp_text += stripped_text
        i += 1

    f = open('output_' + input_file, 'x')
    for line in output_lines:
        f.write(line.lstrip(" ")+"\n\n")

使い方

$ python easy-to-read-subtitles-generator.py subtitles.txt
# 加工されて読みやすくなる
$ head output_test.txt                 
[MUSIC PLAYING]

MATT SULLIVAN: Welcome, everyone, and thank you for coming along to our talk today.

We are very happy to see so many people in the audience, because we spent a long time thinking about how we could make the title of our talk the most exciting and click-baity title we could make it.

And all we could come up with was pragmatic state management.

So thank you for taking the time to come and see our talk.

さいごに

作成したテキストをgoogleドキュメントなどで開いて、辞書を引きながら読みやすくなりました。(画像はiPadのsplit view)

Discussion