Skip to content

Instantly share code, notes, and snippets.

@deckerego
Last active November 23, 2015 01:37
Show Gist options
  • Save deckerego/06327f8f0bacdd2f586b to your computer and use it in GitHub Desktop.
Save deckerego/06327f8f0bacdd2f586b to your computer and use it in GitHub Desktop.
Transcode all archived music in a directory to MP4, preserving base directory layouts
#!/bin/bash
DEST_DIR="/home/iPod"
FULL_PATH="$1"
ALBUM=$(basename "$FULL_PATH")
NEW_PATH="$DEST_DIR/$ALBUM"
echo "Transcoding into $NEW_PATH"
mkdir "$NEW_PATH"
FILES=$(find "$FULL_PATH" -regextype posix-extended -iregex ".*(ogg|flac)$")
IFS="
"
for OLD_FILE in $FILES; do
OLD_FILE_NAME=$(basename "$OLD_FILE")
FILE_BASE="${OLD_FILE_NAME%.*}"
TEMP_FILE="$NEW_PATH/$FILE_BASE.tmp.m4a"
NEW_FILE="$NEW_PATH/$FILE_BASE.m4a"
echo "Convert $OLD_FILE to $NEW_FILE"
avconv -loglevel error -i "$OLD_FILE" -acodec aac -strict experimental "$TEMP_FILE"
avconv -loglevel error -i "$TEMP_FILE" -i "$OLD_FILE" -map 0 -c copy -map_metadata 1:s:a "$NEW_FILE"
rm -f "$TEMP_FILE"
done
@deckerego
Copy link
Author

Example of execution:
find /home/music/ -maxdepth 1 -mindepth 1 -type d -perm -u=x -exec convert_ipod.bash {} \;

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment