mixxx cue sheet to anonradio metadata converter script
This commit is contained in:
parent
d09dad44cb
commit
faecb25469
1 changed files with 68 additions and 0 deletions
68
misc/scripts/cuetometa.lua
Executable file
68
misc/scripts/cuetometa.lua
Executable file
|
@ -0,0 +1,68 @@
|
||||||
|
#!/bin/lua
|
||||||
|
|
||||||
|
-- Mixxx CUE sheet to aNONradio metadata
|
||||||
|
-- And also text tracklist
|
||||||
|
|
||||||
|
local path = arg[1]
|
||||||
|
local basename = ""
|
||||||
|
|
||||||
|
do
|
||||||
|
local cur_pos = 1
|
||||||
|
for i = 1, path:len() do
|
||||||
|
local start_pos, end_pos = path:find("/", cur_pos, true)
|
||||||
|
if not start_pos then break end
|
||||||
|
|
||||||
|
cur_pos = end_pos + 1
|
||||||
|
end
|
||||||
|
|
||||||
|
basename = path:sub(cur_pos)
|
||||||
|
end
|
||||||
|
|
||||||
|
local cuefile = io.open(path)
|
||||||
|
if not cuefile then
|
||||||
|
print("Failed to read file.")
|
||||||
|
os.exit(1)
|
||||||
|
end
|
||||||
|
|
||||||
|
local content = cuefile:read("a")
|
||||||
|
cuefile:close()
|
||||||
|
|
||||||
|
if not content:match('FILE "(.-)" MP3\n') then
|
||||||
|
print("Provided file not a CUE sheet")
|
||||||
|
os.exit(1)
|
||||||
|
end
|
||||||
|
|
||||||
|
local meta = ""
|
||||||
|
local plain = "Archive link: https://archives.anonradio.net/" .. basename:gsub("cue","mp3") .. "\n\n"
|
||||||
|
|
||||||
|
for track in content:gmatch('%s-TRACK %d- AUDIO\n%s-TITLE ".-"\n%s-PERFORMER ".-"\n%s-INDEX %d- %d-:%d+') do
|
||||||
|
local index = track:match("TRACK (%d-) AUDIO")
|
||||||
|
local title = track:match('TITLE "(.-)"')
|
||||||
|
local artist = track:match('PERFORMER "(.-)"')
|
||||||
|
local time = track:match("INDEX %d- (%d-:%d+)"):gsub(":", "")
|
||||||
|
|
||||||
|
if index == "01" then
|
||||||
|
time = "0010"
|
||||||
|
end
|
||||||
|
|
||||||
|
meta = meta .. "00" .. time .. ":" .. artist .. " - " .. title .. "\n"
|
||||||
|
plain = plain .. artist .. " - " .. title .. "\n"
|
||||||
|
end
|
||||||
|
|
||||||
|
local metafile = io.open(basename:gsub("cue", "meta"), "w")
|
||||||
|
local metasucc = metafile:write(meta)
|
||||||
|
if not metasucc then
|
||||||
|
print("Failed to write meta file.")
|
||||||
|
else
|
||||||
|
metasucc:close()
|
||||||
|
print("Wrote meta file.")
|
||||||
|
end
|
||||||
|
|
||||||
|
local plainfile = io.open(basename:gsub("cue", "txt"), "w")
|
||||||
|
local plainsucc = plainfile:write(plain)
|
||||||
|
if not plainsucc then
|
||||||
|
print("Failed to write tracklist file.")
|
||||||
|
else
|
||||||
|
plainsucc:close()
|
||||||
|
print("Wrote tracklist file.")
|
||||||
|
end
|
Loading…
Reference in a new issue