#!/bin/sh # Rename Guillaume Meurice podcast files # Also change the title tag (2016.09.30 Title) # http://radiofrance-podcast.net/podcast09/rss_14257.xml # If the first arg is a directory if [ -d "${1}" ]; then MEURICE_DIR="${1}" TMP_LIST_FILE="/tmp/list_meurice_file" # List audio files find "${MEURICE_DIR}" -mindepth 1 -type f -iregex '.*\.mp3' > "${TMP_LIST_FILE}" while IFS= read -r FILE do FILE_ABSOLUT_PATH="${MEURICE_DIR}/${FILE}" # Get file information FILE_EXT=$(echo "${FILE_ABSOLUT_PATH}" | awk -F'[.]' '{print $NF}') # Get tag information DATE=$(eyeD3 "${FILE_ABSOLUT_PATH}" | grep 'title' 2> /dev/null | sed 's/.*\(..\).\(..\).\(201.\).*/\3-\2-\1/') TITLE=$(eyeD3 "${FILE_ABSOLUT_PATH}" | grep 'title' 2> /dev/null | sed 's/.*: \(.*\) \(..\).\(..\).\(201.\).*/\1/') printf '%s\n' "date : ${DATE}" printf '%s\n' "title : ${TITLE}" # Correct title tag command eyeD3 --title="${DATE} ${TITLE}" "${FILE_ABSOLUT_PATH}" # Rename the file mv "${FILE_ABSOLUT_PATH}" "${MEURICE_DIR}"/"${DATE}"_"${TITLE}"."${FILE_EXT}" done < "${TMP_LIST_FILE}" # If the first arg is a file elif [ -f "${1}" ]; then MEURICE_FILE="${1}" MEURICE_DIR=$(dirname "${MEURICE_FILE}") # Get file information FILE_EXT=$(echo "${MEURICE_FILE}" | awk -F'[.]' '{print $NF}') # Get tag information DATE=$(eyeD3 "${MEURICE_FILE}" | grep 'title' 2> /dev/null | sed 's/.*\(..\).\(..\).\(201.\).*/\3-\2-\1/') TITLE=$(eyeD3 "${MEURICE_FILE}" | grep 'title' 2> /dev/null | sed 's/.*: \(.*\) \(..\).\(..\).\(201.\).*/\1/') printf '%s\n' "date : ${DATE}" printf '%s\n' "title : ${TITLE}" # Correct title tag command eyeD3 --title="${DATE} ${TITLE}" "${MEURICE_FILE}" # Rename the file mv "${MEURICE_FILE}" "${MEURICE_DIR}"/"${DATE}"_"${TITLE}"."${FILE_EXT}" # Otherwise print an error else printf '%s\n' "Error with the first arg : ${1}" exit 1 fi exit 0