命令行音乐库管理工具beets配置实战——按照歌单管理音乐

2020-02-13  本文已影响0人  mudssky

命令行音乐库管理工具beet配置实战——按照歌单管理音乐

​ 花了两天时间,把官方文档基本熟悉了,终于掌握满足我的需求的使用方式了。这一篇算是一个总结。从零开始按照这篇文章配置就能达到和我一样的效果。

​ 通常我们国人使用的各种网络音乐软件,比如qq音乐,网易云音乐这些都是按照歌单管理音乐的。我们会把不同类型的歌放到不同的歌单。所以这里我们的目录结构就是一个个代表歌单的文件夹。

01.准备工作

第一步,安装beet,可以在安装python之后,用python的包管理工具pip来安装

pip install beets

第二步,安装需要的插件

执行 pip install beets[chroma,fetchart,fromfilename,lastgenre,lyrics,web]

需要安装的几个插件分别的作用是:

安装完之后,我们要在配置文件中把插件添加上,其中个别插件的依赖也要注意安装上

python包的依赖在执行pip安装插件的时候会自动安装上,所以不用操心了。

还有这些插件默认都是自动开启的,所以就不需要我们操心配置了。基本上不用怎么配置。

有以下几点要注意

  1. chroma需要安装一个计算音乐指纹的工具,在windows平台下可以安装命令行工具 Chromaprint,去这个网站下载一个命令行工具,加入环境变量即可

02.配置文件

​ 配置文件的目录,在windows下默认是%APPDATA%\beets\config.yaml,这个文件的位置没有提供修改的方法。

​ 使用beet config --paths可以显示配置文件的位置

001.音乐库路径配置

​ 首先我们需要配置音乐库的位置

​ 比如像我这样配置,配置文件在目标目录也备份一份,这样以后拷贝的时候,直接把整个音乐文件夹考走,换台电脑还能接着用。

library: C:/MusicLibrary/musiclibrary.db
directory: C:/MusicLibrary

​ import下面可以配置一些导入式选项,默认行为是复制音乐到你的音乐库,如果你不想复制,可以这么做,

注意yaml文件中不能出现tab键,应该使用空格,而且键和值中间也要有一个空格

import:
    copy: no
    move: yes

​ 不过我这里就按照默认配置来了

​ 我这里要设置的是默认打开日志,同样是在import section的下面设置。这里设置的是日志的文件名,默认是在%APPDATA%\beets\目录

import:
    log: musiclibrary.log

002.插件配置

​ 然后,把插件加入配置文件中。之后这些插件各自有自己的配置项,如果你想改变默认行为,就去查看相关的文档吧。

​ 这里只要在配置文件中加这么一行:

# 添加插件
plugins: [fetchart,lyrics,lastgenre,fromfilename,web,chroma]

​ 插件全部添加完后,可以使用 beet version命令,查看是否安装成功

​ 我这里是如下成功的显示

beets version 1.4.9
Python version 3.7.2
plugins: chroma, fetchart, fromfilename, lastgenre, lyrics, web

003.音乐库路径格式配置,按歌单的样式来

​ 然后是最关键的一步。这里使用了beets的自定义字段的功能。我们导入歌单的时候,可以使用set命令设置一个自定义字段playlist,值定为歌单名,那么我们在配置文件中,就可以按照不同的歌单名来配置路径。

​ 我们先来看看他默认的配置:

paths:
    default: $albumartist/$album%aunique{}/$track $title
    singleton: Non-Album/$artist/$title
    comp: Compilations/$album%aunique{}/$track $title

​ 这个软件默认情况下是这三种目录

  1. default就是按照专辑来分目录
  2. singleton是当发现一个文件夹中不是一个专辑的时候,而是不同的单曲的时候会采用的方式
  3. comp 则是当专辑的音乐家有多名的时候,因为default除了专辑名最上层的目录是音乐家,有多名的时候分给哪一个都很困扰,很好理解

