
Security News
ECMAScript 2025 Finalized with Iterator Helpers, Set Methods, RegExp.escape, and More
ECMAScript 2025 introduces Iterator Helpers, Set methods, JSON modules, and more in its latest spec update approved by Ecma in June 2025.
The main purpose of this app is to give a solution to the scenario that some music fan, DJ, bartender, podcast enthusiast, or melomaniac may face: "Having a great bunch of songs, what music do I play now?". For instance, "what random songs of this artist or that genre can fill the next hour?" is the question that rolabesti answers.
rolabesti is a CLI application to manage collections of mp3 tracks, supporting these actions: loading metadata to database, parsing, searching, listing, playing, enqueueing, copying, and tagging.
pipx install rolabesti
All mp3 files located at user's Music
directory compose the music collection.
Optionally, folders can be labeled to apply any of the following patterns.
This way the database is better populated with the path fields and the accuracy
of the matching tracks improves.
Artists/<artist>/<title>.mp3
Artists/<artist>/<album>/[<side>/]<title>.mp3
Albums/<album>/[<side>/]<title>.mp3
Genres/<genre>/<title>.mp3
Genres/<genre>/<artist>/<title>.mp3
Genres/<genre>/<artist>/<album>/[<side>/]<title>.mp3
Genres/<genre>/Albums/<album>/[<side>/]<title>.mp3
Places/<place>/<title>.mp3
Places/<place>/<artist>/<title>.mp3
Places/<place>/<artist>/<album>/[<side>/]<title>.mp3
Places/<place>/Albums/<album>/[<side>/]<title>.mp3
Places/<place>/Genres/<genre>/<title>.mp3
Places/<place>/Genres/<genre>/<artist>/<title>.mp3
Places/<place>/Genres/<genre>/<artist>/<album>/[<side>/]<title>.mp3
Places/<place>/Genres/<genre>/Albums/<album>/[<side>/]<title>.mp3
<title>
, <artist>
, <album>
, <side>
(optional), <genre>
, and <place>
are placeholders.
The minimum steps to start playing are:
rolabesti init
rolabesti play
Optionally, when the default app is selected as the player, vlc
is recommended with this configuration:
checked
checked
To play two hours of rock music, limiting the track length to 5 minutes, with random sorting:
rolabesti play -l 120 -g rock --max 5 -s random
To play an hour of rap music from Iceland, skipping intro and outro tracks (less than 2 minutes length), with ascending sorting:
rolabesti play -l 60 -g rap -p Iceland --min 2 -s asc
Usage:
rolabesti [OPTIONS] COMMAND [ARGS]...
Options:
--version
: Show the application version and exit.--install-completion
: Install completion for the current shell.--show-completion
: Show completion for the current shell, to copy it or customize the installation.-h, --help
: Show this message and exit.Commands:
config
: Manage configuration settings.init
: Initialize database.list
: List matching tracks.play
: Play and enqueue matching tracks.copy
: Copy matching tracks to a directory.tag
: Update ID3 tags with path fields (file and database).rolabesti config
Manage configuration settings.
Usage:
rolabesti config [OPTIONS]
Options:
--list
: List configuration settings.--reset
: Reset configuration settings.-h, --help
: Show this message and exit.Main settings:
--max INTEGER RANGE [x>=0]
: Set default maximum track length in minutes (0 means disabled).--min INTEGER RANGE [x>=0]
: Set default minimum track length in minutes.-l, --length INTEGER RANGE [x>=0]
: Set default maximum tracklist length in minutes (0 means disabled).-s, --sorting [asc|desc|random]
: Set default order by track path.Play settings:
-o, --overlap-length INTEGER RANGE [0<=x<=30]
: Set default overlap length in seconds between two consecutive tracks (0 means disabled).Database settings:
--music-directory DIRECTORY
: Set default path to mp3 files.Copy settings:
--copy-directory DIRECTORY
: Set default path to destiny directory.rolabesti init
Initialize database.
Usage:
rolabesti init [OPTIONS]
Options:
-d, --music-directory DIRECTORY
: Path to mp3 files. [default: /home/user/Music]-h, --help
: Show this message and exit.rolabesti list
List matching tracks.
Usage:
rolabesti list [OPTIONS]
Options:
-h, --help
: Show this message and exit.Search filters:
-ar, --artist TEXT
: Track artist.-t, --title TEXT
: Track title.-al, --album TEXT
: Track album.-g, --genre TEXT
: Track genre.-p, --place TEXT
: Track place.--max INTEGER RANGE [x>=0]
: Maximum track length in minutes (0 means disabled). [default: 10]--min INTEGER RANGE [x>=0]
: Minimum track length in minutes. [default: 0]Tracklist selectors:
-s, --sorting [asc|desc|random]
: Order by track path. [default: random]rolabesti play
Play and enqueue matching tracks.
Usage:
rolabesti play [OPTIONS]
Options:
--cli / --no-cli
: Select cli or default app. [default: cli]-o, --overlap-length INTEGER RANGE [0<=x<=30]
: Overlap length in seconds between two consecutive tracks (only with --cli, 0 means disabled). [default: 3]-h, --help
: Show this message and exit.Search filters:
-ar, --artist TEXT
: Track artist.-t, --title TEXT
: Track title.-al, --album TEXT
: Track album.-g, --genre TEXT
: Track genre.-p, --place TEXT
: Track place.--max INTEGER RANGE [x>=0]
: Maximum track length in minutes (0 means disabled). [default: 10]--min INTEGER RANGE [x>=0]
: Minimum track length in minutes. [default: 0]Tracklist selectors:
-l, --length INTEGER RANGE [x>=0]
: Maximum tracklist length in minutes (0 means disabled). [default: 60]-s, --sorting [asc|desc|random]
: Order by track path. [default: random]rolabesti copy
Copy matching tracks to a directory.
Usage:
rolabesti copy [OPTIONS]
Options:
-d, --copy-directory DIRECTORY
: Path to destiny directory. [default: /home/user/Documents]-h, --help
: Show this message and exit.Search filters:
-ar, --artist TEXT
: Track artist.-t, --title TEXT
: Track title.-al, --album TEXT
: Track album.-g, --genre TEXT
: Track genre.-p, --place TEXT
: Track place.--max INTEGER RANGE [x>=0]
: Maximum track length in minutes (0 means disabled). [default: 10]--min INTEGER RANGE [x>=0]
: Minimum track length in minutes. [default: 0]Tracklist selectors:
-l, --length INTEGER RANGE [x>=0]
: Maximum tracklist length in minutes (0 means disabled). [default: 60]-s, --sorting [asc|desc|random]
: Order by track path. [default: random]rolabesti tag
Update ID3 tags with path fields (file and database).
Usage:
rolabesti tag [OPTIONS]
Options:
--id3-tag [artist|title|album|genre]
: ID3 tag to be updated. [required]-h, --help
: Show this message and exit.Search filters:
-ar, --artist TEXT
: Track artist.-t, --title TEXT
: Track title.-al, --album TEXT
: Track album.-g, --genre TEXT
: Track genre.-p, --place TEXT
: Track place.--max INTEGER RANGE [x>=0]
: Maximum track length in minutes (0 means disabled). [default: 10]--min INTEGER RANGE [x>=0]
: Minimum track length in minutes. [default: 0]FAQs
CLI app to manage, search, and play collections of mp3 tracks.
We found that rolabesti demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
ECMAScript 2025 introduces Iterator Helpers, Set methods, JSON modules, and more in its latest spec update approved by Ecma in June 2025.
Security News
A new Node.js homepage button linking to paid support for EOL versions has sparked a heated discussion among contributors and the wider community.
Research
North Korean threat actors linked to the Contagious Interview campaign return with 35 new malicious npm packages using a stealthy multi-stage malware loader.