Skip to content

Instantly share code, notes, and snippets.

@hubgit
Last active September 12, 2023 23:28
Show Gist options
  • Star 23 You must be signed in to star a gist
  • Fork 5 You must be signed in to fork a gist
  • Save hubgit/6369464 to your computer and use it in GitHub Desktop.
Save hubgit/6369464 to your computer and use it in GitHub Desktop.
Convert a section of a YouTube video to an animated GIF
#!/bin/bash
# brew install x265
# brew install ffmpeg
# brew install youtube-dl
# brew install imagemagick
ID='U65_uY5N2WM' # YouTube video ID, i.e. https://www.youtube.com/watch?v={ID}
# fetch the video file with youtube-dl
# convert it to MP4 (not really needed, but keeps the filename predictable)
if [ ! -f $ID.mp4 ]; then
youtube-dl --output '%(id)s.%(ext)s' --recode-video mp4 $ID
fi
# convert the video file to GIF with ffmpeg
START='00:00:04.000' # start 4 seconds in
LENGTH='00:00:05.000' # end after 5 seconds
SIZE='400x300' # size of the output GIF
ffmpeg -ss $START -i $ID.mp4 -pix_fmt rgb8 -r 10 -s $SIZE -t $LENGTH $ID-unoptimized.gif
# optimize the GIF with imagemagick
convert -layers Optimize $ID-unoptimized.gif $ID.gif
# credits:
# http://www.commandlinefu.com/commands/view/10002/create-an-animated-gif-from-a-youtube-video
# http://superuser.com/a/436109/106809
@betterfuturewe
Copy link

I use Allavsoft to do that. Copy the video url to Allavsoft, check before Automatically Convert to to select GIF from animation option and click Download button.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment