Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- (ns onelouder.core
- (:import [org.jaudiotagger.audio AudioFileIO]
- [org.jaudiotagger.tag FieldKey]))
- (defn tags [file]
- (let [fields (apply conj {} (map (fn [n] [(keyword (. (. n toString) toLowerCase)) n]) (. FieldKey values)))
- tag (. file (getTag))]
- (apply conj {}
- (filter (fn [[name val]] (and val (not (empty? val))))
- (map (fn [[name val]]
- [name (seq (map #(. % getContent) (. tag (getFields val))))])
- fields)))))
- (defn audioheader [file]
- (bean (. file (getAudioHeader))))
- (defn metadata [filename]
- (let [file (AudioFileIO/read (new java.io.File filename))]
- {:tags (tags file)
- :audioheader (audioheader file)}))
Advertisement
Add Comment
Please, Sign In to add comment