管理MP3曲目音乐集的命令行应用程序

rolabesti的Python项目详细描述


https://img.shields.io/pypi/v/rolabesti.svghttps://img.shields.io/pypi/pyversions/rolabesti.svghttps://img.shields.io/pypi/wheel/rolabesti.svghttps://travis-ci.org/kinuax/rolabesti.svg?branch=masterhttps://img.shields.io/pypi/l/rolabesti.svg

动机

主要的动机是回答一个问题,音乐迷,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

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java InputStream对象在声明后关闭   java未定义名为“transactionManager”的bean重命名transactionManager   java“jar”命令何时会拒绝将类添加到java中。jar文件?   java JPA标准依赖WHERE子句   安卓中从SD卡读取文本文件时出现java错误   java直接启用类似位置的权限   使用@WebMvcTest和Mockito-BDDMockito对SpringBoot-RestController进行java测试   java JSESSIONID存储在哪里?   java jtextarea鼠标事件覆盖容器鼠标事件   java DRL无法解析动态加载的类   java是从一个方法返回多个对象的最简单方法   java自定义按钮/编辑框是否不可见?   java GUI如何在保存用户输入的同时在面板或框架之间切换   swing Java自定义JSlider不会更新   GridBagLayout中的java超过1个JPanel   java从ProjectReactor中的flux中采样除第一个元素外的所有元素   Java泛型和泛型类型   Java代码生成宽指令的jvm