diff --git a/AAXtoMP3 b/AAXtoMP3 index 1bec38b..bedf2aa 100755 --- a/AAXtoMP3 +++ b/AAXtoMP3 @@ -5,7 +5,7 @@ # Command Line Options # Usage Synopsis. -usage=$'\nUsage: AAXtoMP3 [--flac] [--aac] [--opus ] [--single] [--level ]\n[--chaptered] [-e:mp3] [-e:m4a] [-e:m4b] [--authcode ] [--no-clobber]\n[--target_dir ] [--complete_dir ] [--validate]\n[--continue ] [--keep-artist ] {FILES}\n' +usage=$'\nUsage: AAXtoMP3 [--flac] [--aac] [--opus ] [--single] [--level ]\n[--chaptered] [-e:mp3] [-e:m4a] [-e:m4b] [--authcode ] [--no-clobber]\n[--target_dir ] [--complete_dir ] [--validate]\n[--continue ] [--keep-artist ] [--author ] {FILES}\n' codec=libmp3lame # Default encoder. extension=mp3 # Default encoder extension. level=-1 # Compression level. Can be given for mp3, flac and opus. -1 = default/not specified. @@ -20,6 +20,7 @@ noclobber=0 # Default off, clobber only if flag is enabled continue=0 # Default off, If set Transcoding is skipped and chapter splitting starts at chapter continueAt. continueAt=1 # Optional chapter to continue splitting the chapters. keepArtist=-1 # Default off, if set change artist metadata to use the passed argument as field +authorOverride= # Override the author, ignoring the metadata # ----- # Code tip Do not have any script above this point that calls a function or a binary. If you do @@ -62,6 +63,8 @@ while true; do --level ) level="$2"; shift 2 ;; # Keep artist number n --keep-artist ) keepArtist="$2"; shift 2 ;; + # Author override + --author ) authorOverride="$2"; shift 2 ;; # Command synopsis. -h | --help ) printf "$usage" $0 ; exit ;; # Standard flag signifying the end of command line processing. @@ -144,7 +147,7 @@ log() { # ----- # Print out what we have already after command line processing. -debug_vars "Command line options as set" codec extension mode container targetdir completedir auth_code +debug_vars "Command line options as set" codec extension mode container targetdir completedir auth_code keepArtist authorOverride # ======================================================================== # Variable validation @@ -413,13 +416,19 @@ do # Make sure everything is a variable. Simplifying Command interpretation save_metadata "${aax_file}" genre=$(get_metadata_value genre) - if [ "${keepArtist}" != "-1" ]; then - # sed command: 'C. S. Lewis' -> 'C.S. Lewis' - artist=$(get_metadata_value artist | cut -d',' -f"$keepArtist" | $SED -E 's|\. +|\.|g; s|((\w+\.)+)|\1 |g') - album_artist="$(get_metadata_value album_artist | cut -d',' -f"$keepArtist" | $SED -E 's|\. +|\.|g; s|((\w+\.)+)|\1 |g')" + if [ "x${authorOverride}" != "x" ]; then + #Override + artist="${authorOverride}" + album_artist="${authorOverride}" else - artist=$(get_metadata_value artist) - album_artist="$(get_metadata_value album_artist)" + if [ "${keepArtist}" != "-1" ]; then + # sed command: 'C. S. Lewis' -> 'C.S. Lewis' + artist=$(get_metadata_value artist | cut -d',' -f"$keepArtist" | $SED -E 's|\. +|\.|g; s|((\w+\.)+)|\1 |g') + album_artist="$(get_metadata_value album_artist | cut -d',' -f"$keepArtist" | $SED -E 's|\. +|\.|g; s|((\w+\.)+)|\1 |g')" + else + artist=$(get_metadata_value artist) + album_artist="$(get_metadata_value album_artist)" + fi fi title=$(get_metadata_value title | $SED 's/'\:'/'-'/g' | $SED 's/- /-/g' | xargs -0) title=${title:0:100} diff --git a/README.md b/README.md index cb421e6..93fc18c 100644 --- a/README.md +++ b/README.md @@ -52,6 +52,7 @@ bash AAXtoMP3 [-f|--flac] [-o|--opus] [-a|-aac] [-s|--single] [--level