Найдено два решения.
Первое: в лог делаются записи о всех воспроизведённых файлах. Перед тем как проиграть новый файл из папки, проверяем, есть ли он в логах. Если есть - пропускаем, иначе играем. Вот
тут скрипт.
Второе: можно добавить префикс tmp:
playlist(prefix="tmp:", ...)
и тогда liquid будет удалять файлы после воспроизведения.
В обоих случаях нужен параметр reload_mod="watch", чтобы плейлист обновлялся при появлении новых файлов.