41 lines
663 B
Plaintext
41 lines
663 B
Plaintext
|
#!/bin/sh
|
||
|
set -e
|
||
|
|
||
|
cdtemp() {
|
||
|
dir="$(mktemp --directory --tmpdir open.XXXXXXXX)"
|
||
|
echo "$dir"
|
||
|
cd "$dir"
|
||
|
}
|
||
|
|
||
|
extract() {
|
||
|
echo "$2" | sed "s/$1/\1/"
|
||
|
}
|
||
|
|
||
|
invideous() {
|
||
|
cdtemp
|
||
|
youtube-dl "https://invidio.us/watch?v=$1"
|
||
|
exec mpv *
|
||
|
}
|
||
|
|
||
|
download() {
|
||
|
cdtemp
|
||
|
wget "$1"
|
||
|
caseit *
|
||
|
}
|
||
|
|
||
|
caseit() {
|
||
|
case "$1" in
|
||
|
https://*youtube.com/*) invideous "$(extract '.*v=\([A-Za-z-]*\)' "$1")" ;;
|
||
|
https://youtu.be/*) invideous "$(extract '.*\/\([A-Za-z-]*\)' "$1")" ;;
|
||
|
https://invidio.us/*) invideous "$(extract '.*v=\([A-Za-z-]*\)' "$1")" ;;
|
||
|
http*) download "$1" ;;
|
||
|
esac
|
||
|
|
||
|
case "$(file -b --mime-type "$1")" in
|
||
|
image/*) feh "$1" ;;
|
||
|
video/*) mpv "$1" ;;
|
||
|
esac
|
||
|
}
|
||
|
|
||
|
caseit "$1"
|