$符号后面跟的是beets数据库中使用的字段,大部分都利用了音频的元数据metadata,小部分是数据库内建字段

使用beet fileds命令查看支持的字段,包括自己的自定义字段

这里我的结果是:

Item fields:
  acoustid_fingerprint
  acoustid_id
  added
  album
  album_id
  albumartist
  albumartist_credit
  albumartist_sort
  albumdisambig
  albumstatus
  albumtype
  arranger
  artist
  artist_credit
  artist_sort
  asin
  bitdepth
  bitrate
  bpm
  catalognum
  channels
  comments
  comp
  composer
  composer_sort
  country
  day
  disc
  disctitle
  disctotal
  encoder
  filesize
  format
  genre
  grouping
  id
  initial_key
  label
  language
  length
  lyricist
  lyrics
  mb_albumartistid
  mb_albumid
  mb_artistid
  mb_releasegroupid
  mb_releasetrackid
  mb_trackid
  media
  month
  mtime
  original_day
  original_month
  original_year
  path
  r128_album_gain
  r128_track_gain
  releasegroupdisambig
  rg_album_gain
  rg_album_peak
  rg_track_gain
  rg_track_peak
  samplerate
  script
  singleton
  title
  track
  tracktotal
  year
Album fields:
  added
  album
  albumartist
  albumartist_credit
  albumartist_sort
  albumdisambig
  albumstatus
  albumtotal
  albumtype
  artpath
  asin
  catalognum
  comp
  country
  day
  disctotal
  genre
  id
  label
  language
  mb_albumartistid
  mb_albumid
  mb_releasegroupid
  month
  original_day
  original_month
  original_year
  path
  r128_album_gain
  releasegroupdisambig
  rg_album_gain
  rg_album_peak
  script
  year
Item flexible attributes:
  data_source
  playlist
Album flexible attributes:

可以看到,Item flexible attributes这一项里面多了一个playlist,这个就是我添加的字段。

我的按照歌单配置的路径是这样的:

其中%开头的是beets支持的模板函数,具体有哪些请自行查询官方文档

这里的%aunique{}是起到防止标题重名的作用

很明显地看到,我这里都是简单的两层目录,而且按照playlist字段的属性,分别设置了不同的目录,也就是歌单。

path:
    playlist:AnimeSongs: AnimeSongs/$title%aunique{}
    playlist:JapaneseSongs: JapaneseSongs/$title%aunique{}

03.开始使用

​ 经过上面的步骤,最基本的配置就完成了。

​ 接下来我们就可以导入音乐了

​ 把原先自己的文件夹的音乐,使用beets导入

beet import --singletons --set=playlist=AnimeSongs 'favorite anime songs'

​ 其中 --singletons是把目录作为单曲导入,设置playlist字段。指定目录。

​ beets就会自动把歌曲导入音乐库,如果你要move而不是copy音乐(节省文件传输操作的时间),加上--move选项。

​ 执行命令后除了导入,其实主要的一个操作是从网上搜索元数据来修改你的音乐的元数据,包括封面,歌词等等,如果和网上数据库搜索到的信息不一致,beets会提示你修改。

​ 具体怎么选择看我发表的第一篇beets的文章

​ 把你的音乐导入完后,就可以体验到数据库带来的强大搜索功能了。

​ 有些音乐的信息https://musicbrainz.org/ 里面找不到,你也可以自己在这个网站上编辑数据,做做贡献。还有音乐指纹插件,可以配置一个上传用的id,用你的音乐指纹数据帮助网站扩大数据库。具体怎么获取apikey看这篇get an API key

# 使用acoustid提交自己音乐文件的指纹信息,帮助 Acoustid database 收集信息
acoustid:
    apikey: LWu4LZ7tLQ

​ 还有歌词插件可以配置谷歌api,每天免费查100次。但是我这里网不好,所以还没配。

上一篇下一篇

猜你喜欢

热点阅读