Castanaut

Automate your screencasts

 

Castanaut lets you write executable scripts for your screencasts. With a simple dictionary of stage directions, you can create complex interactions with a variety of applications.

Here's a screencast (of Tabulate) generated by Castanaut.


This is the Castanaut "screenplay" that produced it:

#!/usr/bin/env castanaut

plugin "safari"
plugin "mousepose"
plugin "ishowu"

launch "Mousepose"

launch "Safari", at(20, 40, 1024, 768)
url "http://gadgets.inventivelabs.com.au"

ishowu_set_region at(4, 24, 1056, 800)
ishowu_start_recording

while_saying "
  Tabulate is a bookmarklet developed by Inventive Labs. 
  You use it to open links on a web page. 
  It's meant for iPhones, but we'll demonstrate it in Safari 3.
" do
  move to(240, 72)
  tripleclick
  type "http://gadgets.inventivelabs.com.au/tabulate"
  hit Enter
  pause 2
end

while_saying "To install it, drag it to your bookmarks bar." do
  move to_element("a.button")
  drag to(88, 106)
  pause 0.5
  hit Enter
end

while_saying "Let's try it out on delicious." do
  url "http://del.icio.us"
  pause 2
end

while_saying "Simply invoke the bookmark..." do
  highlight
  pause 1
  click
  pause 0.5
end

while_saying "
  The status box appears, indicating that Tabulate is active.
" do
  move to_element("body", :area => ["top", "left"]), offset(30, 30)
end

dim

while_saying "If you see a link that interests you, tap it." do
  move to_element("h4 a", :area => ["top", "left"])
  click
end

pause 1

highlight do
  while_saying "
    You would tap the blue circle to open the link in this tab.
  " do
    move to_element("#_tabulate_box img", :index => 1)
  end

  while_saying "Tap the green circle to open in a new tab." do
    move to_element("#_tabulate_box img", :index => 2)
  end

  while_saying "
    Most people use Tabulate to flag links for opening later. 
    This is what the orange circle does.
  " do
    pause 1.5
    move to_element("#_tabulate_box img", :index => 3)
    pause 1
    click
  end
end

while_saying "Let's flag the next two links as well." do
  i = 1
  while (i <= 2)
    move to_element("h4", :area => ["top", "left"], :index => i)
    click
    move to_element("#_tabulate_box img", :index => 3)
    click
    i += 1
  end
end


while_saying "
  On the iPhone, we would open these three links simultaneously 
  by tapping on the status box.
" do
  highlight do
    move to_element("body", :area => ["top","left"]), offset(30,30)
  end
end

pause 1

say "That's all. Thanks for watching!"


You can install Castanaut and find out how to use it in the sidebar. Castanaut is made available under the WTFPL license.

About the robot voice: no, we don‘t recommend you use Alex the robot in real screencasts for a large audience. Most people find him a little offputting. He's great for preparing the screencasts however, because he lets you pace the movie to an eventual human narrative. You simply re-soundtrack the movie with real voice actors before publishing it. Of course, you are also free to contravene our recommendation. You can tweak the robot in the Mac OS X Speech Preferences pane.