Skip to content

Instantly share code, notes, and snippets.

@r0lodex
Created November 18, 2019 15:29
Show Gist options
  • Save r0lodex/5f0d8709629e45f975fdb351ec599f4f to your computer and use it in GitHub Desktop.
Save r0lodex/5f0d8709629e45f975fdb351ec599f4f to your computer and use it in GitHub Desktop.
Extract Audio (start, end) Based on File
# Example video.txt — The script will use pipe | as it's delimiter
# https://www.youtube.com/watch?v=iUDURCrvrMI|00:02:02|00:03:41|1
# URL | START | END | Filename
# You'll need:
# - youtube-dl brew install youtube-dl
# - ffmpeg brew install ffmpeg
for i in $(<video.txt);
do
URL=`echo $i | cut -d "|" -f 1`;
START=`echo $i | cut -d "|" -f 2`;
END=`echo $i | cut -d "|" -f 3`;
FILE=`echo $i | cut -d "|" -f 4`;
SEC1=`echo $START | sed 's/^/((/; s/:/)*60+/g' | bc`
SEC2=`echo $END | sed 's/^/((/; s/:/)*60+/g' | bc`
DIFFSEC=`expr ${SEC2} - ${SEC1}`
ffmpeg $(youtube-dl -g $URL | sed "s/.*/-ss $START -i &/") -t $DIFFSEC -c copy $FILE".mkv";
ffmpeg -i $FILE".mkv" -f mp3 -ab 192000 -vn $FILE".mp3";
rm $FILE".mkv";
done;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment