DaVinci Resolve のマーカーから YouTube のチャプターを書き出した後に生成する
書き出しするとき、YouTube 設定でマーカーをチャプターにしてくれる機能がある。書き出したあとに再生成とかしたいので、どこかから普通にテキストとして書き出して欲しいが、たぶんできない? ので他の方法でなんとかした。
- マーカーのあるタイムラインを選択して右クリック
- [タイムライン] → [書き出し] → [タイムラインマーカーからEDL…] を選択して保存
- 以下のスクリプトを実行する
#!/usr/bin/env ruby
TC_POS = 0
TARGET_COLOR = "ResolveColorBlue"
chapters = []
tc = nil
while l = gets
l.chomp!
case l
when /(\d\d):(\d\d):(\d\d):(\d\d) (\d\d):(\d\d):(\d\d):(\d\d) (\d\d):(\d\d):(\d\d):(\d\d) (\d\d):(\d\d):(\d\d):(\d\d)/
tc = Regexp.last_match.captures.each_slice(4).to_a[TC_POS].map(&:to_i)
when / \|C:(.+?) \|M:(.+?) \|/
color, name, *_ = *Regexp.last_match.captures
if color == TARGET_COLOR
chapters << {
name: name,
color: color,
tc: tc,
}
end
end
end
remove_hh = chapters.map {|c| c[:tc][0] }.uniq.size == 1
chapters.each do |c|
c[:tc].pop # frame
if remove_hh
puts "%02d:%02d %s" % [ *c[:tc][1..], c[:name] ]
else
puts "%02d:%02d:%02d %s" % [ *c[:tc], c[:name] ]
end
end
関連エントリー
- はてブ用ブックマークレット 現在の非表示ユーザの総数: javascript:(async()=>{alert((await(await fetch("http://b...
- SRAM 使用量のカウント #!/usr/bin/env ruby require 'pp' D = Struct.new(:sec, :size, :name) ta...
- Mac でウェブカメラの定期撮影を Swift で書く macOS 用にウェブカメラからjpgを取得するコマンドラインツールにimagesnapというのがある。単発で使うには問題ないんだけど、イン...
- Android O から広色域ディスプレイがサポートされる デベロッパープレビューのそのようなことが書いてあった。 Wide-gamut color for apps: Android develop...
- Benchmark.js の結果表示を改善する Benchmark.js ちゃんと使えるので良いのですが、計測を頑張っている割に結果表示が貧弱というのが悲しいところです。 なので Perl...