40 lines
		
	
	
	
		
			663 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			40 lines
		
	
	
	
		
			663 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
| #!/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"
 | 
