请求编写mpv脚本:按艺术家元标签创建文件夹整理媒体库
实现mpv按艺术家元标签自动整理媒体文件
核心思路
用mpv的Lua脚本读取媒体文件的艺术家元标签,自动构建目标路径、创建文件夹并完成文件复制,替换原来固定路径的快捷键操作。
1. 编写Lua脚本(tag-organizer.lua)
创建一个名为tag-organizer.lua的脚本文件,放到mpv的scripts目录(Windows下通常是%APPDATA%\mpv\scripts,macOS/Linux是~/.config/mpv/scripts):
-- tag-organizer.lua -- 替换为你的媒体库根目录 local target_root = "D:\\Media\\Music" function organize_by_artist() -- 获取当前播放文件的路径和文件名 local current_path = mp.get_property("path") local filename = mp.get_property("filename") if not current_path or not filename then mp.osd_message("无法获取文件信息", 3) return end -- 获取艺术家元标签,无标签则用默认值 local artist = mp.get_property("metadata/by-key/artist") or "Unknown Artist" -- 替换艺术家名称中的非法路径字符(避免创建文件夹失败) artist = string.gsub(artist, "[/\\:*?\"<>|]", "_") -- 构建目标路径 local target_dir = target_root .. "\\" .. artist local target_path = target_dir .. "\\" .. filename -- 创建目标文件夹(忽略已存在的错误) os.execute('mkdir "' .. target_dir .. '" 2>nul') -- 执行复制命令 local copy_cmd = 'copy "' .. current_path .. '" "' .. target_path .. '"' local success = os.execute(copy_cmd) -- 显示操作结果 if success then mp.osd_message("已整理至: " .. target_path, 3) else mp.osd_message("整理失败,请检查权限或路径", 3) end end -- 注册自定义脚本命令,供快捷键调用 mp.register_script_message("organize-by-artist", organize_by_artist)
2. 修改input.conf快捷键
打开mpv的input.conf文件,把原来的ctrl+m快捷键配置替换为:
ctrl+m script-message organize-by-artist
注意事项
- 跨平台适配:如果是Linux/macOS用户,需要修改脚本中的命令:
- 把
mkdir "' .. target_dir .. '" 2>nul改成mkdir -p "' .. target_dir .. '" - 把
copy命令改成cp - 路径分隔符
\\换成/,比如target_root = "/home/yourname/Media/Music"
- 把
- 特殊字符处理:脚本会自动将艺术家名称中的
/、\、:、*、?、"、<、>、|等非法字符替换为下划线,避免路径错误 - 无标签文件:没有艺术家标签的文件会被归类到
Unknown Artist文件夹
内容的提问来源于stack exchange,提问作者Bora Savkar
相关产品推荐
相关产品推荐

