LoginSignup
0
1

More than 5 years have passed since last update.

新しくなったYoutubeの字幕XMLをSRTファイルに変換するツール

Last updated at Posted at 2017-09-08

Youtubeのある動画の字幕の自動翻訳が気に食わなくて
もう少しマシな翻訳にしたいなと、Chromeのデベロッパーツールで字幕ファイルをダウンロードした。

見たことがない形式だったので、使いやすいSRTファイルに変換しようとしたが現在の字幕ファイルに対応しているツールは見つからなかった。

しかたないので、適当に変換ツールを作ってみました。
こちら
誰かの役に立てたら幸いです。

ソースコード

<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<script>
$(function(){
  $("#datafile").on("change", function(){
    var file = $(this).prop('files')[0];
    var fileRdr = new FileReader();

    if(!this.files.length){
      return;
    }

    fileRdr.onload = function() {
      $("#src").text(fileRdr.result);
    }
    fileRdr.readAsText(file);
  });

  $("#execute").on("click", function(){
    var text = "";
    var cnt = 0;
    $($("#src").text()).find("p").each(function(){
      if($(this).text().length > 1 || $(this).text() != "\n"){
        text += (++cnt) + "\n" + tick2time($(this).attr("t")) + " --> " + tick2time($(this).attr("t")*1 + $(this).attr("d")*1) + "\n" + $(this).text() + "\n\n";
      }
    });
    $("#dst").text(text);
  });

  function tick2time(tick){
    var h, m, s, ms;
    ms = tick % 1000;
    tick = Math.floor(tick/1000);
    s = tick % 60;
    m = Math.floor(tick / 60) % 60;
    h = Math.floor(tick / 3600);
    return ( "0" + h ).slice( -2 ) + ":" +
           ( "0" + m ).slice( -2 ) + ":" +
           ( "0" + s ).slice( -2 ) + "," + 
           ( "00" + ms ).slice( -3 );
  }

});
</script>
<title>timedtext.xml to srt Convertor</title>
</head>
<body>
<h1>timedtext.xml to srt Convertor</h1>
<input id="datafile" type="file" accept="text/plain,text/xml"/>
<br>
<b>source</b><br>
<textarea id="src" rows="10" cols="100"></textarea><br>
<br>
<button id="execute">Convert</button><br>
<b>dest</b><br>
<textarea id="dst" rows="40" cols="100"></textarea><br>
</body>
</html>

こんなダサいツールではなく、ちゃんとしたのを誰かが作ってくれることを期待します。(^^;

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