81 lines
1.4 KiB
Bash
Executable File
81 lines
1.4 KiB
Bash
Executable File
#!/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 $?
|
|
|