all repos — dotfiles-extra @ d8e4339a351e8556ffe76d3c79be8c8fafa9cd66

extra configs that may be extraneous and/or may be platform specific

bin/TODO/mp3-tag-setter.sh

 1
 2
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
#!/usr/bin/env bash

# by AAAAAAAA

# assumes that mp3 files-to-be-tagged are named accordingly:
# Track # - Artist - Title.mp3
#
# TODO: get semi-working
# TODO: run shellcheck on this file once it works
# TODO: use mutagen/mid3v2 because it's better and more up-to-date
#

# sets tag $TAG for every .mp3 file in the currecnt directory
set_tag() {
    echo "Type in the field name _exactly_: "
    read "FIELD"
    for i in *.mp3 ; do ${TAGEDITOR} ${TAG} ${FIELD} "$i"; done
}

# reads song titles from textfile, as well as ARTIST and ALBUM variables, 
# assumes song title order in file matches up with filename order in current
# directory, then renames accordingly
rename_mp3s() {
    MP3FILELIST="$(ls -1)"
    while LINE= read -r line
    do
        # something with $line
    done < $INPUTFILE

}

# sets variables for command and flags for the id3 tag editor of choice
TAGEDITOR="id3tag" # id3tag comes with id3v2, which is in the Arch repo
ALBUM_FLAG="-A"
ARTIST_FLAG="-a"
YEAR_FLAG="-y"
TRACK_NUM_FLAG="-t"
TITLE_FLAG="-s"

WELCOME="mp3-tag-setter.sh Version 0.2\n \
This script applies to every .mp3 file in the current directory.\n \
Note: actions with (*) require the files to be named accordingly:\n \
    Track# - Artist - Title.mp3\n \
Would you like to:\n \
1) Set the album\n \
2) Set the artist\n \
3) Set the year\n \
4) Set track numbers (*)\n \
5) Set track titles (*)\n \
6) Mass rename of files according to pre-defined textfile (is own thing)\n"

echo -e $WELCOME
read "ACTION"

case $ACTION in
1)
    TAG="$ALBUM_FLAG"
    set_flag()
    ;;
2)
    TAG="$ARTIST_FLAG"
    set_flag()
    ;;
3)
    TAG="$YEAR_FLAG"
    set_flag()
    ;;
4)
    # set track numbers from filename
    #
    ;;
5)
    # set track titles from filename
    #
    ;;
6)
    # renames a set of .mp3s IN ORDER according to ordered list in a textfile
    # echo an explanation as to how this works
    #
    echo "Type in the name of a textfile with song titles: "
    read INPUTFILE
    rename_mp3s()
    ;;
*)
    echo "Invalid action. Please type 1, 2, 3 or 4."
    ;;
esac

# sets titles in metadata
#for i in *.mp3; do TITLE="$(echo $i | awk 'BEGIN{FS="-"} {print $3}' | sed 's/.mp3//g')"; id3tag -s "$TITLE" "$i" ; done