#!/usr/bin/env bash set -ex if [ "$1" == "--help" ] || [[ -z "$1" ]] then echo "bitte alles kleinschreiben" echo "bash ./youtube-dl.sh suche/search URL/stichwort FORMAT" echo "Formate: [opus/m4a/video/hd/fullhd/fullhdmp4/4k/FORMAT]" exit 0 fi if [ "$1" == "suche" ] || [ "$1" == "search" ]; then suche="$1" url="$2" format="$3" else url="$1" format="$2" fi if [ "$format" == "opus" ] then format="-f 251" elif [ "$format" == "m4a" ] then format="-f 140" elif [ "$format" == "video" ] then format="-f 43" elif [ "$format" == "hd" ] then format="-f 247+251" elif [ "$format" == "fullhd" ] then format="-f 303+251" elif [ "$format" == "fullhdmp4" ] then format="-f 299+140" elif [ "$format" == "4k" ] then format="-f 315+251" elif [ -n "$format" ]; then format="-f $format" fi video="" if [ "$suche" == "suche" ] || [ "$suche" == "search" ] then if ! youtube-dl "ytsearch:$url" -i -c --socket-timeout 10000 --force-ipv4 --restrict-filenames --no-playlist $format; then echo "Download fehlgeschlagen" exit 1 fi video=$(youtube-dl "ytsearch:$url" -i -c --socket-timeout 10000 --force-ipv4 --restrict-filenames --no-playlist --get-filename $format) else if ! youtube-dl -i -c --socket-timeout 10000 --force-ipv4 --restrict-filenames --no-playlist $format $url; then echo "Download fehlgeschlagen" exit 1 fi video=$(youtube-dl -i -c --socket-timeout 10000 --force-ipv4 --restrict-filenames --no-playlist --get-filename $format $url) fi if [ "${video}" != "" ]; then vlc ${video} else echo "Konnte Video nicht finden" exit 1 fi