Created
January 31, 2016 20:06
-
-
Save CptSpaceToaster/0f4e35b2d15d01ddcacb to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
function get_artist() { | |
if [[ ! -z "$ARTIST" ]]; then | |
return | |
fi | |
ARTIST=$(mid3v2 "$1" -l | awk -F"=" '/TPE1/ {print $2}') | |
if [[ ! -z "$ARTIST" ]]; then | |
return | |
fi | |
ARTIST=$(mid3v2 "$1" -l | awk -F"=" '/TPE2/ {print $2}') | |
if [[ ! -z "$ARTIST" ]]; then | |
return | |
fi | |
ARTIST=$(mid3v2 "$1" -l | awk -F"=" '/TPE3/ {print $2}') | |
if [[ ! -z "$ARTIST" ]]; then | |
return | |
fi | |
ARTIST=$(mid3v2 "$1" -l | awk -F"=" '/TPE4/ {print $2}') | |
if [[ ! -z "$ARTIST" ]]; then | |
return | |
fi | |
if [[ -z "$ARTIST" ]]; then | |
read -p "Author: " ARTIST | |
fi | |
} | |
function get_album() { | |
if [[ ! -z "$ALBUM" ]]; then | |
return | |
fi | |
ALBUM=$(mid3v2 "$1" -l | awk -F"=" '/TALB/ {print $2}') | |
if [[ ! -z "$ALBUM" ]]; then | |
return | |
fi | |
ALBUM=$(mid3v2 "$1" -l | awk -F"=" '/TOAL/ {print $2}') | |
if [[ ! -z "$ALBUM" ]]; then | |
return | |
fi | |
ALBUM=$(mid3v2 "$1" -l | awk -F"=" '/TIT1/ {print $2}') | |
if [[ ! -z "$ALBUM" ]]; then | |
return | |
fi | |
if [[ -z "$ALBUM" ]]; then | |
read -p "Album: " ARTIST | |
fi | |
} | |
if [[ ! -e "$1" ]]; then | |
echo "Please gib me zip feil" | |
exit 1 | |
fi | |
TMP=$(mktemp -dt "sXXXXXXXX") | |
ZIP=$1 | |
shift | |
ALBUM=$1 | |
shift | |
ARTIST=$1 | |
shift | |
# Extract files to a temporary directory | |
unzip "$ZIP" -d "$TMP" | |
if [[ $? -ne 0 ]]; then | |
echo "Can't find zipper" | |
exit 1 | |
fi | |
for i in $TMP/*.mp3; do | |
# Get author | |
get_artist "$i" | |
# Get artist | |
get_album "$i" | |
# Set song attributes for nefarious CMUS porpoises | |
mid3v2 "$i" -a "$ARTIST" | |
mid3v2 "$i" -A "$ALBUM" | |
# Get the base filename | |
BASE=$(basename "$1") | |
mkdir -p "$HOME/Music/$ARTIST/$ALBUM" | |
mv "$i" "$HOME/Music/$ARTIST/$ALBUM/$BASE" | |
# echo $i | |
# echo "$HOME/Music/$ARTIST/$ALBUM/$BASE" | |
echo "Installing: $BASE" | |
done | |
# Clean up temp directory | |
rm -rf $TMP |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment