管理MP3曲目音乐集的命令行应用程序
rolabesti的Python项目详细描述
动机
主要的动机是回答一个问题,音乐迷,DJ,调酒师和音乐爱好者可能会面临大量的音频文件:“我播放什么音乐?那就是,我现在想要什么类型的?“或者”哪首随机歌曲能填满我能听到的时间?'是rolabesti回答的问题类型。
说明
rolabesti是一个命令行应用程序,用于管理音乐库,对MP3文件执行以下操作:加载到数据库、解析、搜索、播放、排队、复制和标记。
要求
- Linux环境。
- Python3.3+。建议使用virtual environment。
- MongoDB实例。
- VLC播放器。选择shellplayer时,只需要libvlclibrary。
安装
$ pip install rolabesti
配置
默认设置可以在~/.config/rolabesti/rolabesti.conf中重写。此配置文件的ini语法具有名为[rolabesti]的唯一节。
- MUSIC_DIR:MP3文件所在的路径,默认为~/Music。
- {TT7}$:分钟内的最大磁道长度,对应于^ {TT8}$参数,缺省值是{{TT9} $。
- MIN_TRACK_LENGTH:最小磁道长度(分钟),对应于MIN参数,默认值为0。
- {TT13} $:最大TrcLead长度为分钟,对应于^ {TT13}$参数;^ {TT12}$表示没有跟踪列表长度限制,默认为^ {TT16}$。
- SORTING:跟踪列表排序,对应于SORTING参数;选项有asc(升序)、desc(降序)和random,默认为random。
- PLAYER:播放和排列曲目的播放机,对应于PLAYER参数;选项有shell(直接在shell中播放曲目)和vlc(在vlc播放机中播放曲目,必要时打开),默认值为vlc。
- ^ TT28 } $:在选择^ {TT1}$播放器时,在两个连续磁道之间的秒重叠长度,对应于^ {TT28 } $参数;最小值是{TT12} $,最大值是{TT32 } $,默认值是^ {TT33 } $。
- MONGO_HOST:MongoDB主机,默认为localhost。
- MONGO_PORT:MongoDB端口,默认为27017。
- MONGO_DBNAME:MongoDB数据库名,默认为rolabesti。
- MONGO_COLNAME:MongoDB集合名,默认为tracks。
在运行应用程序之前,在MUSIC_DIR中定位MP3文件就足够了。此外,当轨迹路径具有下列模式之一时,搜索结果更加精确。
- MUSIC_DIR/Places/<place>/Genres/<genre>/Albums/<album>/[<side>/]<title>.mp3
- MUSIC_DIR/Places/<place>/Genres/<genre>/<artist>/<album>/[<side>/]<title>.mp3
- MUSIC_DIR/Places/<place>/Genres/<genre>/<artist>/<title>.mp3
- MUSIC_DIR/Places/<place>/Genres/<genre>/`<title>.mp3
- MUSIC_DIR/Places/<place>/Albums/<album>/[<side>/]<title>.mp3
- MUSIC_DIR/Places/<place>/<artist>/<album>/[<side>/]<title>.mp3
- MUSIC_DIR/Places/<place>/<artist>/<title>.mp3
- MUSIC_DIR/Places/<place>/<title>.mp3
- MUSIC_DIR/Genres/<genre>/Albums/<album>/[<side>/]<title>.mp3
- MUSIC_DIR/Genres/<genre>/<artist>/<album>/[<side>/]<title>.mp3
- MUSIC_DIR/Genres/<genre>/<artist>/<title>.mp3
- MUSIC_DIR/Genres/<genre>/<title>.mp3
- MUSIC_DIR/Artists/<artist>/<album>/[<side>/]<title>.mp3
- MUSIC_DIR/Artists/<artist>/<title>.mp3
- MUSIC_DIR/Albums/<album>/[<side>/]<title>.mp3
- MUSIC_DIR/[some/path/]<title>.mp3
<place>、<genre>、<artist>、<album>、<side>和<title>是任何长度和字符的占位符。方括号表示可选。
数据库中加载了运行load子命令的跟踪元数据。
$ rolabesti load
选择vlcplayer时,建议使用唯一的运行实例配置。
- 工具/首选项/界面/播放列表和实例
- 只允许一个实例:checked
- 以一种实例模式将项目排入播放列表:checked
用法
$ rolabesti [-h] SUBCOMMAND [ARGUMENTS]
可以使用以下命令检查每个子命令的参数:
$ rolabesti SUBCOMMAND -h
让我们看几个例子。
播放两小时的摇滚音乐,将曲目长度限制为10分钟,随机排序:
$ rolabesti play -g rock -l 120 --max 10 -s random
从冰岛演奏一小时的说唱音乐,跳过国际音乐剧o和outro音轨(长度小于2分钟),升序排序:
$ rolabesti play -g rap -l 60 -p Iceland --min 2 -s asc