+ (emus-make-track artist album title filename)))
+
+(defun emus--make-tracks-from-playlist-files (filenames)
+ (let ((tracks nil))
+ (dolist (filename filenames)
+ (let ((artist "Playlists")
+ (album (file-name-base filename))
+ (title nil)
+ (lines (split-string (with-temp-buffer
+ (insert-file-contents filename)
+ (buffer-string))
+ "\n")))
+ (dolist (line lines)
+ (pcase (string-trim line)
+ ((rx (: string-start
+ (* space)
+ "#extinf:"
+ (* (not ",")) ","
+ (let display-title (* any))
+ string-end))
+ (setq title display-title))
+ ((rx (: string-start (* space) "#"))) ;skip other comments
+ ((rx (let filename (+ any)))
+ (setq tracks (cons (emus-make-track artist album (or title filename) filename)
+ tracks))
+ (setq title nil))))))
+ tracks))