I thought to share some of the scripts in my .local/bin, because why not. I'm sharing these as/is, if your computer has a nuclear meltdown when you run them thats your issue not mine.
I will warn you that these scripts are far from efficient, you might get eye cancer just from looking at them.
I download YouTube videos as MP3's using yt-dlp with these flags, it sets YT thumbnail as the mp3 cover. One issue is it copies the whole description into the mp3 metadata. This one can be set as an alias.
#!/bin/sh yt-dlp -x --continue --add-metadata --embed-thumbnail --metadata-from-title "%(title)s" --audio-format mp3 --audio-quality 0 --prefer-ffmpeg -o "%(title)s.%(ext)s" $1
I use this to shred large folders, it takes a while because it overwrites the disk with zeros. (use at your own risk)
#!/bin/sh
if [ -z "$1" ]; then
echo "no folder specified"
else
find "$1" -type f -exec shred -uvzn3 {} \;
rm -rf "$1"
fi
I organise my music playlists in folders, and use this to play them shuffled.
#!/bin/sh
mdir=$HOME/music
cache=$HOME/.cache/mus
if [ -d $mdir/$1 ]; then
dir=$mdir/"$1"
else
dir=$mdir/
fi
get_song () {
stat=0
while [ $stat -eq 0 ]; do
song=$(find $dir -name "*.mp3" -type f | shuf -n 1 )
[ ! -f $cache ] && echo $song >> $cache
# if picked song isn't inside cache
if [ ! $(grep "$song" $cache | wc -l) -gt 0 ]; then
stat=1
echo "$song" >> $cache
fi
# if cache file more than 5 lines remove first line
if [ $(wc -l <$cache) -gt 5 ]; then
sed -i 1d $cache
fi
done
}
while true; do
get_song
mpv --no-audio-display "$song"
printf "\033c" # clears screen
sleep 1
done