나는 minidlna 버전이 포함된 작은 NAS에 음악을 보관하고 UPnP를 통해 듣습니다. 내 고객은 앨범, 아티스트, 재생 목록 등을 재생합니다. 서버나 클라이언트를 업그레이드할 수 없으며 다른 전송이나 프로토콜을 사용할 수도 없습니다.
무작위로 선택된 음악을 매일 재생할 수 있으면 좋겠지만 서버나 클라이언트 모두 이 기능을 갖고 있지 않습니다. 어떻게 하면 이를 가장 잘 달성할 수 있습니까?
답변1
Minidlna는 모든 사용자가 직접 액세스할 수 있는 sqlite 테이블에 데이터를 저장합니다. 설치된 sqlite3
애플리케이션과 적절한 SQL 쿼리를 사용하면 간단한 m3u 재생 목록이 생성될 수 있으며, 이는 다시 minidlna로 검색될 수 있습니다.
예를 들어:
sqlite3 -list /tmp/minidlna/files.db "select path from details where track>0 order by random() limit 1000" > /home/user/music/random\ playlist.m3u
더 강력한 방법이 있을 수 있지만 -list
파일 이름 주위에 따옴표를 사용하지 않고 오디오 트랙을 참조하지 않는 레코드를 필터링 해야 합니다 .track>0
생성된 m3u 재생 목록 파일이 minidlna가 검색한 디렉터리에 있으면 inotify가 선택하여 자동으로 제공합니다.
이 접근 방식은 특정 장르나 기타 기준만 포함하도록 개발되어 "스마트 재생 목록" 기능을 효과적으로 추가할 수 있습니다.
매일/시간별로 실행하려면 음악 디렉터리에 대한 쓰기 권한이 있는 사용자의 crontab에 이 명령을 추가하세요. 단점은 재부팅 시 NAS가 crontab을 잃어버린다는 것입니다. 그러나 이런 경우는 드뭅니다.
다양한 minidlna 설치는 /var에 데이터를 저장할 수 있습니다.