Files
repos_scripts/youtube
2021-08-27 19:13:23 +05:30

56 lines
1.3 KiB
Bash
Executable File

#!/bin/sh
# script for downloading youtube videos and split it into pieces..
# defining shell colors for distinction
c_red="\033[1;31m"
c_green="\033[1;32m"
c_yellow="\033[1;33m"
c_blue="\033[1;34m"
c_magenta="\033[1;35m"
c_cyan="\033[1;36m"
c_reset="\033[0m"
#function to download full video
full_video()
{
video=$1
youtube-dl -f best "$video"
}
# function to download part of a video and also split it for SNS...
part_video()
{
video=$1
printf "${c_magenta}Enter Starting Point(hh:mm:ss)or(mm:ss)${c_reset}:"
read start
printf "${c_yellow}Enter Upto Seconds:${c_cyan}"
read dur
printf "Do you want to split video for SNS?? (y or n) :"
read x
if [ $x == 'n' ]; then
ffmpeg -i $(youtube-dl -f best --get-url "$video") -ss $start -t $dur $HOME/Videos/$(date +%T_%F).mp4
else
out=$(date +%T_%F)
ffmpeg -i $(youtube-dl -f best --get-url "$video") -map 0 -codec copy -f segment -segment_time 30 -ss $start -t $dur $HOME/Videos/${out}_%03d.mp4
fi
}
#program starts from here..
printf "${c_blue}Input Youtube link :${c_magenta}"
read x
printf "${c_yellow}Download>>\n${c_green}[f]Full video\n${c_cyan}[p]Part of video\n${c_red}[q]Quit"
printf "\n${c_reset}Enter choice:${c_green}"
read choice
case $choice in
f)
full_video "$x";;
p)
part_video "$x";;
q)
break;;
esac