Here’s a quick guide on how to play music in the terminal with MPlayer or mpv.
MPlayer
Install MPlayer
Something like this should work on Debian-based GNU/Linux distros:
$ sudo apt update
$ sudo apt install mplayer
I’m not sure how to install it on other operating systems (brew on Mac?), but the website has a downloads page.
Play Music
cd
into the ~/Music
directory (or wherever you keep your music) and type something like:
$ mplayer some_directory/*
or the partial name of an artist with wildcards, like this for Soft Machine:
$ mplayer *Soft*
Playlists
A playlist is just a text file with a list of music files to play. List your media files in a .txt
file and then run it like this:
$ mplayer -playlist some_playlist.txt
Controls
← and → move back and forward in a track.
< and > go to the previous and next tracks.
For more documentation, type this:
$ man mplayer
mpv
Update: I’ve discovered another similar command line music player called mpv.
To play files, pass mpv
a list of files, for example, a directory that contains the music files you want to play:
$ mpv some_genre/*
Like in mplayer, playlists are just text files with file names. The format of the command is just slightly different than mplayer’s:
$ mpv --playlist=some_playlist.txt
To shuffle songs:
$ mpv some_directory/ --shuffle
mpv keybindings
The commands are similar to mplayer’s.
- 9 and 0 — volume down and up
- ← and → move back and forward in a track.
- < and > go to the previous and next tracks.
- space — toggle pause
The manual is here. A list of configurable keybindings is here.
Tips for Creating Playlists
In both programs, a playlist is just a list of file names to play.
To create playlists quickly, you can use a command like this to list the files of a directory in a text file:
$ ls -1 some_genre/ > some_playlist.txt
Once you have the filenames in a text file, you can rearrange them in the desired order.
Here’s how the command works:
-
ls
— list a directory -
-1
— the number 1 tells the command to only list the file names -
some_genre/
— this can be the name of a directory that contains your music files -
> some_playlist.txt
— this sends the output of the command into a file
If you want your playlist to use full paths, try something like this instead:
$ ls -1d $PWD/some_genre/* > some_playlist.txt
Explanation:
-
$PWD
— this prints the working directory in the output (the full file path to the current directory) -
-d
— this lists the target directory itself
Other Terminal-Based Media Players
There are some other command line players with more features, but I’ve settled on mplayer at the moment, because it’s simple.