Download screencasts from Destroy All Software catalog
Ruby
Switch branches/tags
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
bin
lib
spec
.gitignore
CHANGELOG.md
Gemfile
LICENSE Fix license text width. Dec 17, 2011
README.md
Rakefile Added UUID to ScreencastData, fixes gh-1 Dec 19, 2011
das_catalog.gemspec Brush up FeedZirra rip, bump to 0.2.1 Mar 2, 2012

README.md

Das Catalog

The Das Catalog gem - used for downloading screencasts from the Destroy All Software screencasts catalog. Uses the rss feed plus Mechanize to log you in and then download unsaved movies to a local directory.

This gem is in not linked to Destroy All Software or endorsed by Gary Bernhardt. I just like his stuff.

Requirements

I've written and only run the gem on Ruby 1.9.2. YMMV, but 1.8.x will definitely blow up.

The gem also expects that wget exists in your path, as it uses it for downloaded the movie file.

Installation

Install the gem

$ gem install das_catalog

Usage

Run from the command line:

$ das_catalog_sync

It will prompt your for some settings (username, password, storage directory) and then be off and running.

Stored Configuration

If you don't provide configuration, das_catalog_sync will prompt you for configuration values when you run it.

However, you can persist a full or partial config in ~/.das_catalog.yml as such:

---
username: your_username
password: your_password
downloads_directory: /Users/programmer/Movies/DAS

If you wish to exclude any config, leave it out and das_catalog_sync will prompt your for it at runtime.

Basic Process

The steps by which the gem works are fairly simple:

  1. Fetch the rss feed to see what is in the catalog
  2. Use Mechanize to log in at the DAS sign in page
  3. Find links in the feed that have not been downloaded yet
  4. Construct a download link, and grab the location header from the redirect (the movie on S3)
  5. Offload the download to wget for efficient processing

TODO

  • Finish missing spec coverage (mostly in DasCatalog toplevel namespace)
  • Hook up Aruba for bin testing
  • Switch bin to GLI?
  • CLI interface for tracking if you've watched a specific screencast
  • Make missing directory automatically
  • better wget detection/warnings
  • Lighten some dependencies (feed fetching, highline, etc)
  • Better cli access to modify the underlying pstore