2023-12-08 20:46:21 +01:00
|
|
|
#!/usr/bin/env bash
|
|
|
|
scriptVersion=1.0
|
|
|
|
rootFolderPath="$(dirname "$readarr_author_path")"
|
|
|
|
scriptName="M4bCombine"
|
|
|
|
|
|
|
|
|
|
|
|
log() {
|
|
|
|
m_time=$(date "+%F %T")
|
|
|
|
echo "$m_time :: $scriptName :: $scriptVersion :: $1" >> "/config/logs/$scriptName-$(date +"%Y_%m_%d_%I_%M_%p").txt"
|
|
|
|
}
|
|
|
|
|
|
|
|
# Combine M4b Files
|
|
|
|
combineM4bFiles() {
|
|
|
|
log "Combining M4b files using FFmpeg..."
|
|
|
|
|
|
|
|
# Determine the M4b files path based on the context
|
|
|
|
if [ -z "$readarr_author_path" ]; then
|
|
|
|
# Extended script context
|
|
|
|
m4bFiles="$readarr_artist_path/*.mp3 $readarr_artist_path/*.m4b"
|
|
|
|
outputFolder="$readarr_artist_path/"
|
|
|
|
else
|
|
|
|
# Readarr context
|
|
|
|
m4bFiles="$1/*.mp3 $1/*.m4b"
|
|
|
|
outputFolder="$1/"
|
|
|
|
fi
|
|
|
|
|
|
|
|
# Extract author and book information
|
|
|
|
author=$(basename "$(dirname "$readarr_author_path")")
|
|
|
|
book=$(basename "$readarr_author_path")
|
|
|
|
|
|
|
|
# Create the output file path
|
|
|
|
outputFile="${outputFolder}${author}_${book}_combined.m4b"
|
|
|
|
|
|
|
|
# FFmpeg command to concatenate M4b files
|
|
|
|
ffmpeg -i "concat:$m4bFiles" -vn -b:a 128k -f m4b "$outputFile" 2>&1
|
|
|
|
|
|
|
|
if [ $? -eq 0 ]; then
|
|
|
|
log "M4b files combined successfully. Output: $outputFile"
|
2023-12-21 00:19:25 +01:00
|
|
|
rm -f "$readarr_artist_path/*.mp3"
|
|
|
|
log "MP3 files removed after successful M4b file combination."
|
2023-12-08 20:46:21 +01:00
|
|
|
else
|
|
|
|
log "Error combining M4b files with FFmpeg."
|
2023-12-21 00:19:25 +01:00
|
|
|
log "original file untouched"
|
2023-12-08 20:46:21 +01:00
|
|
|
fi
|
|
|
|
}
|
|
|
|
|
|
|
|
# Call the function to combine M4b files
|
|
|
|
combineM4bFiles "$readarr_artist_path"
|
|
|
|
|
|
|
|
exit 0
|