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


やりたい事

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

最終的なもの

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

ではさっそく

premiereでの作業

Premiereでは単にチャプターしたいところにマーカーを打つだけ


個人的な動画なのでサムネは隠してますw

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

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

そしたらカンマ区切り値で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上で扱えればいいなと思っています。