Skip to content

Instantly share code, notes, and snippets.

@cmplstofB
Last active July 26, 2020 10:22
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save cmplstofB/dfa48f8b3106797ff36d48eaa6f63893 to your computer and use it in GitHub Desktop.
Save cmplstofB/dfa48f8b3106797ff36d48eaa6f63893 to your computer and use it in GitHub Desktop.
YouTubeのJSON形式の字幕を一行一文の平文に変換する。

ytcj2txt — YouTubeの字幕から平文への変換

不具合

一行一文に変換する仕組みはかなり大雑把である。 例えば,

1. ほげほげ。
2. ふがふが。

といった箇条書きは「1.」の後に改行すべきでないし, www.youtube.comという番地は一続きの語として処理されるべきであるが, 現在の実装ではこれらを一絡に句点の後で改行してしまう。

jq '.events[].segs[].utf8' |
sed -e 's/^"//;s/"$//;s/\. /.\
/g' |
sed -e ':a
/[。!?.!?]$/ b
$ b
N;s/\n/ /;b a'
@cmplstofB
Copy link
Author

YouTubeの字幕形式についての公式文書: サポートされる字幕ファイル
恐らく,JSON形式は独自仕様。

YouTubeの字幕をJSON形式で入手するには,

'https://www.youtube.com/api/timedtext?v=〈動画識別子〉&lang=〈言語〉&fmt=json3'

から取得すればよい。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment