Files
bandcamp_scripts/bandcamp_album_length

23 lines
596 B
Bash
Executable File

#!/usr/bin/bash
if [[ -z $1 ]]; then
url=$(xclip -selection c -o)
>&2 echo "Reading url from clipboard: ${url}"
else
url=$1
fi
if ! grep -qF 'bandcamp.com/album' <<<"$url"; then
>&2 echo "Input does not look like a bandcamp album URL"
exit 1
fi
track_durations=$(curl "$url" 2>/dev/null | tr -d '\n' | tr -s ' ' | grep -oE 'time secondaryText"> [0-9]+:[0-9]+' | cut -d' ' -f3)
total_seconds=$( { printf '('; cut -d: -f1 <<<"$track_durations" | paste -d+ -s | tr -d '\n'; printf ') * 60 +'; cut -d: -f2 <<<"$track_durations" | paste -d+ -s; } | bc )
date -u -d @${total_seconds} +%T