(^ Ω ^) Youtube video is here, right?
https://www.youtube.com/watch?v=h3jFRvXFwWA)
Do this ... ( ^ω^) ≡⊃⊂≡
This way
( ^ω^)
--Download youtube on pytube --Use ffmpeg to convert video to image frame by frame --Use ImageMagick's composite command to overlay LGTM on the converted image --Animated images using ImageMagick's convert command --Recolored GIF animation to reduce size --Upload to lgtm.in
Python library for youtube
$ pip install pytube
Run according to Usage Example
$ python
Python 2.7.6 (default, Apr 9 2014, 11:54:50)
[GCC 4.2.1 Compatible Apple LLVM 4.2 (clang-425.0.28)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> from pytube import YouTube
>>> yt = YouTube()
>>> yt.url = "https://www.youtube.com/watch?v=h3jFRvXFwWA"
>>> from pprint import pprint
#Get video information
>>> pprint(yt.videos)
[<Video: MPEG-4 Visual (.3gp) - 144p>,
<Video: MPEG-4 Visual (.3gp) - 240p>,
<Video: Sorenson H.263 (.flv) - 240p>,
<Video: H.264 (.mp4) - 360p>,
<Video: H.264 (.mp4) - 720p>,
<Video: VP8 (.webm) - 360p>]
#download
>>> video = yt.get('mp4', '720p')
>>> video.download('/tmp')
Downloading: 'The flirting of the seal and the keeper's uncle was too cute.mp4' (Bytes: 2862856)
ll /tmp
-rw-r--r-- 1 kasei_san wheel 2862856 7 20 15:04 The seal and the keeper's uncle were too cute.mp4
Downloaded
$ brew install ffmpeg
$ mkdir pngs
$ ffmpeg -i 01.mp4 -an -r 10 -vf crop=406:406:0:157 pngs/%04d.png
-i: Specify input file -an: No audio output -r: Frame rate (how many frames are extracted per second) -vf crop: Trimming output result (output size x: y: trimming start position x: y) -s: Resize (output size): 640x480 etc.
The original video is vertically long, so I trimmed it
A large number of images are generated in the pngs / directory
$ brew install imagemagick
Prepare a transparent png image
Extract some images, not all videos
$ for i in {0200..0220}; do; composite -gravity center -compose over lgtm.png pngs/${i}.png
$ tmp/${i}.png; done
$ convert -delay 10 -layers optimize tmp/*.png lgtm.gif
-delay x: Display one image for x seconds for 100 minutes -layers optimize: should optimize the image size
$ convert lgtm.gif -coalesce -colors 50 lgtm_color50.gif
$ convert lgtm.gif -coalesce -colors 25 lgtm_color25.gif
ll -h lgtm*.gif
-rw-r--r-- 1 kasei_san wheel 1.7M 7 20 15:39 lgtm.gif
-rw-r--r-- 1 kasei_san wheel 1.0M 7 20 15:42 lgtm_color25.gif
-rw-r--r-- 1 kasei_san wheel 1.3M 7 20 15:42 lgtm_color50.gif
Unprocessed
50 colors
25 colors
I think it's better to reduce the color appropriately like the original video
You need to publish it somewhere in order to upload it Since tumblr is easy, upload it once and then submit it.
TODO
I want to write a script that does it all at once
-[Unknown modern magic ffmpeg options](http://yosilove.blog.shinobi.jp/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3% 83% A0 / ffmpeg% E3% 81% AE% E3% 82% AA% E3% 83% 97% E3% 82% B7% E3% 83% A7% E3% 83% B3) -Animated GIF conversion of video with ffmpeg and ImageMagick -Automatically search and download YouTube videos with Python --Qiita