Canticle
Canticle is a command-line music/audio streaming application. It uses Blessed as front-end for youtube-dl and mplayer. Canticle is designed for streaming only and does not download media for off-line playback.
NOTICE
This software uses the MIT License.
PRE-RELEASE
Development Status Canticle has served me well for a good stretch of time even though I neglect doing work to improve it. If I were to put forth the effort to finish cleaning it up, it might even be something nice. Not sure if that'll ever happen. Occasionally dependencies will break this app; be patient, sometimes these things work themselves out.
Features
- Uses the entire terminal window to provide a friendly user interface.
- Command console accepts text commands for managing playlists and playback.
- Add URL's from popular streaming sites such as YouTube to local playlists.
- Option to shuffle playback.
- Keyboard shortcuts for seeking through tracks. (0.0.3)
- Keyboard shortcuts for controlling in-app volume. (0.0.3)
- User specific options can be set in
~/.config/canticle/*.json
. (0.0.3) - Keyboard shortcuts for controlling playback. (0.0.3)
- (0.0.4) Command to validate that existing tracks in a playlist have valid streams.
- (0.0.4) Example:
validate playlist example
- (0.0.4) Maintenence script can optionally prune invalid tracks
- (0.0.4) Ability to import existing public YouTube playlists
- (0.0.4)
dj
andautoplay
commands for quickly starting playback - (0.0.4) Add tracks to playlists via CLI
- (0.0.4) WinAMP style title scroll in the Now Playing widget
- (0.0.4) Keyboard shortcuts for navigating playlist
PgUp
Select first track in playlistPgDn
Select last track in playlistHome
Move playlist selection up the number of visible tracksEnd
Move playlist selection down the number of visible tracks
What's New (0.0.5)
- Published on yarn
- Switched to yarn for development
- File logging path can be set in user config under
logging
- Default
false
- Default
- Database file path can be set in user config
- Default
/home/$USER/.config/canticle/database.sql
- Default
Coming Soon
- Interactive
help
command - Ability to delete tracks from the app
- mysql and postgres support.
- VIM Style keybindings.
- mpv and VLC support.
- Move tracks between playlists.
- Trash playlist that acts like a recycle bin.
- Export tracks to text file.
- Desktop notications.
- Time-weighted shuffle.
Dependencies
- A modern version of node (Developed using v8.9.3)
- mplayer
- sqlite3
Installation (Ubuntu 18.04)
sudo apt install mplayer
yarn global add canticle
- If it isn't already you'll need to put your yarn global bin in your
$PATH
.
Usage
Though there is some mouse support, Canticle is primarily controlled by text commands.
Commands
add playlist [name]
- add a new playlist to the playlist manageradd track [URL]
- add a new track to the open playlistadd tracks [playlist url]
- add tracks from a public YouTube playlist to the open playlistplay
- Opens a playlist, if a playist is open, play the highlighted trackplay [integer]
play track [integer]
- Opens a specific track in the playlist by indexplay [name]
play playlist [name]
- Opens a specific track in the playlist manager by name
shuffle
- Toggles track shufflingnext
- Highlight the next track to be playeddj
- Opens a playlist, enables shuffle, selects the next track, and starts playbackvalidate playlist [name]
validate each track in a playlistpause
- Toggle pausing playbackquit
- Quit the application
Keyboard shortcuts
Esc
- Blur the command console (click in text area to reselect)Ctrl+c
- When command console is blurred exit the apphome
- Select first track in the open playlistend
- Select the last track in the open playlistPgUp
- Move playlist selection up the number of visible tracksPgDn
- Move playlist selection down the number of visible tracksRight Arrow
- Seek ahead in trackLeft Arrow
- Seek behind in trackUp Arrow
- Go back in command historyDown Arrow
- Go forward in command history or blank console
Inspiration
Inspired by mps-youtube
License
- MIT