--this is an applescript for generating animated gifs from a series of screenshots automatically snapped through safari of the google autocomplete for a search. Some examples: Social Media is

--needs gifsicle http://www.lcdf.org/gifsicle/

set thetext to text returned of (display dialog "What do you want to autocomplete?" default answer "I hate")

set theFileName to change_case_of(thetext, "lower") & ".gif"

set tempdir to POSIX path of (path to temporary items from user domain) & "autogifs/"


do shell script "mkdir " & tempdir

end try

set alphabet to {"a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"}

set vowels to "aeiou"

tell application "Safari"


tell application "System Events"

tell process "Safari"

click menu item "New Window" of menu "File" of menu bar 1

end tell

end tell

set the URL of the front document to "http://google.co.uk"

delay 5

tell application "System Events"

keystroke thetext

end tell

repeat with letter in alphabet

set typing to " " & letter

set tfile to tempdir & letter & ".gif"

tell application "System Events"

keystroke typing

delay 1

do shell script "screencapture  -t GIF " & tfile

keystroke (ASCII character 8)

keystroke (ASCII character 8)

end tell

end repeat

end tell

do shell script "/usr/local/bin/gifsicle --delay 90 --colors 128 --loopcount --crop 0,100+800x160 " & tempdir & "* > ~/Desktop/" & theFileName


--clean up

do shell script "rm -rf " & tempdir

--do shell script "open " & tempdir

on change_case_of(this_text, this_case)

if this_case is "lower" then

set the comparison_string to "ABCDEFGHIJKLMNOPQRSTUVWXYZ "

set the source_string to "abcdefghijklmnopqrstuvwxyz_"


set the comparison_string to "abcdefghijklmnopqrstuvwxyz"

set the source_string to "ABCDEFGHIJKLMNOPQRSTUVWXYZ"

end if

set the new_text to ""

repeat with thisChar in this_text

set x to the offset of thisChar in the comparison_string

if x is not 0 then

set the new_text to (the new_text & character x of the source_string) as string


set the new_text to (the new_text & thisChar) as string

end if

end repeat

return the new_text

end change_case_of