|
| 1 | +#!/bin/sh |
| 2 | +# LUD - The LARBS Universal Downloader |
| 3 | +# A dmenu utility to download files from various sites & types |
| 4 | +# Created by Daniel Crooks - github.com/inVariabl |
| 5 | +### MINIMALIST VERSION ### |
| 6 | + |
| 7 | +pgrep -x dmenu && exit |
| 8 | + |
| 9 | +# Get Link |
| 10 | +if [[ "$1" = "" ]]; then |
| 11 | + if command -v xclip > /dev/null; then # OPT |
| 12 | + link=$(xclip -o) |
| 13 | + elif command -v xsel > /dev/null; then |
| 14 | + link=$(xsel -o -b) |
| 15 | + else |
| 16 | + echo "Neither 'xclip' or 'xsel' not installed" |
| 17 | + fi |
| 18 | +else |
| 19 | + link="$1" |
| 20 | +fi |
| 21 | +[[ "$link" = "" ]] && exit 1 |
| 22 | +echo "Link: $link" |
| 23 | + |
| 24 | +# Get Directory |
| 25 | +if [[ $2 = "" ]]; then |
| 26 | + # Add your own directories below |
| 27 | + dirlist=$(sudo find ~/Videos ~/Pictures ~/Downloads -type d -maxdepth 8 2>/dev/null) |
| 28 | + dir=$(echo "$dirlist" | dmenu -i -p "Download to:" -l 10) |
| 29 | + [[ "$dir" = "" ]] && exit 1 |
| 30 | + if [[ ! -d "$dir" ]]; then |
| 31 | + mkdiryn=$(printf "No\\nYes" | dmenu -i -p "$dir does not exist. Create it?") |
| 32 | + [[ "$mkdiryn" = "Yes" ]] && (mkdir -p "$dir" || sudo -A mkdir -p "$dir") |
| 33 | + fi |
| 34 | +else |
| 35 | + dir=$2 |
| 36 | +fi |
| 37 | + |
| 38 | +[[ "$dir" = "" ]] && exit 1 |
| 39 | +echo "Directory: $dir" # OPT |
| 40 | +cd "$dir" |
| 41 | + |
| 42 | +# Writes to log file |
| 43 | +echo -e "$link"'\t'"$dir"'\t''#'`date` >> ~/.lud_history |
| 44 | + |
| 45 | +# Sort & Download |
| 46 | +# Youtube-DL |
| 47 | +yttest=$(youtube-dl -e --abort-on-error "$link") |
| 48 | +if [[ $? -eq 0 ]]; then |
| 49 | + echo "Downloader: Youtube-dl" |
| 50 | + type=$(echo -e "Video\nAudio" | dmenu -i -p "Download Type:") |
| 51 | + if [[ $type == "Video" ]]; then |
| 52 | + echo "Downloading Video" |
| 53 | + sudo youtube-dl -ic --add-metadata "$link" --abort-on-error --external-downloader aria2c --external-downloader-args "-x 16 -s 16 -k 1M" |
| 54 | + break |
| 55 | + elif [[ $type == "Audio" ]]; then |
| 56 | + echo "Downloading Audio" |
| 57 | + sudo youtube-dl -xic --add-metadata "$link" --abort-on-error --external-downloader aria2c --external-downloader-args "-x 16 -s 16 -k 1M" |
| 58 | + break |
| 59 | + fi |
| 60 | +else |
| 61 | + echo "Downloader: Aria2c" |
| 62 | + if command -v aria2c > /dev/null; then |
| 63 | + sudo aria2c "$link" -x 16 -s 16 -k 1M -m 5 |
| 64 | + break |
| 65 | + fi |
| 66 | +fi |
| 67 | + |
| 68 | +note "'$link' to '$dir'" -t 2000 |
| 69 | +exit 1 |
0 commit comments