blob: 7d007fbc82bc87d10950b9ab47ba4fd2d8f1548a (
plain)
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
|
#!/bin/sh
usage()
{
cat <<EOF
Usage: $0 [-h|--help] [-n|--no-save] [-s|--save]
EOF
}
DO_SAVE=y
eval set -- "$(getopt -o 'hsn' --long '-help,-save,-no-save' -n 'musopen' -- "$@")" || exit 1
while true; do
case "$1" in
-h|--help) usage; exit ;;
-s|--save) DO_SAVE=y ;;
-n|--no-save) DO_SAVE= ;;
--) shift; break ;;
*) usage; exit 1 ;;
esac
shift
done
URL=https://radio.musopen.org/v1/pieces/get_current/streamvbr0
JSON=$(curl -s "$URL")
URL_FMT='https://live.musopen.org/music/vbr0/%s'
j() {
printf %s "$JSON" | jq -r "$@"
}
filename=$(j .filename)
composer=$(j .composer.full_name)
title=$(j .title)
STREAM_URL=$(printf "$URL_FMT" "$filename")
CAPTURE_NAME="$composer - $title.${filename##*.}"
if [ "$DO_SAVE" -a -e "$CAPTURE_NAME" ]; then
echo "Warning: not saving: file exists: $CAPTURE_NAME" >&2
DO_SAVE=
else
printf '%s: %s - %s\n' "${DO_SAVE+Saving}${DO_SAVE-Playing}" "$composer" "$title" >&2
fi
exec mpv "$STREAM_URL" ${DO_SAVE+ --stream-capture="$CAPTURE_NAME"}
|