More Refactor, Setting up for user defined file naming using variable names.

This commit is contained in:
upuv 2018-06-04 17:11:12 +10:00
parent 71e140259b
commit 9d20609f3c

View File

@ -211,11 +211,13 @@ save_metadata() {
# ----- # -----
# Reach into the meta data and extract a specific value. # Reach into the meta data and extract a specific value.
# Note the white space clean up could be well cleaner. # This is a long pipe of transforms.
# This finds the first occurance of the key : value pair.
get_metadata_value() { get_metadata_value() {
local key local key
key="$1" key="$1"
normalize_whitespace "$($GREP --max-count=1 --only-matching "${key} *: .*" "$metadata_file" | cut -d : -f 2- | sed -e 's#/##g;s/ (Unabridged)//' | tr -s '[:blank:]' ' ')" # Find the key in the meta data file # Extract field value # Remove the following /'s "(Unabridged) <blanks> at start end and multiples.
echo "$($GREP --max-count=1 --only-matching "${key} *: .*" "$metadata_file" | cut -d : -f 2- | sed -e 's#/##g;s/ (Unabridged)//;s/^[[:blank:]]\+//g;s/[[:blank:]]\+$//g' | sed 's/[[:blank:]]\+/ /g')"
} }
# ----- # -----
@ -224,12 +226,6 @@ get_bitrate() {
get_metadata_value bitrate | $GREP --only-matching '[0-9]\+' get_metadata_value bitrate | $GREP --only-matching '[0-9]\+'
} }
# -----
# simple function to turn tabs and multiple spaces into a single space.
normalize_whitespace() {
echo $*
}
# ======================================================================== # ========================================================================
# Main Transcode Loop # Main Transcode Loop
for aax_file for aax_file
@ -247,7 +243,7 @@ do
save_metadata "${aax_file}" save_metadata "${aax_file}"
genre=$(get_metadata_value genre) genre=$(get_metadata_value genre)
artist=$(get_metadata_value artist) artist=$(get_metadata_value artist)
title=$(get_metadata_value title | sed 's/'\:'/'-'/g' | sed 's/ / /g' | sed 's/- /-/g' | xargs -0) title=$(get_metadata_value title | sed 's/'\:'/'-'/g' | sed 's/- /-/g' | xargs -0)
if [ "x${targetdir}" != "x" ] ; then if [ "x${targetdir}" != "x" ] ; then
output_directory="${targetdir}/${genre}/${artist}/${title}" output_directory="${targetdir}/${genre}/${artist}/${title}"
else else
@ -302,7 +298,7 @@ do
log "Extracting ${chaptercount} chapter files from ${output_file}..." log "Extracting ${chaptercount} chapter files from ${output_file}..."
chapternum=1 chapternum=1
while read -r -u9 first _ _ start _ end while read -r -u9 first _ _ chapter_start _ chapter_end
do do
if [[ "${first}" = "Chapter" ]]; then if [[ "${first}" = "Chapter" ]]; then
read -r -u9 _ read -r -u9 _
@ -322,19 +318,19 @@ do
fi fi
# Big Long chapter debug # Big Long chapter debug
debug_vars "Chapter Variables:" cover_file start end id3_version_param chapternum chapter_title chapter_file debug_vars "Chapter Variables:" cover_file chapter_start chapter_end id3_version_param chapternum chapter_title chapter_file
# Extract chapter by time stamps start and finish of chapter. # Extract chapter by time stamps start and finish of chapter.
# This extracts based on time stamps start and end. # This extracts based on time stamps start and end.
log "Spliting chapter ${chapternum} start:${start%?}(s) end:${end}(s)" log "Spliting chapter ${chapternum} start:${chapter_start%?}(s) end:${chapter_end}(s)"
</dev/null ffmpeg -loglevel quiet -nostats -i "${output_file}" -i "${cover_file}" -ss "${start%?}" -to "${end}" -map 0:0 -map 1:0 -acodec copy ${id3_version_param} \ </dev/null ffmpeg -loglevel quiet -nostats -i "${output_file}" -i "${cover_file}" -ss "${chapter_start%?}" -to "${chapter_end}" -map 0:0 -map 1:0 -acodec copy ${id3_version_param} \
-metadata:s:v title="Album cover" -metadata:s:v comment="Cover (Front)" -metadata track="${chapternum}" -metadata title="${chapter_title}" \ -metadata:s:v title="Album cover" -metadata:s:v comment="Cover (Front)" -metadata track="${chapternum}" -metadata title="${chapter_title}" \
"${chapter_file}" "${chapter_file}"
# ----- # -----
# OK lets get what need for the next chapter in the Playlist m3u file. # OK lets get what need for the next chapter in the Playlist m3u file.
# Playlist creation. # Playlist creation.
duration=$(echo "${end} - ${start%?}" | bc) duration=$(echo "${chapter_end} - ${chapter_start%?}" | bc)
echo "#EXTINF:${duration%.*},${title} - ${chapter}" >> "${playlist_file}" echo "#EXTINF:${duration%.*},${title} - ${chapter}" >> "${playlist_file}"
echo "${chapter_title}.${container}" >> "${playlist_file}" echo "${chapter_title}.${container}" >> "${playlist_file}"
chapternum=$((chapternum + 1 )) chapternum=$((chapternum + 1 ))
@ -373,8 +369,9 @@ do
fi fi
fi fi
# -----
log "Done ${title}" # Announce that we have completed the transcode
log "Complete ${title}"
# Lastly get rid of any extra stuff. # Lastly get rid of any extra stuff.
rm "${metadata_file}" rm "${metadata_file}"