Store mp3 playlist on variable and play with mpg123

PLAYLIST=$(ls -1) ; mpg123 -C $PLAYLIST
On my music directory, I create variable that contains all mp3s files, then I play them with mpg123. -C options enable terminal control key, s for stop, p for pause, f for forward to next song.

2009-03-19 17:20:28

These Might Interest You

  • Play files in shuffle mode with bash and mpg123. Why bother using big-as-hell stuff like mplayer? This will play all your music files contained in */* (in my case author/song.format) with bash and mplayer showing a nice output. Show Sample Output

    while [[ 1 ]]; do n=( */* ); s=${n[$(($RANDOM%${#n[@]}))]}; echo -e " - $s"; mpg123 -q "$s"; done
    XayOn · 2013-01-18 09:20:58 0
  • Pick a mp3 at random and play it. Assumes the availability of locate with an updated db and mpg123 Not the most useful command I guess, but all of the really useful ones are taken...

    mpg123 "`locate -r '\.mp3$'|awk '{a[NR]=$0}END{print a['"$RANDOM"' % NR]}'`"
    unixmonkey1730 · 2009-02-23 13:53:12 6
  • Add a [fluxbox] binding in your key file then this command provides a dmenu selector for the next track to play

    mpc play $(sed -n "s@^[ >]\([0-9]\+\)) $(mpc playlist|cut -d' ' -f3-|dmenu -i -p 'song name'||echo void)@\1@p" < <(mpc playlist))
    gibboris · 2009-10-30 16:22:10 1
  • This uses bash's Process Substitution. It is necessary to give the full path of the file, thus why the filenames are filtered through realpath. In theory, this command should also work with mplayer and mplayer2 (using -playlist instead of --playlist). Modifications: - You can search specific directories by inserting them between "find" and "-type". - Edit the parameter of "-iname" to change the type of file searched for. - Remove everything after "realpath" to play the files in order.

    mpv --playlist <(find -type f -iname '*.mp3' -print0 | xargs -0 realpath | sort -R)
    hololeap · 2017-09-28 23:28:40 0

What Others Think

What's the point of the variable?
ozymandias · 483 weeks and 1 day ago
I've make a mistake,it's a simple variable,not an enviroment variable
servermanaged · 483 weeks and 1 day ago
mpg123 $(ls -1)
mpb · 483 weeks and 1 day ago
makes no sense
maht · 483 weeks ago
for me had a sense :)
servermanaged · 483 weeks ago
How about: mpg123 *
kzh · 465 weeks and 1 day ago

What do you think?

Any thoughts on this command? Does it work on your machine? Can you do the same thing with only 14 characters?

You must be signed in to comment.

What's this? is the place to record those command-line gems that you return to again and again. That way others can gain from your CLI wisdom and you from theirs too. All commands can be commented on, discussed and voted up or down.

Share Your Commands

Stay in the loop…

Follow the Tweets.

Every new command is wrapped in a tweet and posted to Twitter. Following the stream is a great way of staying abreast of the latest commands. For the more discerning, there are Twitter accounts for commands that get a minimum of 3 and 10 votes - that way only the great commands get tweeted.


Subscribe to the feeds.

Use your favourite RSS aggregator to stay in touch with the latest commands. There are feeds mirroring the 3 Twitter streams as well as for virtually every other subset (users, tags, functions,…):

Subscribe to the feed for: