diff options
Diffstat (limited to 'dot')
-rwxr-xr-x[-rw-r--r--] | dot/local/bin/musopen | 24 |
1 files changed, 14 insertions, 10 deletions
diff --git a/dot/local/bin/musopen b/dot/local/bin/musopen index 9f3f253..3ed9962 100644..100755 --- a/dot/local/bin/musopen +++ b/dot/local/bin/musopen | |||
@@ -1,16 +1,20 @@ | |||
1 | #!/bin/sh | 1 | #!/bin/sh |
2 | 2 | ||
3 | CAPTURE= | 3 | URL=https://radio.musopen.org/v1/pieces/get_current/streamvbr0 |
4 | JSON=$(curl -s https://musopen.org/radio/next/) | 4 | JSON=$(curl -s "$URL") |
5 | URL_FMT='https://live.musopen.org/music/vbr0/%s' | ||
5 | 6 | ||
6 | for v in url piece piece_url; do | 7 | j() { |
7 | eval $v='$(printf %s "$JSON" | jq -r .'$v')' | 8 | printf %s "$JSON" | jq -r "$@" |
8 | done | 9 | } |
9 | 10 | ||
10 | printf '%s (%s)\n' "$piece" "$piece_url" | 11 | filename=$(j .filename) |
11 | filename=${piece_url%/}.mp3 | 12 | composer=$(j .composer.full_name) |
12 | filename=${filename##*/} | 13 | title=$(j .title) |
13 | 14 | ||
14 | [ "$CAPTURE" ] || filename= | 15 | STREAM_URL=$(printf "$URL_FMT" "$filename") |
15 | 16 | ||
16 | exec mpv "$url" ${filename+ --stream-capture="$filename"} | 17 | CAPTURE_NAME= |
18 | [ "$CAPTURE" ] && CAPTURE_NAME="$composer - $title.${filename##*.}" | ||
19 | |||
20 | exec mpv "$STREAM_URL" ${CAPTURE_NAME+ --stream-capture="$CAPTURE_NAME"} | ||