Nodachisoft Nodachi Sword Icon
  
@あまじ✎ 2021年11月9日に更新

Linuxコマンドで字幕ファイルのsbv形式とvtt形式を手軽に変換

概要

Youtube などで利用可能な字幕ファイルのsbv形式とvtt形式を Linux コマンドで手軽に変換する方法を記載。また、手軽に Excel 上などで編集できるよう、CSV形式に変換する方法についても記載しています。 cygwin を使うことで Windows 上でも実行可能です。

sbv 形式から vtt形式への変換

以下のようなコマンドで test-sbv.txt ファイルから test-vtt.txt ファイルを出力(変換)します。

sbv形式からvtt形式への変換
echo WEBVTT > test-vtt.txt
echo Kind: captions >> test-vtt.txt
echo Language: ja >> test-vtt.txt
echo 0d0a | xxd -p -r >>  test-vtt.txt
cat test.sbv-sbv.txt | sed -r "s/(^[0-9]+:[0-9]+:[0-9]+.[0-9]+),/\\1\ -->\ /g" >> test-vtt.txt

sbv形式から vtt 形式への変換で、字幕の中に単純な「,」(カンマ)が入っていた場合でも 問題なく変換できるようにしています。

このコマンドで、例えば下のような SBV 形式を VTT 形式に簡単に変換することができます。

変換前の例:

test-sbv.txt
00:00:00.330,00:00:09.260
今日はお姉さんお兄さん
もしお暇でしたら私の怖い、不思議な、奇妙な

00:00:09.260,00:00:14.120
お話を聴いていいただけませんか

00:00:15.490,00:00:24.539
この裏庭への道を進んだ先が静かに話ができる秘密の場所です
 :(以下、略)

変換後の例: 下に変換。

test-sbv.txt
WEBVTT
Kind: captions
Language: ja

00:00:00.330 --> 00:00:09.260
今日はお姉さんお兄さん
もしお暇でしたら私の怖い、不思議な、奇妙な

00:00:09.260 --> 00:00:14.120
お話を聴いていいただけませんか

00:00:15.490 --> 00:00:24.539
この裏庭への道を進んだ先が静かに話ができる秘密の場所です
 :(以下、略)

sbv形式を csv 形式に変換

SBV形式の字幕データを以下のような CSV 形式に変換します。 エクセルなんかで字幕を処理するときに、CSV 形式だと扱いやすい時があったので備忘といています。

変換後のcsvの形式
字幕の開始時刻, 字幕の終了時刻, 字幕の内容

以下のコマンドで変換します。

sbv形式からcsv形式への変換
xxd -p -c 1000000 origin.sbv | sed s/0d0a0d0a/40404040/g | sed s/0d0a/2c/g | sed s/40404040/0d0a/g | xxd -p -r > convert.csv

字幕と字幕の切れ目を一時的に「@@@@」に変換することで、うまく一行で変換しています。 変換する対象の字幕テキストに文字列「@@@@」があるとうまく動かないのでご注意ください。

sbv形式を csv 形式に変換するバッチ

Windows 上で動作するバッチです。バッチに sbvファイルをドラッグ&ドロップすると、 同じファイル名で拡張子が「csv」のファイルがカレントディレクトリに出来上がります。

以下のプログラムをコピペして、適当に bat 拡張子で保存すると使い勝手が良いと思います!

convert_sbv_to_csv.bat
cat %1 | sed -r "s/(^[0-9]+:[0-9]+:[0-9]+.[0-9]+),([0-9]+:[0-9]+:[0-9]+.[0-9]+)/\1\@@@\2@@@/g" | sed -r s/\,/、/g | xxd -p -c 100000000 | sed s/0a0a/40404040/g | sed s/0a//g | sed s/40404040/0d0a/g | sed s/404040/2c/g | xxd -p -r > "%~dpn1.csv"

参考

変更履歴

  • なし
 
 
送信しました!

コメント、ありがとうございます。

なんかエラーでした

ごめんなさい。エラーでうまく送信できませんでした。ご迷惑をおかけします。しばらくおいてから再度送信を試していただくか、以下から DM などでご連絡頂ければと思います。

Twitter:@NodachiSoft_jp
お名前:
 
連絡先:
 
メッセージ:
 
戻る
内容の確認!

以下の内容でコメントを送信します。よろしければ、「送信」を押してください。修正する場合は「戻る」を押してください

お名前:
 
連絡先:
 
メッセージ:
 
Roboto からの操作ではないという確認のため確認キーを入れてください。
確認キー=95
戻る
 / 
送信確認へ
コメント欄
コメント送信確認へ

関連ありそうな記事(2件)です!

xxdコマンドでLinuxコマンドで改行コードなどバイナリデータの置換をする方法

#Linux✎ 2021-11-09
xxdコマンドを使ってLinuxでテキストの改行コードを削除したり、置換したり、バイナリデータの置換をする方法を記載。cygwin や msys をインストールすることで Windows 上でも実行可能
目次
Linuxコマンドで字幕ファイルのsbv形式とvtt形式を手軽に変換
Linuxコマンドで字幕ファイルのsbv形式とvtt形式を手軽に変換
概要
概要
sbv 形式から vtt形式への変換
sbv 形式から vtt形式への変換
sbv形式を csv 形式に変換
sbv形式を csv 形式に変換
sbv形式を csv 形式に変換するバッチ
sbv形式を csv 形式に変換するバッチ
参考
参考
変更履歴
変更履歴
Nodachisoft © 2021