mirror of
https://github.com/LukeSmithxyz/voidrice.git
synced 2026-01-30 09:48:11 +01:00
* Fix tag script mp3 issue When you don't manually specify $total and $date with an mp3 file the eyeD3 command tries tagging with an empty variable, which causes it to error. This fixes it by only passing the parameter to the command if the variable is set. This pull request also adds support for the $genre and $comment variable. * Remove double backslash
72 lines
1.7 KiB
Bash
Executable File
72 lines
1.7 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
err() { echo "Usage:
|
|
tag [OPTIONS] file
|
|
Options:
|
|
-a: artist/author
|
|
-t: song/chapter title
|
|
-A: album/book title
|
|
-n: track/chapter number
|
|
-N: total number of tracks/chapters
|
|
-d: year of publication
|
|
-g: genre
|
|
-c: comment
|
|
You will be prompted for title, artist, album and track if not given." && exit 1 ;}
|
|
|
|
while getopts "a:t:A:n:N:d:g:c:f:" o; do case "${o}" in
|
|
a) artist="${OPTARG}" ;;
|
|
t) title="${OPTARG}" ;;
|
|
A) album="${OPTARG}" ;;
|
|
n) track="${OPTARG}" ;;
|
|
N) total="${OPTARG}" ;;
|
|
d) date="${OPTARG}" ;;
|
|
g) genre="${OPTARG}" ;;
|
|
c) comment="${OPTARG}" ;;
|
|
f) file="${OPTARG}" ;;
|
|
*) printf "Invalid option: -%s\\n" "$OPTARG" && err ;;
|
|
esac done
|
|
|
|
shift $((OPTIND - 1))
|
|
|
|
file="$1"
|
|
|
|
[ ! -f "$file" ] && echo "Provide file to tag." && err
|
|
|
|
[ -z "$title" ] && echo "Enter a title." && read -r title
|
|
[ -z "$artist" ] && echo "Enter an artist." && read -r artist
|
|
[ -z "$album" ] && echo "Enter an album." && read -r album
|
|
[ -z "$track" ] && echo "Enter a track number." && read -r track
|
|
|
|
case "$file" in
|
|
*.ogg) echo "Title=$title
|
|
Artist=$artist
|
|
Album=$album
|
|
Track=$track
|
|
Total=$total
|
|
Date=$date
|
|
Genre=$genre
|
|
Comment=$comment" | vorbiscomment -w "$file" ;;
|
|
*.opus) echo "Title=$title
|
|
Artist=$artist
|
|
Album=$album
|
|
Track=$track
|
|
Total=$total
|
|
Date=$date
|
|
Genre=$genre
|
|
Comment=$comment" | opustags -i -S "$file" ;;
|
|
*.mp3) eyeD3 -Q --remove-all -a "$artist" -t "$title" -A "$album" -n "$track" \
|
|
${total:+-N "$total"} \
|
|
${date:+-Y "$date"} \
|
|
${genre:+-G "$genre"} \
|
|
${comment:+-c "$comment"} "$file" ;;
|
|
*.flac) echo "TITLE=$title
|
|
ARTIST=$artist
|
|
ALBUM=$album
|
|
TRACKNUMBER=$track
|
|
TOTALTRACKS=$total
|
|
DATE=$date
|
|
GENRE=$genre
|
|
DESCRIPTION=$comment" | metaflac --remove-all-tags --import-tags-from=- "$file" ;;
|
|
*) echo "File type not implemented yet." ;;
|
|
esac
|