HOWTO create a simple music playlist
From LinuxReviews
Jump to navigationJump to searchHere are two simple and somewhat feature-limited scripts for making a playlist file that's compatible with most music player software.
genplaylists.sh[edit]
Warning: This script does delete your old playlist files.
#!/bin/bash BASEDIR=$1 if [ "$BASEDIR" == "" ]; then echo You must specify a base directory exit 1 fi cd $BASEDIR BASEDIR=`pwd` # Remove existing playlists find . -name '*.m3u'|sed -e "s/^/\"/"|sed -e "s/$/\"/"|xargs rm -f find . -type d |sort| while read -r DIR; do cd "$BASEDIR/$DIR" find . -type f |grep -v m3u|sort> '00-Playlist.m3u' done
make-ogg-playlist[edit]
!/bin/bash # # make-ogg-playlist v0.1 (By Sam Storie) # # Changelog: # v0.1 Initial Creation # # # This creates a series of XMMS playlist files # from an ogg library that is organized like: # # /home/sam/music # +- Radiohead # +- Paranoid_Android # | +- Track1.ogg # | +- Track2.ogg # +- Hail_to_the_Theif # +- Track1.ogg # +- Track2.ogg # # and creates these files: # .../music/all.pls (all oggs) # .../music/Radiohead.pls (from Radiohead) # ../music/Radiohead/Paranoid_Android.pls (that album only) # .../music/Radiohead/Hail_to_the_Theif.pls (that album only) # # Needs to be full path (ie, ~/music won't work) ROOT=/home/sam/music cd $ROOT BuildPlaylist() { ct=1 NUM=$(find $1 -type f -name *.ogg | wc -l | awk '{print $1}') echo "[playlist]" > $2.pls echo "NumberOfEntries=$NUM" >> $2.pls for i in `find $1* -type f -name *.ogg`; do echo "File${ct}=${ROOT}/${i}" >> $2.pls ct=`expr $ct + 1` done } # Do all the subdirectories for j in `find * -type d -maxdepth 1`; do BuildPlaylist $j $j done # Make a list for all of them BuildPlaylist "" "all" /pre>