3P by GN⁺ 23일전 | ★ favorite | 댓글 1개
  • Beets는 음악 컬렉션의 메타데이터를 자동 정리·보정해주는 오픈소스 음악 관리 도구
  • MusicBrainz 데이터베이스를 활용해 앨범, 곡 정보 등을 자동으로 보완하고, 다양한 조작·검색 도구를 제공
  • 플러그인 구조를 통해 앨범 아트, 가사, 장르, 템포, ReplayGain, 음향 지문 등 다양한 메타데이터를 가져오거나 계산 가능
  • 중복 트랙 탐지, 누락된 트랙 확인, 오디오 포맷 변환, 웹 브라우저 기반 재생 등 기능 지원
  • Python으로 직접 플러그인 개발이 용이해 확장성과 커스터마이징이 높은 음악 관리 환경 제공

Beets 개요

  • Beets는 음악 컬렉션을 한 번에 정리하도록 설계된 음악 관리 자동화 도구
    • 컬렉션을 카탈로그화하고, MusicBrainz 데이터베이스를 이용해 메타데이터를 자동 개선
    • 이후 음악을 조작하고 접근할 수 있는 다양한 도구 세트를 제공

주요 기능

  • 플러그인 기반 확장 구조로 거의 모든 음악 관리 작업 수행 가능
    • 필요한 모든 메타데이터(앨범 아트, 가사, 장르, 템포, ReplayGain, 음향 지문) 를 가져오거나 계산
    • MusicBrainz, Discogs, Beatport 등에서 메타데이터를 가져오거나, 파일명·음향 지문을 기반으로 추정
    • 오디오 트랜스코딩을 통해 원하는 형식으로 변환
    • 중복 트랙 및 누락된 트랙 탐지 기능 제공
    • HTML5 Audio를 지원하는 웹 브라우저에서 그래픽 인터페이스로 탐색 및 재생 가능

확장성과 개발

  • Beets가 원하는 기능을 지원하지 않을 경우, Python으로 간단히 플러그인 작성 가능
    • 기본적인 Python 지식만으로 새로운 기능 추가 가능

설치 및 시작

  • 설치 명령어: pip install beets
  • 설치 후 Getting Started 가이드를 참고해 초기 설정 가능
  • 업데이트는 Fosstodon의 @beets 계정을 통해 확인 가능

요약

  • Beets는 자동 메타데이터 정리, 플러그인 확장성, 웹 기반 접근성을 갖춘 음악 관리 도구
  • Python 생태계와의 결합으로 개발자 친화적 커스터마이징이 가능하며, 음악 애호가와 기술 사용자 모두에게 유용한 솔루션임
