Time2Clipboard

From Wiki4Intranet
Jump to: navigation, search

VLC — медиаплеер, оптимальный для активного просмотра, с клавиатурной быстрой навигацией для поиска интересующих моментов.

И часто нужно очень быстро брать время этих моментов. Например, если видео нужно разметить (указать время начала глав для ссылок на Vimeo/YouTube/с корпоративной MediaWiki), либо при видеомонтаже, с использованием SeminarAssembler.

Для решения этой задачи я набросал небольшой LUA-скрипт для VLC, который после активации, на каждое нажатие «CTRL-T» сбрасывает отформатированное время в клипборд.

Работает под Windows.

Attention niels epting.svg Не работает с VLC>2.0.8

 
-- Time2Clipboard.lua -- VLC extension --
--[[
Put the file in the VLC subdir …/lua/extensions.
Activate extension by menu "View -> Time2Clipboard"
 
When activated, listen keyboard, and on "Ctrl-?"
put formatted time to clipboard.
 
Windows only, because of "clip" command-line utility.
--]]
 
function key_press( var, old, new, data )
   local key = new
 
   if key == 67108911 or key == 67108910  then
       local input = vlc.object.input()
       if input then
            local elapsed_time = vlc.var.get(input, "time")
            local elapsedHour = math.floor(elapsed_time / 3600)
            local elapsedMinute = math.floor((elapsed_time % 3600) / 60)
            local elapsedSecond = math.floor(elapsed_time % 60)    
            local elapsed_time_str = string.format("%02d:%02d:%02d", elapsedHour, elapsedMinute, elapsedSecond)
            strCmd = 'echo '..elapsed_time_str..' |clip'
            os.execute(strCmd)
       end
   end
   -- strCmd = 'echo '..key..' |clip'
   -- os.execute(strCmd)
end
 
function descriptor()
   return {
      title = "Time2Clipboard";
      version = "1.0";
      author = "stanislav.fomin@gmail.com";
      url = 'http://wiki.4intra.net/Time2Clipboard';
      shortdesc = "Time2Clipboard";
      description = "paste formatted time of current media frame to clipboard";
}
end
 
function activate()
   vlc.var.add_callback( vlc.object.libvlc(), "key-pressed", key_press )
end
 

В идеале, хотелось бы как-то посадить это на глобальные хоткеи, чтобы не переключаться между, например, текстовым редактором и видеоплеером на отдельном мониторе, но не вижу как это сделать → хук на клавиатуру не посадить, а хоткеи, почему-то, нельзя замаппить на вызов расширения, даже баг давно есть → https://trac.videolan.org/vlc/ticket/3883