python命令行音乐库管理软件:beets使用
beet命令行接口的使用
beet 命令的形式大体上是这样的:
beet COMMAND [ARGS...]
01.功能列表
使用beet help
和 beet help COMMAND
可以快速浏览一下功能列表
Usage:
beet COMMAND [ARGS...]
beet help COMMAND
Options:
--format-item=FORMAT_ITEM
print with custom format
--format-album=FORMAT_ALBUM
print with custom format
-l LIBRARY, --library=LIBRARY
library database file to use
-d DIRECTORY, --directory=DIRECTORY
destination music directory
-v, --verbose log more details (use twice for even more)
-c CONFIG, --config=CONFIG
path to configuration file
-h, --help show this help message and exit
Commands:
config show or edit the user configuration
fetchart download album art
fields show fields available for queries and format strings
fingerprint generate fingerprints for items without them
help (?) give detailed help on a specific sub-command
import (imp, im) import new music
lastgenre fetch genres
list (ls) query the library
lyrics fetch song lyrics
modify (mod) change metadata fields
move (mv) move or copy items
remove (rm) remove matching items from the library
stats show statistics about the library or a query
submit submit Acoustid fingerprints
update (upd, up) update the library
version output version information
web start a Web interface
write write tag information to files
02.import
beet import [-CWAPRqst] [-l LOGPATH] PATH...
beet import [options] -L QUERY
使用beet help import
命令,我们发现import这个分支命令的这个使用文档已经比较详细了。而且我在之前的文章中已经介绍过了,所以这里就不再详细介绍了。
Usage: beet import [options]
Options:
-h, --help show this help message and exit
-c, --copy copy tracks into library directory (default)
-C, --nocopy don't copy tracks (opposite of -c)
-m, --move move tracks into the library (overrides -c)
-w, --write write new metadata to files' tags (default)
-W, --nowrite don't write metadata (opposite of -w)
-a, --autotag infer tags for imported files (default)
-A, --noautotag don't infer tags for imported files (opposite of -a)
-p, --resume resume importing if interrupted
-P, --noresume do not try to resume importing
-q, --quiet never prompt for input: skip albums instead
-l LOG, --log=LOG file to log untaggable albums for later review
-s, --singletons import individual tracks instead of full albums
-t, --timid always confirm all actions
-L, --library retag items matching a query
-i, --incremental skip already-imported directories
-I, --noincremental do not skip already-imported directories
--from-scratch erase existing metadata before applying new metadata
--flat import an entire tree as a single album
-g, --group-albums group tracks in a folder into separate albums
--pretend just print the files to import
-S ID, --search-id=ID
restrict matching to a specific metadata backend ID
--set=FIELD=VALUE set the given fields to the supplied values
另外这些选项也可以在配置文件中进行默认行为的配置。
比如下面这些是我比较常用的配置
import:
# 决定日志文件的文件名,默认不生成日志文件
log: musiclibrary.log
# 取消默认标签,因为很多歌数据库搜不到都是自己加的标签,如果是平台下载的歌标签都加好了
autotag: no
# 设置为默认添加单曲,因为没有专辑听歌的习惯,单曲用的比较多
singletons: yes
# 喜好的语言,会决定标签的选择 有en jp es cn?等选项
languages: []
# 导入时显示详细信息
detail: yes
然后关于--set=FIELD=VALUE
可以添加自己定义的标签,或者设置已有的标签
这里需要注意的是,如果用set定义的字段是算到flexible filed里面的,不会写入文件的metadata。
03.list
beet list用于查询,后面跟查询字段,比如 title:abcde
,把键和值用冒号连接起来。
使用-a
选项搜索专辑,这时候对于单个项目的字段就不生效了,只有专辑层面的字段才能生效。
-p
选项加上就会打印文件名,-f
后面可以跟模板字符串,用于格式化输出。
使用双冒号连接键值可以用正则表达式进行搜索::
04.remove
从数据库中删除音乐。后面跟list一样的查询字符串
beet remove [-adf] QUERY
默认只是删除数据库中的数据,并且删除前会请你确认。加上-d
选项就会把磁盘上的文件也删除
加-f
选项可以跳过确认步骤。
05.modify
beet modify [-MWay] [-f FORMAT] QUERY [FIELD=VALUE...] [FIELD!...]
修改单曲和专辑的metadata,并且数据库也会随之更新
提供查询字符串,同样是用冒号连接,但是修改的字段和值之间是用等号进行连接的
-a
选择操作专辑的字段
modify命令输入后,会先把要修改的项目展示给你,等你确认完再执行,使用-y
选项可以跳过这个过程
06.move
beet move [-capt] [-d DIR] QUERY
用于移动或者拷贝项目,可以匹配查询字符串
当我们在配置文件中修改了目录结构的时候,就可以用move指令让文件自动移动到对应的位置。
-c
变移动为拷贝
-a
查询字符串改为查询专辑
-d
指定移动的目标目录
-p
不移动,输出要移动的文件
07.update
beet update [-F] FIELD [-aM] QUERY
更新数据库,可能会移动文件。
这个操作会遍历数据库,提取所有文件的metadata来更新数据库。如果一个文件没有被编辑过,那么就不会触发upadate,因为它判断一个文件是否被修改是通过修改时间的参数。
-F
参数,设置后只修改对应字段。
当专辑的一部分音乐发生变化的时候,beet是根据专辑的第一个音轨来确定专辑层面的字段,并且会
把第一个音轨的专辑信息拷贝到后面其他音轨。
08.write
beet write [-pf] [QUERY]
从数据库对文件写入tag,如果数据库发生变化了,可以使用这个命令吧变化反映到文件上。
(比如 你用mod修改了字段。)
-f
就算文件和数据库匹配也写入一次。
09.stats
查看整个数据库相关的数据
-e
精确模式,获得的文件大小和时长更准确,但是会花费更多的时间和资源
09.fileds
beet fields
列出所有可以用于查询或者格式化路径的字段。包括插件提供的字段和你的自定义字段。
010.config
beet config [-pdc]
beet config -e
没有参数的情况下会输出当前用户配置
--path
输出配置文件的路径
--default
输出默认配置
--clear
默认情况下,输出配置的时候敏感信息比如密码不会显示,但是加上clear选项就可以显示出来了
--edit
使用$EDITOR
环境变量指向的编辑器编辑
011.Global Flags
有一些参数作用于所有的命令,这些参数放再beet和分支命令的中间
比如beet -v import
-
-l LIBPATH
: specify the library database file to use. -
-d DIRECTORY
: specify the library root directory. -
-v
: verbose mode; prints out a deluge of debugging information. Please use this flag when reporting bugs. You can use it twice, as in-vv
, to make beets even more verbose. -
-c FILE
: read a specified YAML configuration file. This configuration works as an overlay: rather than replacing your normal configuration options entirely, the two are merged. Any individual options set in this config file will override the corresponding settings in your base configuration