LoginSignup
2
3

More than 5 years have passed since last update.

premireで付けたチャプターマーカーをyoutubeでチャプタージャンプで使える様に

Last updated at Posted at 2018-12-21

やりたい事

youtubeで動画を投稿した際にまた見たいシーンなどによく使われる、チャプタージャンプ(私が勝手にそう呼んでいる)を楽に一覧で出したい。
そしてそれをコピペして概要欄に貼るだけ。

最終的なもの

キャプチャ.PNG

この青枠のタイムコードを押せば指定の時間にジャンプ出来る。

ではさっそく

premiereでの作業

Premiereでは単にチャプターしたいところにマーカーを打つだけ
001.PNG
002.PNG
個人的な動画なのでサムネは隠してますw

マーカーの付ける作業が終わったら次にCSVデータでマーカー情報を書き出します。

書き出し方法は
Premiereの上部のナビゲーションバーから
ファイル→書き出し→マーカー

名称未設定-1.jpg

そしたらカンマ区切り値でcsvを書き出してください。

ここで一つ情報ですが、premiereのこのカンマ区切り実はタブ区切りです。
プログラムを作ってる時にカンマ区切りがうまく出来なくて、中を見たらタブ区切りになってました。
adobeに問い合わせると、認知しているバグで修正の予定は未定らしいです。
なのでプログラムではタブ区切りで扱います。

プログラムの内容

さて本題のプログラムです。
何も難しいことはやっていません。
CSVを読み込んで、コンソールでテキストを書き出すだけです。

コード


// 初期変数宣言
var myCsvFilePath;//CsvFilePath
var myCsvFile = new Object();//CSVファイル
var csv= [];//全データ

{//==============================function==============================

//csvのファイルパスを取得
function GetCsvFilePath (){
    myCsvFilePath = new File();
    var fileName = File.openDialog("Select csv file","");
    if ( GetFileName(fileName,2) == 'csv'){
        myCsvFilePath= new File(fileName); 
    }
    else{
        alert('csvファイルを選択して下さい。');
         myCsvFilePath = false;
    }
    return myCsvFilePath;
}; 

//myCsvFileを配列CSVに格納
function doit_csv_Obj(){
    var myText= '';
    if (myCsvFilePath.open("r")){
        while(!myCsvFilePath.eof){
            var tempLine = myCsvFilePath.readln();
            if(countStr(tempLine,"\"")%2 == 0) {
                myText = myText + tempLine+"\n";
            }
            else {
                myText = myText + tempLine+"\r";
                while(true){
                    tempLine = myCsvFilePath.readln();
                    if(countStr(tempLine,"\"")%2 == 1) {
                        myText = myText + tempLine+"\n";
                        break;
                    }
                    else {
                        myText = myText + tempLine+"\r";
                    }
                }
            }
        }
        myCsvFilePath.close();
    }
        var tmp = myText.replace(/"/g,"").split("\n");
        for( var i=0 ; i < tmp.length ; i ++ ){
            csv[i] = tmp[i].split('\t');
        };
}

}//==============================function==============================

{//==============================method==============================

function GetFileName(FilePath,Num){
    var returnStr="";
    var reg=/(.*)(?:\.([^.]+$))/;
    switch(Num){
        case 0 : returnStr = FilePath.name.match(reg)[0]; break; //groom.csv
        case 1 : returnStr = FilePath.name.match(reg)[1]; break; //groom
        case 2 : returnStr = FilePath.name.match(reg)[2]; break; //csv
    }
    return returnStr;
}

function countStr(str,seq) {
    return str.split(seq).length - 1;
}

}//==============================method==============================


GetCsvFilePath ();
doit_csv_Obj();


for ( var i = 1 ; i < csv.length-1 ; i ++ ){
$.writeln(""+csv[i][0]+" "+csv[i][2].slice( 0, -3 ))    
}
$.writeln("END")

これを実行するとファイルオープンブラウザが立ち上がるので書き出したCSVを読み込んでください。
そしてextendscriptのコンソールに表示されます。

・Test1 00:01:49
・Test2 00:05:01
・チャプター名 00:07:17
・テキスト 01:07:17
END

premiereで付けた名前とそのタイムコードが表示されるのでこれをyoutubeにコピペして終わり。

長尺の動画などでは活用できる場面が多いのではないでしょうか。
youtubeヘビーユーザーなら助かりますね!!

最終的には

これをWEB上で扱えればいいなと思っています。

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