Video Player - mpv GUI: sorting files
This is an example using hotkeys and scripting for sorting video files by moving them to different folders while playing.
Lua scripting was added with VideoPlayerMpv 3.1. It is very basic at the moment (just few custom functions) and not documented yet (but it was copied from tSIP softphone, so some of its documentation would still be true in this application).
Script setup for this example consist of one common script (doing actual work) and N (here N = 4) very short scripts with different output folders defined inside. These short scripts are assigned to hotkeys (e.g. F1 ... F4) and they are calling common script.
Hotkey setup
Example scripts assigned to hotkeys:
-- MoveToA.lua local dir = "D:\\Dokumenty\\_PROJEKTY\\VideoPlayerMpv\\VideoPlayer\\Debug_Build\\_test\\folderA\\" -- destination dir local common = require("scripts.CommonMoveFile") common.MoveFileToDir(dir)
-- MoveToB.lua local dir = "D:\\Dokumenty\\_PROJEKTY\\VideoPlayerMpv\\VideoPlayer\\Debug_Build\\_test\\folderB\\" -- destination dir local common = require("scripts.CommonMoveFile") common.MoveFileToDir(dir)
Common script:
-- CommonMoveFile.lua local M = {} -- public interface function M.MoveFileToDir(dstDir) local filename = GetCurrentFileName() if filename.len == 0 then return end -- accept directories with and without trailing backslash if dstDir:sub(-1, -1) ~= "\\" then dstDir = dstDir .. "\\" end ForceDirectories(dstDir) -- extract source file name without dir local index = string.find(filename:reverse(), "\\") local fname if index == nil then fname = filename else fname = string.sub(filename, -(index-1)) end print(string.format("Current file: %s\n", filename)) Skip() -- play next -- move to destination dir local dstFile = dstDir .. fname local result = MoveFile(filename, dstFile) print(string.format("Destination: %s\n", dstFile)) if result ~= 0 then print(string.format("Moving %s to %s failed!\n", filename, dstFile)) ShowMessage("Moving " .. filename .. " failed!") else print(string.format("%s moved to %s\n", filename, dstFile)) end end return M
Scripts as zip
Unzip script files to VideoPlayer /scripts subdirectory: scripts.zip.
Notes
- these scripts should be used while playing files from playlist
- default hotkeys configuration roughly follows mplayer "standard", arrows for seeking +/- 3s and +/-60s, page up/down for going to previous/next file, space pauses/resumes, enter stops/starts, mouse scroll controls volume, "F" switches from/to fullscreen, "O" switches OSD modes
- context menu of playback list contains "Remove missing files from list" item - use it after files are moved
- there is probably useful "Show file name (OSD) when playback starts" option in settings
- only shortly tested; possible problems might include handling of files with Unicode/non-ANSI characters in file paths and names
Back to VideoPlayerMpv.