summaryrefslogtreecommitdiff
path: root/video-metadata.rb
blob: be9e079f15ac96e30e0482d8be45808949c649a8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#!/usr/bin/env ruby
require 'json'

Dir[File.join(ARGV[0], "videos", "*", "*.mp4")].each do |mp4|
  # tmp = File.join("/tmp", File.basename(mp4))
  tmp = mp4 + "~"
  print `cp #{mp4} #{tmp}`
  meta = {
    "title" => File.basename(mp4, ".mp4").gsub("_", " "),
    "date" => mp4.split("/")[-2].split("_")[0],
    "artist" => "pdp8@pdp8.info",
    "copyright" => "© pdp8@pdp8.info Creative Commons Attribution-ShareAlike 4.0 International License",
  }
  tmp = mp4 + "~"
  print `cp #{mp4} #{tmp}`
  cmd = "ffmpeg -i #{tmp} -c copy "
  meta.each do |k, v|
    cmd += "-metadata #{k}=\"#{v}\" "
  end
  cmd += " #{mp4}"
  print `#{cmd}`
  webm = mp4.sub(".mp4", ".webm")
  tmp = webm + "~"
  print `cp #{webm} #{tmp}`
  cmd = "ffmpeg -i #{tmp} -c copy "
  meta.each do |k, v|
    cmd += "-metadata #{k}=\"#{v}\" "
  end
  cmd += " #{webm}"
  print `#{cmd}`
end