As of book version 1.2.1, all screencasts were moved to YouTube.  For convenience, this page lists both the Vimeo and YouTube IDs of all the screencasts. Prepend to the Vimeo ID or to the YouTube ID to get the full URL.

There is a YouTube Playlist containing all the screencasts.

Screencast number, section, name YouTube ID ( Vimeo ID (
2.1.1: Getting Started UlvFUDNc6_s 34754478
2.2.1: Cookies Xlt7xeqVfO4 33918630
2.3.1: HTML Introduction wy6O5hAjKAo 34754506
2.3.2: Inspecting the ID and Class attributes X5ArSbUea_o 34754568
2.3.3: Introduction to CSS E5ZVorHn_fs 34754607
2.7.1: Create and Update each require two interactions xeUvmC5rKzQ 34754622
2.8.1: Interpolation into views using Haml yX1tMdBuG3g 34754654
4.4.1: The Application layout O3G2DNeyoBc 34754667
4.6.1: Views with fill-in forms 2tvI8tPyy9c 34754683
4.7.1: The Create action SJ2wnTxPXC4 34754699
5.1.1: How model validations interact with controllers and views pmWiixX6Htc
5.2.1: Logging into RottenPotatoes with Twitter R3S3efTtwmI 41300070
6.1.1: Adding JavaScript features to RottenPotatoes fFe_tdWil2E 45331300
6.4.1: Manipulating the DOM with jQuery kwdYHc5M0Ac 46694004
6.6.1: Interactively single-stepping through AJAX pPS0Vvg9g8k 47064979
7.7.1: Cucumber Part I -wgZXDmhRw4 34754747
7.8.1: Cucumber Part II wornoChkjfM 34754766
8.1.1: Using the TMDb API xT_vP6d6toA 83460540
8.1.2: Simplified use of the TMDb API with the themoviedb gem W7CFYxJD-vU 84683958
8.2.1: Executing the empty test skeletons and automating execution with guard vAtljj42shY 34754856
8.3.1: Developing the first example requires adding an empty controller method and creating an empty view rCavWk5qzVw 34754876
8.7.1: Using SimpleCov to check C0 coverage hjROn8Ebuoc 34754907
9.3.1: Creating characterization specs for TimeSetter 8QwvqtMp5QM 47043669
10.5.1: Using Branches with Git -z3HHxITqqg 41257323
A.7.0: Basic Git flow for a single developer rhvrUTP4s2c 34754947