- Beets là công cụ quản lý nhạc mã nguồn mở giúp tự động sắp xếp và chỉnh sửa metadata cho bộ sưu tập âm nhạc
- Tận dụng cơ sở dữ liệu MusicBrainz để tự động bổ sung thông tin album, bài hát và cung cấp nhiều công cụ thao tác, tìm kiếm
- Thông qua cấu trúc plugin, có thể nhập hoặc tính toán nhiều loại metadata như album art, lời bài hát, thể loại, tempo, ReplayGain, dấu vân tay âm thanh
- Hỗ trợ các tính năng như phát hiện track trùng lặp, kiểm tra track bị thiếu, chuyển đổi định dạng audio, phát nhạc trên nền trình duyệt web
- Có thể tự phát triển plugin dễ dàng bằng Python, mang lại môi trường quản lý nhạc có tính mở rộng và tùy biến cao
Tổng quan về Beets
- Beets là công cụ tự động hóa quản lý nhạc được thiết kế để sắp xếp toàn bộ bộ sưu tập âm nhạc cùng lúc
- Lập danh mục cho bộ sưu tập và sử dụng cơ sở dữ liệu MusicBrainz để tự động cải thiện metadata
- Sau đó cung cấp nhiều bộ công cụ để thao tác và truy cập âm nhạc
Tính năng chính
- Với kiến trúc mở rộng dựa trên plugin, Beets có thể thực hiện gần như mọi tác vụ quản lý nhạc
- Có thể nhập hoặc tính toán mọi metadata cần thiết (album art, lời bài hát, thể loại, tempo, ReplayGain, dấu vân tay âm thanh)
- Có thể lấy metadata từ MusicBrainz, Discogs, Beatport hoặc suy đoán dựa trên tên tệp và dấu vân tay âm thanh
- Transcoding audio để chuyển đổi sang định dạng mong muốn
- Cung cấp tính năng phát hiện track trùng lặp và track bị thiếu
- Có thể duyệt và phát bằng giao diện đồ họa trên trình duyệt web hỗ trợ HTML5 Audio
Khả năng mở rộng và phát triển
- Nếu Beets chưa hỗ trợ tính năng bạn muốn, có thể viết plugin đơn giản bằng Python
- Chỉ với kiến thức Python cơ bản cũng có thể bổ sung tính năng mới
Cài đặt và bắt đầu
- Lệnh cài đặt:
pip install beets
- Sau khi cài đặt, có thể tham khảo hướng dẫn Getting Started để cấu hình ban đầu
- Có thể theo dõi cập nhật qua tài khoản @beets trên Fosstodon
Tóm tắt
- Beets là công cụ quản lý nhạc có tự động dọn dẹp metadata, khả năng mở rộng bằng plugin và khả năng truy cập qua web
- Kết hợp với hệ sinh thái Python, công cụ này cho phép tùy biến thân thiện với nhà phát triển và là giải pháp hữu ích cho cả người yêu nhạc lẫn người dùng kỹ thuật
1 bình luận
Ý kiến trên Hacker News
Với những ai nói rằng một phần bộ sưu tập của mình không có trong bất kỳ DB nào, cách giải quyết tốt nhất là tự thêm trực tiếp vào Musicbrainz
Thực ra việc thêm mục vào Musicbrainz khá dễ và thú vị.
Với các bản phát hành trên nền tảng streaming hoặc trên Bandcamp, chỉ cần đưa URL vào Harmony là phần lớn sẽ được xử lý tự động
Musicbrainz có thể biểu diễn gần như mọi loại dữ liệu liên quan đến âm nhạc, và tất cả đều được cung cấp theo giấy phép tự do. Phần lớn chỉnh sửa được áp dụng tự động, chỉ một số ít phải qua quy trình bỏ phiếu trong 7 ngày
Trong bộ sưu tập của tôi có nhiều tư liệu cá nhân như track lai do tự chỉnh sửa, bản ghi buổi diễn của bạn bè, hay bản capture âm thanh từ game
Những thứ này nên được quản lý bằng hệ thống phân loại riêng của tôi. Cũng giống như không thể đưa một cuốn sổ phác thảo không có ISBN vào thư viện
Tôi đã khá vất vả khi nhập thư viện nhạc của mình vào beets
Album thương mại thì không vấn đề gì, nhưng bản phát hành phi thương mại hoặc bản thu của fan thì không khớp với mô hình nên rất tốn thời gian
Dù vậy beets vẫn là một công cụ tuyệt vời. Chỉ là càng rời xa các bản phát hành thương mại thì mọi thứ càng khó hơn
Nếu dùng server streaming như Navidrome thì tôi khuyên dùng beets-alternatives
Nó có thể đồng bộ và chuyển đổi một phần thư viện sang cấu trúc khác, ví dụ vẫn giữ album nhiều đĩa theo thư mục từng đĩa nhưng đồng thời đáp ứng yêu cầu của server streaming
Nó cho phép thiết lập pipeline nhập tự động bằng web UI, và cũng dễ quản lý các bước thủ công
Tôi ghét tag thể loại (genre). Nó quá đơn giản hóa và mơ hồ
Ngay cả việc nên phân loại một ban nhạc như R.E.M. là gì cũng rất khó nói. Tôi nghĩ chỉ những thứ như “live” hay “soundtrack” mới thực sự có ý nghĩa
Chỉ là ‘alternative’ đã thay đổi ý nghĩa theo từng thời kỳ
Sau vài ngày tinh chỉnh cấu hình beets, tôi hoàn toàn hài lòng
Workflow của tôi là mua album trên Bandcamp → tải file zip → chạy
beet importSau đó beets tự động giải nén, khớp với Musicbrainz, cập nhật metadata và sắp xếp lại cấu trúc file
Tôi từng thử beets vì nó hợp với Navidrome, nhưng với nhu cầu của tôi thì hiệu quả không xứng với công sức, nên cuối cùng bỏ luôn
Giờ tôi hầu như không gắn thẻ nữa, và đang tìm lựa chọn khác kiểu như KDE Elisa, nơi có thể tạo playlist tức thời theo thư mục
Có ai biết cách tự động hóa việc rip CD vào workflow của beets không?
Tôi thích beets, nhưng muốn giữ thể loại ở mức danh mục rộng thay vì chia quá chi tiết
Nhưng auto-tag lại tạo ra hàng trăm thể loại nhỏ li ti
Với nhạc có nhiều phiên bản như nhạc cổ điển, cấu trúc tagging vốn thiên về nhạc đại chúng nên càng khó
Tôi đã xem qua beets, nhưng nó có vẻ thiên về tự động hóa, nên có lẽ không hợp lắm với các album mới phát hành
Hiện giờ tôi gắn thẻ thủ công bằng MusicBee rồi copy sang server Navidrome
Tôi tò mò liệu beets có hợp với workflow của mình không
Vì từng có trải nghiệm tag hỗn loạn từ thời CDDB nên tôi chuyển sang tự tùy biến mọi thứ
Tôi từng định thay bằng FLAC nhưng việc khớp với metadata MP3 cũ quá phức tạp nên bỏ cuộc. Cuối cùng đi đến kết luận “320k là đủ rồi”
Tôi thích các tính năng của beets, nhưng khi nhập hàng loạt thì nó thiếu hiển thị tiến trình và độ ổn định
Thật tiếc là trạng thái tiến trình bị mất khi xảy ra lỗi.
Sẽ hay hơn nếu có một worker tự chạy nền xử lý khi phát hiện nhạc mới
Trước đây betanin làm vai trò đó, nhưng giờ có vẻ đã được thay bằng wrtag
Dù vậy sau giai đoạn nhập xong thì cách làm của beets vẫn hoạt động khá tốt