shibao
e77854b6b5
add bashrc ignore xauthority add autounlocking keepass desktop entry add fonts for waybar add alacritty config move scripts location and adjust bashrc use materia theme sway and lockscreen add list packages script add ranger desktop item add mpd config add indicator ring to swaylock remove mpd password add global asdf tool versions add mako config update keys add swaylock theme add suspend to lock config move ssh commands to aliases tweak mpd section in waybar add kanshi config for work update bashrc
47 lines
2.1 KiB
Bash
Executable File
47 lines
2.1 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
# Requires ffmpeg (audio splitting) and my `tag` wrapper script.
|
|
|
|
[ ! -f "$2" ] && printf "The first file should be the audio, the second should be the timecodes.\\n" && exit
|
|
|
|
echo "Enter the album/book title:"; read -r booktitle
|
|
|
|
echo "Enter the artist/author:"; read -r author
|
|
|
|
echo "Enter the publication year:"; read -r year
|
|
|
|
inputaudio="$1"
|
|
|
|
# Get a safe file name from the book.
|
|
#escbook="$(echo "$booktitle" | iconv -cf UTF-8 -t ASCII//TRANSLIT | tr -d '[:punct:]' | tr '[:upper:]' '[:lower:]' | tr ' ' '-' | sed "s/-\+/-/g;s/\(^-\|-\$\)//g")"
|
|
escbook="$(echo "$booktitle" | tr -d '[:punct:]' | tr '[:upper:]' '[:lower:]' | tr ' ' '-' | sed "s/-\+/-/g;s/\(^-\|-\$\)//g")"
|
|
|
|
! mkdir -p "$escbook" && echo "Do you have write access in this directory?" && exit 1
|
|
|
|
# As long as the extension is in the tag script, it'll work.
|
|
ext="opus"
|
|
#ext="${1#*.}"
|
|
|
|
# Get the total number of tracks from the number of lines.
|
|
total="$(wc -l < "$2")"
|
|
|
|
while read -r x;
|
|
do
|
|
end="$(echo "$x" | cut -d' ' -f1)"
|
|
[ -n "$start" ] &&
|
|
echo "From $start to $end; $track $title"
|
|
file="$escbook/$(printf "%.2d" "$track") - $author - $esctitle.$ext"
|
|
[ -n "$start" ] && echo "Splitting \"$title\"..." && ffmpeg -nostdin -y -loglevel -8 -i "$inputaudio" -ss "$start" -to "$end" -vn "$file" &&
|
|
echo "Tagging \"$title\"..." && tag -a "$author" -A "$booktitle" -t "$title" -n "$track" -N "$total" -d "$year" "$file"
|
|
title="$(echo "$x" | cut -d' ' -f 2-)"
|
|
# esctitle="$(echo "$title" | iconv -cf UTF-8 -t ASCII//TRANSLIT | tr -d '[:punct:]' | tr '[:upper:]' '[:lower:]' | tr ' ' '-' | sed "s/-\+/-/g;s/\(^-\|-\$\)//g")"
|
|
esctitle="$(echo "$title" | tr -d '[:punct:]' | tr '[:upper:]' '[:lower:]' | tr ' ' '-' | sed "s/-\+/-/g;s/\(^-\|-\$\)//g")"
|
|
track="$((track+1))"
|
|
start="$end"
|
|
done < "$2"
|
|
# The last track must be done outside the loop.
|
|
echo "From $start to the end: $title"
|
|
file="$escbook/$track - $author - $esctitle.$ext"
|
|
echo "Splitting \"$title\"..." && ffmpeg -nostdin -y -loglevel -8 -i "$inputaudio" -ss "$start" -vn "$file" &&
|
|
echo "Tagging \"$title\"..." && tag -a "$author" -A "$booktitle" -t "$title" -n "$track" -N "$total" -d "$year" "$file"
|