From 1a45f94f3c285d75846837514c0253f06e058fc1 Mon Sep 17 00:00:00 2001 From: Quietus <2498842+Quietus@users.noreply.github.com> Date: Wed, 23 Mar 2022 22:11:38 +0000 Subject: [PATCH 1/2] Set cover art not to be added if chaptered. Fixed an issue encountered if ffprobe returned 2 items. Improved cleanup if audiblecli in use. --- AAXtoMP3 | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/AAXtoMP3 b/AAXtoMP3 index 670f2e5..e11650b 100755 --- a/AAXtoMP3 +++ b/AAXtoMP3 @@ -288,7 +288,7 @@ fi # ----- # Detect if we need mp4art for cover additions to m4a & m4b files. -if [[ "x${container}" == "xmp4" && "x$(type -P mp4art)" == "x" ]]; then +if [[ "x${container}" == "xmp4" && "x$(type -P mp4art)" == "x" && ! "$mode" == "chaptered" ]]; then echo "WARN mp4art was not found on your env PATH variable" echo "Without it, this script will not be able to add cover art to" echo "m4b files. Note if there are no other errors the AAXtoMP3 will" @@ -807,8 +807,8 @@ do fi extra_crop_cover='' - cover_width=$(ffprobe -i "${cover_file}" 2>&1 | $GREP -Po "[0-9]+(?=x[0-9]+)") - if (( ${cover_width} % 2 == 1 )); then + cover_width=$(ffprobe -i "${cover_file}" 2>&1 | $GREP -Po "[0-9]+(?=x[0-9]+)" | tail -n 1) + if [[ $(($cover_width % 2)) -eq 1 ]]; then if [ "$((${loglevel} > 1))" == "1" ]; then log "Cover ${cover_file} has odd width ${cover_width}, setting extra_crop_cover to make even." fi @@ -967,7 +967,7 @@ do fi fi - if [ -f "${cover_file}" ]; then + if [[ -f "${cover_file}" && ! "$mode" == "chaptered" ]]; then log "Adding cover art" # FFMGEP does not support MPEG-4 containers fully # if [ "${container}" == "mp4" ] ; then @@ -1009,6 +1009,14 @@ do log "Moving Transcoded ${aax_file} to ${completedir}" fi mv "${aax_file}" "${completedir}" + if [[ ${audibleCli} -eq 1 ]]; then + if [ "$((${loglevel} > 0))" == "1" ]; then + log "Moving remaining audible files to ${completedir}" + fi + [[ -f "${aax_file%%-AAX_??_??.aaxc}_\((*)\).jpg" ]] && mv -v "${aax_file%%-AAX_??_??.aaxc}_\((*)\).jpg" "${completedir}" + [[ -f "${aax_file%%.aaxc}.voucher" ]] && mv -v "${aax_file%%.aaxc}.voucher" "${completedir}" + [[ -f "${aax_file%%-AAX_??_??.aaxc}-chapters.json" ]] && mv -v "${aax_file%%-AAX_??_??.aaxc}-chapters.json" "${completedir}" + fi fi done From f91008db62fc8827de971cd0485c17be1b192df5 Mon Sep 17 00:00:00 2001 From: Quietus <2498842+Quietus@users.noreply.github.com> Date: Fri, 25 Mar 2022 14:04:05 +0000 Subject: [PATCH 2/2] Applied flattening function to chapters in chaptered mode as well as single mode, to avoid issues with nested chapter structures in books. --- AAXtoMP3 | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/AAXtoMP3 b/AAXtoMP3 index e11650b..036dac9 100755 --- a/AAXtoMP3 +++ b/AAXtoMP3 @@ -537,8 +537,10 @@ save_metadata() { # put a ',' after the start value, we calculate the end of each chapter # as start+length, and we convert (divide) the time stamps from ms to s. # Then we delete all ':' and '/' since they make a filename invalid. - jq -r '.content_metadata.chapter_info.chapters[] | "Chapter # start: \(.start_offset_ms/1000), end: \((.start_offset_ms+.length_ms)/1000) \n#\n# Title: \(.title)"' "${extra_chapter_file}" \ - | $SED 's@[:/]@@g' >> "$metadata_file" + jq -r '.content_metadata.chapter_info.chapters | reduce .[] as $c ([]; if $c.chapters? then .+[$c | + del(.chapters)]+[$c.chapters] else .+[$c] end) | flatten | .[] | + "Chapter # start: \(.start_offset_ms/1000), end: \((.start_offset_ms+.length_ms)/1000) \n#\n# Title: \(.title)"' \ + "${extra_chapter_file}" | $SED 's@[:/]@@g' >> "$metadata_file" # In case we want to use a single file m4b we need to extract the # chapter titles from the .json generated by audible–cli and store # them correctly formatted for mp4chaps in a chapter.txt