난 집에서 항상 MPD를 이용해서 음악을 듣는데 뭘 들을 지 선택하는 게 여간 귀찮은 일이 아니다. 저번 달은 di.fm 프리미엄을 질러서 스트리밍을 틀어 뒀지만 특정 시간대에는 뚝뚝 끊기는 것 같아서 그만 두고 그냥 로컬에 있는 음악만 듣기로 했다.

난 이것저것 자동화를 해 둬서 집에 오면 특정 플레이리스트가 재생 되는데 그냥 home이라는 제목을 달아놓고 이걸 기분에 따라 일일히 수정해 주고 있었다. 엄청 귀찮은 일이다. 그래서 그냥 가장 최근에 추가 된 음악들을 자동으로 플레이리스트에 넣어주는 스크립트를 짰다.

그냥 단순히 최신순으로 정렬을 하면 앨범 안에서 순서가 흐트러지는 문제가 있다. 나는 앨범 안에선 무조건 순서를 유지하는 것을 원한다 (그 순서대로 이어지도록 만든 앨범들이 한두 개가 아니다). ID3 태그를 읽어서 처리하면 좋겠지만 굳이 그럴 필요성은 못 느껴서 그냥 폴더 단위로 묶고 해당 폴더 안에서 수정시각이 가장 최근인 것을 기준으로 했다. 파일명으로 소팅하면 웬만해서는 순서대로 된다.

이런 식으로 가장 최근에 수정 된 폴더의 음악들을 추가하다가 목록이 내가 정해 둔 사이즈를 넘으면 더 추가하지 않는 방식으로 했다. MPD는 m3u 플레이리스트를 사용하는데 열어보면 알겠지만 그냥 파일 경로를 순서대로 적어 둔 것 뿐이기에 별다른 라이브러리가 필요하지도 않다. 마지막에 파일을 쓰는 부분을 좀 수정해서 MPD가 플레이리스트를 저장하는 경로로 지정해 두면 더 좋다.


P.S 2017-12-21 08:11:48 +0900
실행시 인자로 음악이 담긴 폴더 위치, 저장할 플레이리스트 파일 경로, 최소 카운트, 수정일자를 받도록 하였다.
원래 100개를 넘어가면 더이상 채워넣지 않았는데 7일 이내에 수정한 파일들이 더 남은 경우 그것까지 마저 채워 넣도록 했다.
왜냐면 오늘 새로 산 음악만 82개인데 며칠 전에 새로 넣은 음악들이 짤리는 것을 발견했기 때문이다.