nixos-config/.local/scripts/dl-chapters

24 lines
701 B
Bash
Executable File

#!/usr/bin/env bash
set -euo 'pipefail'
die() {
echo "$@" 1>&2
exit 1
}
data="$(yt-dlp -j "$1")"
dir="$HOME/Music/$(echo "$data" | jq -r '.title' | sed 's;/; ;g')"
id="$(echo "$data" | jq -r '.id')"
[ -z "$dir" ] && exit 1
[ -z "$id" ] && exit 1
echo "id: '$id'"
mkdir -p "$dir"
cd "$dir" || exit 1
yt-dlp -x --split-chapters "$1" || die "yt-dlp exited with an error code"
title="$(basename "$(find ./ -name "* \[$id\]*" | sort -r | head -n1 | sed "s; \[$id\].*;;")")"
[ -z "$title" ] && die "Could not get title"
find ./ -name "$title \[$id\]*" -exec rm {} \;
find ./ -name "$title - *" | while read file; do
mv "$file" "$(echo "$file" | sed "s;$title - ;;" | sed "s; \[$id\];;")"
done