# Beets: 음악 마니아를 위한 미디어 관리 도구

> Clean Markdown view of GeekNews topic #24302. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=24302](https://news.hada.io/topic?id=24302)
- GeekNews Markdown: [https://news.hada.io/topic/24302.md](https://news.hada.io/topic/24302.md)
- Type: GN+
- Author: [neo](https://news.hada.io/@neo)
- Published: 2025-11-12T02:38:20+09:00
- Updated: 2025-11-12T02:38:20+09:00
- Original source: [beets.io](https://beets.io/)
- Points: 3
- Comments: 1

## Topic Body

- **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 생태계와의 결합으로 **개발자 친화적 커스터마이징**이 가능하며, 음악 애호가와 기술 사용자 모두에게 유용한 솔루션임

## Comments



### Comment 46208

- Author: neo
- Created: 2025-11-12T02:38:20+09:00
- Points: 1

###### [Hacker News 의견](https://news.ycombinator.com/item?id=45873037) 
- 내 컬렉션 중 일부가 어떤 DB에도 없다는 사람들에게는 직접 [Musicbrainz](https://musicbrainz.org/)에 추가하는 게 가장 좋은 해결책임  
  실제로 Musicbrainz에 항목을 추가하는 건 꽤 **쉽고 재미있는 작업**임.  
  스트리밍 릴리스나 Bandcamp의 경우 [Harmony](https://harmony.pulsewidth.org.uk/)에 URL만 넣으면 대부분 자동으로 처리됨  
  Musicbrainz는 거의 모든 음악 관련 데이터를 표현할 수 있고, 전부 **자유 라이선스**로 제공됨. 대부분의 수정은 자동 적용되고, 일부만 7일간의 투표 절차를 거침  
  - 하지만 모든 음악 메타데이터가 전 세계 DB에 들어가야 한다는 전제는 동의하지 않음  
    내 컬렉션에는 직접 편집한 **하이브리드 트랙**이나 친구 공연 녹음, 게임 사운드 캡처 등 개인적인 자료가 많음  
    이런 건 나만의 분류 체계로 관리하는 게 맞음. ISBN이 없는 스케치북을 도서관에 넣을 수 없는 것과 같음  
  - 와, Harmony는 진작 알았어야 했음. 그동안 Musicbrainz를 두 달 동안 수동으로 채우다가 포기했었음  

- 내 음악 라이브러리를 beets로 가져오느라 꽤 고생했음  
  상용 앨범은 문제없지만, **비상업적 릴리스나 팬 녹음**은 모델이 맞지 않아 시간이 많이 걸림  
  그래도 beets는 훌륭한 도구임. 단, 상업 릴리스에서 벗어날수록 어려움이 커짐  
  - Bandcamp나 Musicbrainz에 없는 상업 앨범 변형은 직접 Musicbrainz에 추가해서 해결했음. 10년 전 추가한 항목의 수정 알림도 아직 받음  
  - 팬 녹음이나 DIY CD-R은 **표준 메타데이터가 없기 때문에** 그냥 있는 그대로 가져오는 게 더 낫다고 생각함. 일단 첫 가져오기를 넘기면 beets는 정말 훌륭한 툴임  
  - 요즘은 어떤 툴로 음악 라이브러리를 관리하는지 궁금함. 스트리밍 시대에 직접 큐레이션의 즐거움을 다시 느끼고 싶음  
  - Bandcamp 자동 태깅 플러그인 [beetcamp](https://github.com/snejus/beetcamp)가 있어서 첫 문제는 어느 정도 해결됨  
  - 클래식 CD 태깅은 항상 어려웠음. Apple의 클래식 앱이 잘 해놨으니 그 방식을 참고해볼 생각임  

- Navidrome 같은 스트리밍 서버를 쓴다면 [beets-alternatives](https://github.com/geigerzaehler/beets-alternatives)를 추천함  
  라이브러리의 일부를 다른 구조로 **동기화 및 변환**할 수 있어서, 예를 들어 멀티디스크 앨범을 각 디스크별 폴더로 유지하면서도 스트리밍 서버 요구에 맞출 수 있음  
  - 내가 좋아하는 프로젝트 중 하나는 [beets-flask](https://github.com/pSpitzner/beets-flask)임  
    웹 UI로 자동 가져오기 파이프라인을 설정할 수 있고, 수동 단계도 쉽게 관리 가능함  
  - beets-alternatives로 앨범 아트 관리를 어떻게 하는지 궁금함  

- 나는 **장르(genre)** 태그를 싫어함. 너무 단순화되어 있고 모호함  
  R.E.M. 같은 밴드를 뭐라고 분류해야 할지도 애매함. “라이브”나 “사운드트랙” 정도만 의미 있다고 생각함  
  - 장르는 노래 공간의 한 **볼륨(volume)** 같은 개념임. 여러 장르를 동시에 지정할 수도 있고, crowd-sourced 사이트인 rateyourmusic.com처럼 투표로 조정할 수도 있음  
  - 장르 라벨링은 나쁘지 않다고 봄. “post hardcore 좋아하는데 비슷한 거 추천해줘”라고 말하는 게 훨씬 효율적임.  
    ‘alternative’는 시대마다 의미가 달라졌을 뿐임  
  - King Gizzard and the Lizard Wizard — 장르: 예  
  - 나도 장르 태그를 싫어하는 편이라 반가움  
  - 아티스트 단위로는 별로지만 앨범 단위로는 유용하다고 생각함. 나는 [rymscrap](https://git.sr.ht/~q3cpma/rymscrap)으로 RYM 데이터를 가져와 확장 메타데이터로 씀  

- 며칠 동안 beets 설정을 다듬은 뒤로는 완전히 만족함  
  내 워크플로우는 Bandcamp에서 앨범 구매 → zip 다운로드 → `beet import` 실행  
  그러면 beets가 자동으로 압축 해제, Musicbrainz 매칭, 메타데이터 업데이트, 파일 구조 정리까지 해줌  
  - 나도 거의 같은 방식으로 씀. beets로 대부분 처리하고, 안 되는 건 Picard로 보완함  
  - 그런데 Picard에서 수정한 걸 beets가 덮어쓰지 않음?  

- Navidrome과 잘 맞는다는 이유로 beets를 써봤지만, 내 용도에는 **노력 대비 효용이 낮아서** 결국 포기했음  
  지금은 태깅을 거의 안 하고, KDE Elisa처럼 폴더 기반으로 즉석 재생목록을 만들 수 있는 대안을 찾고 있음  

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

- beets를 좋아하지만, 장르를 너무 세분화하지 않고 **넓은 카테고리**로만 두고 싶음  
  그런데 자동 태깅이 수백 개의 세부 장르를 만들어냄  
  - [lastgenre canonicalization](https://beets.readthedocs.io/en/stable/plugins/lastgenre.html#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](https://github.com/sentriz/betanin)이 그 역할을 했지만 지금은 [wrtag](https://github.com/sentriz/wrtag)로 대체된 듯함  
  그래도 가져오기 이후에는 beets 방식이 꽤 잘 작동함
