dots/scripts/fzf-player

33 lines
1.4 KiB
Bash
Executable file

#!/usr/bin/env bash
# ╭──────────────────────────────────────────────────────────╮
# │ Music Streams │
# ╰──────────────────────────────────────────────────────────╯
# ────────────────────────────────────────────────────────────
# Saved streams
declare -A streams
streams[lofi]="https://youtu.be/jfKfPfyJRdk"
streams[nintendo]="https://www.youtube.com/c/Henriko/live"
streams[synthwave]="https://www.youtube.com/live/4xDzrJKXOOY?si=3WUrIe4TWLO-fw9m"
# ────────────────────────────────────────────────────────────
# play passed url if provided
url="$1"
shift
# defaults to celluloid, fallback to mpv
if command -v celluloid &>/dev/null; then
player="celluloid --mpv-profile=low-latency,music-stream"
else
player="mpv --player-operation-mode=pseudo-gui --profile=low-latency,music-stream"
fi
if [[ -z "$url" ]]; then
url="$(printf "%s\n" "${!streams[@]}" | fzf)"
url="${streams[$url]}"
fi
$player "$url" &>/dev/null &