命令行音乐库管理工具Beets

什么是 Beets ?

Beets 是一个音乐库管理系统和音乐文件元数据标签编辑器。它使用 MusicBrainz 数据库来自动填充音乐文件的元数据信息,并且可以通过插件系统来增加各种额外功能,比如自动下载专辑封面,歌词等。其目的是使您的音乐收藏一劳永逸,对你的收藏进行分类,自动改进其元数据,并提供了一整套用于操纵和访问音乐的工具。

Beets 是给 geek们用的管理音乐文件的工具,所以本身被设计为一个库,通过插件,它几乎可以实现你对音乐收藏的任何想象。

本文介绍的 linuxserver/beets 镜像,包含了一个简单的播放器插件和网页播放器。

安装

在群晖上以 Docker 方式安装。

在注册表中搜索 beets ,选择第一个 linuxserver/beets,版本选择 latest

本文写作时, latest 版本对应为 version-2.0.02.0.0-ls236 或者 2.0.0

docker 文件夹中,创建一个新文件夹 beets,并在其中建三个子文件夹 configdownloadsmusic

文件夹 装载路径 说明
docker/beets/config /config 存放配置文件和数据库等
docker/beets/downloads /downloads 未经过处理的音乐
docker/beets/music /music 音乐库

端口

本地端口不冲突就行,不确定的话可以用命令查一下

bash 复制代码
# 查看端口占用
netstat -tunlp | grep 端口号
本地端口 容器端口
8337 8337

环境

可变
PUID 设为 1000
PGID 设为 1000
TZ 时区设置,设为了 Asia/Shanghai

命令行安装

如果你熟悉命令行,可能用 docker cli 更快捷

bash 复制代码
# 新建文件夹 beets 和 子目录
mkdir -p /volume1/docker/beets/{config,downloads,music}

# 进入 beets 目录
cd /volume1/docker/beets

# 运行容器
docker run -d \
   --restart unless-stopped \
   --name=beets \
   -p 8337:8337 \
   -v $(pwd)/config:/config \
   -v $(pwd)/music:/music \
   -v $(pwd)/downloads:/downloads \
   -e PUID=1000 \
   -e PGID=1000 \
   -e TZ=Asia/Shanghai \
   linuxserver/beets:latest

也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件

yaml 复制代码
version: '3'

services:
  beets:
    image: linuxserver/beets:latest
    container_name: beets
    restart: unless-stopped
    ports:
      - 8337:8337
    volumes:
      - ./config:/config
      - ./music:/music
      - ./downloads:/downloads
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Asia/Shanghai

然后执行下面的命令

bash 复制代码
# 新建文件夹 beets 和 子目录
mkdir -p /volume1/docker/beets/{config,downloads,music}

# 进入 beets 目录
cd /volume1/docker/beets

# 将 docker-compose.yml 放入当前目录

# 一键启动
docker-compose up -d

运行

在浏览器中输入 http://群晖IP:8337 就能看到主界面

downloads 目录中放了几个目录的文件

命令行

接下来要进入容器操作

bash 复制代码
# 进入容器
docker exec -it beets /bin/bash

# 导入下载目录
beet import /downloads

中文歌曲没有被识别,所以 music 中只有 Medwyn Goodall 的曲子

从日志看到,是因为识别错误,老苏选择了 skip 跳过了

识别到的专辑,连封面都下载好了

如果再次执行,会直接跳过,除非有新增的目录或者文件

bash 复制代码
beet import /downloads

也可以用命令行查看导入的文件

bash 复制代码
# 查看文件
beet list

可以指定歌手

bash 复制代码
# 指定歌手 
beet list <歌手>

# 示例
beet list Medwyn Goodall

也可以指定专辑

bash 复制代码
# 指定专辑
beet list <专辑>

# 示例
beet list Innocence

统计信息

bash 复制代码
# 统计信息
beet stats

更多的命令可以用 beet help 或者 beet -h进行查询

网页

在命令行导入的基础上,可以在网页上做一些简单的播放。因为 Beets 不仅是一个音乐库管理工具,也是一个音乐播放器。它包含一个简单的播放器插件和网页播放器

输入专辑或者歌手名称,然后回车,会检索出响应的歌曲

选中歌曲,可以播放页也可以下载

播放状态

参考文档

beetbox/beets: music library manager and MusicBrainz tagger

地址:https://github.com/beetbox/beets
linuxserver/docker-beets

地址:https://github.com/linuxserver/docker-beets
beets: the music geek's media organizer

地址:https://beets.io/
beets: the music geek's media organizer --- beets

地址:https://beets.readthedocs.io
Beautify Your Music Collection with Beets : the App, not the Vegetable. - YouTube

地址:https://www.youtube.com/watch?v=IQGM52MiIqg

相关推荐
敲上瘾3 小时前
Linux系统cgroups资源精细化控制基础
linux·测试工具·docker·压力测试·cgroups
伊成5 小时前
Docker 部署 Nginx 完整指南
nginx·docker·容器
落日漫游6 小时前
K8s核心组件全解析
运维·docker·运维开发
江湖有缘10 小时前
【Docker项目实战】使用Docker部署Notepad轻量级记事本
docker·容器·notepad++
BTU_YC11 小时前
docker compose部署mysql
mysql·adb·docker
Python私教13 小时前
Docker in Test:用一次性的真实环境,终结“测试永远跑不通”魔咒
运维·docker·容器
UPToZ15 小时前
【Docker】搭建一个高性能的分布式对象存储服务 - MinIO
分布式·docker·容器
我不要放纵1 天前
docker
运维·docker·容器
奥格列的魔法拖鞋~1 天前
Docker-LNMP架构 创建多项目- 单个ngixn代理多个PHP容器服务
nginx·docker·eureka·架构·php·lnmp
为什么要内卷,摆烂不香吗1 天前
Docker容器技术全面解析(一):入门
docker·微服务·容器