···32323333last_metadata = ref([])
3434def on_metadata(m) =
3535+ # Extract YouTube ID from filename and add youtube_url to metadata
3636+ m = if list.assoc.mem("filename", m) then
3737+ filename = list.assoc("filename", m)
3838+ # Match filename with pattern: anything followed by 11 chars followed by .ogg
3939+ matches = string.extract(pattern='.*(.{11})\\.ogg', filename)
4040+ if list.length(matches) > 0 then
4141+ youtube_id = list.nth(matches, 0)
4242+ list.append(m, [("youtube_url", "https://youtu.be/#{youtube_id}")])
4343+ else
4444+ m
4545+ end
4646+ else
4747+ m
4848+ end
4949+3550 last_metadata := m
3651 print("changing tracks")
3752 out = process.read(env["HOOK_TRACK_CHANGE"], env = m, timeout = 5.0)