1
0
Fork 0
dotfiles/files/.local/bin/emp

81 lines
1.4 KiB
Plaintext
Raw Normal View History

2018-03-10 04:04:29 +00:00
#!/bin/bash
#pvid: streamlink wrapper
print_help() {
echo "A streamlink wrapper"
echo ""
echo "Usage: emp [options] url"
echo ""
echo "Options:"
echo " -h, --help Print this help text"
echo " -b, --bg Play the video on the root window"
echo " -a, --audio Play only the audio"
echo ""
exit 0
}
short_args=hba
long_args=help,bg,audio
# default
default_stream="best"
mpv_cmd="mpv"
player_args="--wid="$(xdotool getactivewindow)""
streamlink_args="--retry-stream 30"
# Parse arguments
parsed_args=$(getopt --options $short_args --longoptions $long_args --name "$0" -- "$@")
if [[ $? -ne 0 ]]; then
echo "Failed to parse arguments"
exit 2
fi
eval set -- "$parsed_args"
while true; do
case "$1" in
-h|--help)
print_help
;;
-b|--bg)
a=y
streamlink_args="$streamlink_args --quiet"
mpv_cmd="xwinwrap -ov -fs -- mpv"
player_args="--no-osc --wid WID"
shift
;;
-a|--audio)
a=y
streamlink_args="$streamlink_args --quiet"
player_args="--no-video"
shift
;;
--)
shift
break
;;
*)
#the following args will be passed to streamlink
break
;;
esac
done
if [[ -z "$@" ]]; then
print_help
fi
streamlink \
$streamlink_args \
--default-stream "$default_stream" \
--player="$mpv_cmd" \
--player-args "$player_args -- {filename}" \
$@ &
if [[ -n "$a" ]]; then
cava
fi
wait
exit $?