DevelopmentPremiere Pro

[Premiere Pro] クリップから YouTube 字幕用タイムコードを出力

概要

Visual Studio Code の ExtendScript Debugger 拡張を使って、スクリプトで Adobe Premiere Pro で選択しているクリップの開始・終了時刻を、YouTube の字幕編集で使える SubViewer(.sbv)形式 のファイルとして出力するよ。一から字幕編集するよりは楽かも?

ExtendScript Debugger のインストール

Visual Studio Code で、ExtendScript Debugger をインストール。

launch.json を編集

最初に、デバッグ構成を編集。Debug ビューのギアのアイコンから launch.json を作成できるよ。"program": "${file}" としておくことで、編集中のスクリプトを実行できるようになるよ。

launch.json
{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "type": "extendscript-debug",
            "request": "launch",
            "name": "Run current script",
            "program": "${file}",
            "stopOnEntry": false
        }
    ]
}

ExtendScript Debugger にも説明があるよ。

スクリプトファイルの作成

.jsx ファイルを作成。コードはこんな感じ。

pr_timecode.jsx
var file = new File("/Users/kei/Creative Cloud Files/scripts/clip.sbv"); // TODO: 実際のパスに変更
file.open( "w" );

var seq = app.project.activeSequence; // 現在のプロジェクトのアクティブなシーケンス

for (var i = 0; i < seq.videoTracks.length; ++i) { // ビデオトラックから探す
    writeClipTimecodes(seq.videoTracks[i]);
}
for (var i = 0; i < seq.audioTracks.length; ++i) { // オーディオトラックから探す
    writeClipTimecodes(seq.audioTracks[i]);
}

file.close();
file = null;

function writeClipTimecodes(track) {
    for (var i = 0; i < track.clips.length; ++i) { // トラック内のクリップ
        var clip = track.clips[i];

        if (!clip.isSelected()) { // 選択されていなければスキップ
            continue;
        }

        var start = clip.start;
        var end = clip.end;

        // .sbv 形式のタイムコードと字幕テキスト
        file.writeln(
            (Math.floor(start.seconds / 3600)) + ":" + 
            (Math.floor(start.seconds / 60) % 60) + ":" + 
            (start.seconds % 60) + "," +
            (Math.floor(end.seconds / 3600)) + ":" + 
            (Math.floor(end.seconds / 60) % 60) + ":" + 
            (end.seconds % 60));
        file.writeln(clip.name); // 字幕テキストは仮にクリップ名とする
        file.writeln();
    }
}

スクリプトのデバッグ・実行

Visual Studio Code のステータスバーから、Adobe Premiere Pro を選択。Premiere Pro も起動しよう。

デバッグを開始すると、うまく動作すれば、指定した場所に .sbv ファイルができるから、これを使って YouTube 字幕を編集してみてね。

ステータスバーからターゲットアプリケーションを選択

デバッグのヒント

ブレークポイントで、実行の途中で止めると、Premiere Pro のオブジェクトの情報を Debug ビューの variables から見れるから、どんな情報を取得できるか調べるのに役立つよ。

それと、Welcome to the Premiere Pro Scripting Guide! — Premiere Pro Scripting Guide 14.5 documentation のドキュメントを参照すると、どんなオブジェクトがあるか わかるよ。