Castanaut: Ruby-powered OS X Screencasting DSL
Castanaut is a Ruby-backed screencasting domain-specific language that allows you to script screencasts in code. When these scripts are run, Castanaut takes control of your Mac and produces the desired effect. It's simply automated, scripted screencasting.
The Origin
Two weeks ago I was reading a post on 37signals' blog about producing screencasts. Joseph Pearson's comment got me all excited:
At Inventive Labs, we’re experimenting with scripted screencasts. That is, you run a script, and at the end of it you have a screencast.
For example, this movie was generated by this Ruby script. No human was involved at all.
Obviously we would replace the text-to-speech narrative with a real voice actor for any screencast we put out, not least because the robot suffers from the Uncanny Valley effect. But it does ensure that timing is right.
I e-mailed Joseph and gave his system a try. It's now publicly available under the superb WTFPL license.
Why?
One of the common problems with screencasts is that they take a long time to produce, and this often means they fail to get updated when situations change (new versions of products, updated interfaces, etc.) With Castanaut, you could script your screencasts and rapidly reproduce them each time your software has a major update. If the changes are just at the interface level, you could even reproduce the video, paste the old voice / sound track over the top, and you'd be done.
As an aside, if you're more interested in producing screencasts the "old fashioned" way, I can heartily recommend Geoffrey Grosenbach's "Screencasting On The Mac" video. It costs $9 but you get a lot of information for your money. PeepCode is a sponsor of Ruby Inside but I am recommending this separately to that. I watched it last week and took away a lot of useful information, although now I'm being tempted by Castanaut instead ;-)
February 25, 2008 at 12:29 pm
Very cool idea indeed
February 25, 2008 at 12:35 pm
that is pretty rad.
February 25, 2008 at 1:05 pm
On the surface I want to say it seems cool. But as someone who actually creates screencasts, it seems a bit complex, and I would never use this. Feels like it takes the "art" aspect out of it.
February 25, 2008 at 1:34 pm
so, how long until this is extended for functional testing?
February 25, 2008 at 6:55 pm
A byproduct of this is that it would be very easy to generate transcripts and close-captioning
February 25, 2008 at 7:05 pm
That's a good point, Josh. You could display the voiceover on the screen, then just speak it out loud, and have iShowU or whatever capture program is running capture your voice from the microphone.. bam, all done.
February 25, 2008 at 10:23 pm
Yeah, I was thinking a Growl plugin would be one way to do that. An alternative is to extend the Mousepose plugin to use the "display keystrokes" effect.
February 26, 2008 at 6:28 am
Very nice, especially after ripping out the Mousepose stuff. Boinx... I've never seen a more naggy, bullsh*t, piece of crap shareware. Put your free trial for 14 days or whatever and then leave your damn users alone.
But.. off subject. This gem rocks. The code for screencasts is very pleasant to write and works nicely.
Great job!
February 27, 2008 at 1:53 pm
I think this is a terrible idea. I find screencasts very usefull and it is the spoken narrative and the clicks, and the pauses and the mistakes that makes the screencast effective at communicating stuff. to script it so its perfect and do that horrible generated voice. I think this misses the whole point of a screencast which is to connect the recorder (a person) and the watcher (another person).