Hacker News 의견
  • 내 컬렉션 중 일부가 어떤 DB에도 없다는 사람들에게는 직접 Musicbrainz에 추가하는 게 가장 좋은 해결책임
    실제로 Musicbrainz에 항목을 추가하는 건 꽤 쉽고 재미있는 작업임.
    스트리밍 릴리스나 Bandcamp의 경우 Harmony에 URL만 넣으면 대부분 자동으로 처리됨
    Musicbrainz는 거의 모든 음악 관련 데이터를 표현할 수 있고, 전부 자유 라이선스로 제공됨. 대부분의 수정은 자동 적용되고, 일부만 7일간의 투표 절차를 거침

    • 하지만 모든 음악 메타데이터가 전 세계 DB에 들어가야 한다는 전제는 동의하지 않음
      내 컬렉션에는 직접 편집한 하이브리드 트랙이나 친구 공연 녹음, 게임 사운드 캡처 등 개인적인 자료가 많음
      이런 건 나만의 분류 체계로 관리하는 게 맞음. ISBN이 없는 스케치북을 도서관에 넣을 수 없는 것과 같음
    • 와, Harmony는 진작 알았어야 했음. 그동안 Musicbrainz를 두 달 동안 수동으로 채우다가 포기했었음
  • 내 음악 라이브러리를 beets로 가져오느라 꽤 고생했음
    상용 앨범은 문제없지만, 비상업적 릴리스나 팬 녹음은 모델이 맞지 않아 시간이 많이 걸림
    그래도 beets는 훌륭한 도구임. 단, 상업 릴리스에서 벗어날수록 어려움이 커짐

    • Bandcamp나 Musicbrainz에 없는 상업 앨범 변형은 직접 Musicbrainz에 추가해서 해결했음. 10년 전 추가한 항목의 수정 알림도 아직 받음
    • 팬 녹음이나 DIY CD-R은 표준 메타데이터가 없기 때문에 그냥 있는 그대로 가져오는 게 더 낫다고 생각함. 일단 첫 가져오기를 넘기면 beets는 정말 훌륭한 툴임
    • 요즘은 어떤 툴로 음악 라이브러리를 관리하는지 궁금함. 스트리밍 시대에 직접 큐레이션의 즐거움을 다시 느끼고 싶음
    • Bandcamp 자동 태깅 플러그인 beetcamp가 있어서 첫 문제는 어느 정도 해결됨
    • 클래식 CD 태깅은 항상 어려웠음. Apple의 클래식 앱이 잘 해놨으니 그 방식을 참고해볼 생각임
  • Navidrome 같은 스트리밍 서버를 쓴다면 beets-alternatives를 추천함
    라이브러리의 일부를 다른 구조로 동기화 및 변환할 수 있어서, 예를 들어 멀티디스크 앨범을 각 디스크별 폴더로 유지하면서도 스트리밍 서버 요구에 맞출 수 있음

    • 내가 좋아하는 프로젝트 중 하나는 beets-flask
      웹 UI로 자동 가져오기 파이프라인을 설정할 수 있고, 수동 단계도 쉽게 관리 가능함
    • beets-alternatives로 앨범 아트 관리를 어떻게 하는지 궁금함
  • 나는 장르(genre) 태그를 싫어함. 너무 단순화되어 있고 모호함
    R.E.M. 같은 밴드를 뭐라고 분류해야 할지도 애매함. “라이브”나 “사운드트랙” 정도만 의미 있다고 생각함

    • 장르는 노래 공간의 한 볼륨(volume) 같은 개념임. 여러 장르를 동시에 지정할 수도 있고, crowd-sourced 사이트인 rateyourmusic.com처럼 투표로 조정할 수도 있음
    • 장르 라벨링은 나쁘지 않다고 봄. “post hardcore 좋아하는데 비슷한 거 추천해줘”라고 말하는 게 훨씬 효율적임.
      ‘alternative’는 시대마다 의미가 달라졌을 뿐임
    • King Gizzard and the Lizard Wizard — 장르: 예
    • 나도 장르 태그를 싫어하는 편이라 반가움
    • 아티스트 단위로는 별로지만 앨범 단위로는 유용하다고 생각함. 나는 rymscrap으로 RYM 데이터를 가져와 확장 메타데이터로 씀
  • 며칠 동안 beets 설정을 다듬은 뒤로는 완전히 만족함
    내 워크플로우는 Bandcamp에서 앨범 구매 → zip 다운로드 → beet import 실행
    그러면 beets가 자동으로 압축 해제, Musicbrainz 매칭, 메타데이터 업데이트, 파일 구조 정리까지 해줌

    • 나도 거의 같은 방식으로 씀. beets로 대부분 처리하고, 안 되는 건 Picard로 보완함
    • 그런데 Picard에서 수정한 걸 beets가 덮어쓰지 않음?
  • Navidrome과 잘 맞는다는 이유로 beets를 써봤지만, 내 용도에는 노력 대비 효용이 낮아서 결국 포기했음
    지금은 태깅을 거의 안 하고, KDE Elisa처럼 폴더 기반으로 즉석 재생목록을 만들 수 있는 대안을 찾고 있음

  • CD 리핑을 beets 워크플로우에 자동화하는 방법 아는 사람 있음?

  • beets를 좋아하지만, 장르를 너무 세분화하지 않고 넓은 카테고리로만 두고 싶음
    그런데 자동 태깅이 수백 개의 세부 장르를 만들어냄

    • lastgenre canonicalization을 켜고 count=1로 설정하면 해결 가능함
    • 나는 lastgenre 플러그인에 짧은 화이트리스트를 둬서 해결함
    • 나도 같은 문제를 겪음. “Post Rock Jazz Fusion” 같은 태그는 쓸모없음
      클래식처럼 여러 버전이 있는 음악은 태깅 구조가 대중음악 중심이라 어려움
  • beets를 살펴봤는데, 자동화 중심이라 새로 나온 앨범엔 잘 안 맞는 것 같음
    지금은 MusicBee로 수동 태깅 후 Navidrome 서버에 복사하는 방식임
    beets가 내 워크플로우에 맞을지 궁금함

    • 나도 MusicBee를 쓰고, Bandcamp 태그를 기반으로 Discogs 규칙에 맞게 정리함
      예전 CDDB 시절의 엉망인 태그 경험 때문에 직접 커스터마이징을 하게 됨
      FLAC으로 교체하려다 기존 MP3 메타데이터와 매칭이 너무 복잡해서 포기함. 결국 “320k면 충분함” 결론에 도달함
    • 현재 태그만으로도 충분히 관리 가능해서 beets는 사용하지 않음
    • Picard나 Foobar로도 가능하지만, beets는 파일명 기반 자동 태깅과 Navidrome 연동이 가능함
    • 새 릴리스를 자주 추가한다면 MusicBrainz에 직접 등록해야 함. 나도 지금까지 2,697개 릴리스를 추가했음
  • beets의 기능은 마음에 들지만, 대량 가져오기 시 진행 표시나 안정성이 부족함
    충돌 시 진행 상태가 날아가는 게 아쉬움.
    새로운 음악이 감지되면 자동으로 백그라운드에서 처리해주는 워커가 있으면 좋겠음
    예전엔 betanin이 그 역할을 했지만 지금은 wrtag로 대체된 듯함
    그래도 가져오기 이후에는 beets 방식이 꽤 잘 작동함