Last active
December 9, 2022 03:49
-
-
Save samqiu/1472142 to your computer and use it in GitHub Desktop.
Download free Railscast video
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/ruby | |
require 'rss' | |
# Usage | |
# $ ./railscasts.rb http://railscasts.com/subscriptions/YOURRAILSCASTRSS/\/ | |
# episodes.rss | |
# OR | |
# $ ./railscasts.rb | |
p 'Downloading rss index' | |
rss_url = ARGV.first ? ARGV.first : 'http://feeds.feedburner.com/railscasts' | |
rss_string = open(rss_url).read | |
rss = RSS::Parser.parse(rss_string, false) | |
videos_urls = rss.items.map { |it| it.enclosure.url }.reverse | |
videos_filenames = videos_urls.map { |url| url.split('/').last } | |
existing_filenames = Dir.glob('*.mov') | |
missing_filenames = videos_filenames - existing_filenames | |
p "Downloading #{missing_filenames.size} missing videos" | |
missing_videos_urls = videos_urls.select { |video_url| | |
missing_filenames.any? { |filename| video_url.match filename } | |
} | |
missing_videos_urls.each do |video_url| | |
filename = video_url.split('/').last | |
next if File.exists? filename | |
p filename | |
p %x(wget #{video_url} -O #{filename}.tmp ) | |
p %x(mv #{filename}.tmp #{filename} ) | |
end | |
p 'Finished synchronization' |
It's so good!
nice .
Thanks this helps :)
Thanks man its really a great help to us. . . .!! keep the good work like this :)
I modified this to make it work on Windows:
Great stuff! :P
Thanks a bunch!
Can you even download the pro episodes? Wonder what @ryanb thinks of this
@thoughtpunch No, is only download free episdoes.
But, now you can use your own PRO subscription RSS URL for downloading.
Thanx a lot For this!!!
Thanks a lot!
thanks a lot @samqiu , for those who wants to download the PRO EPISODES you can find them all from this torrent https://kickass.so/railscasts-pro-episodes-16-417-t8650471.html .. enjoy 😃
thanks a lot
thank you very much it's will be very helpful for us..
Awesome :)
thanks alot
thanks a zillion
this is good! Thanks a million
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
http://media.railscasts.com/assets/episodes/videos/001-caching-with-instance-variables.mp4
http://media.railscasts.com/assets/episodes/videos/002-dynamic-find-by-methods.mp4
http://media.railscasts.com/assets/episodes/videos/003-find-through-association.mp4
http://media.railscasts.com/assets/episodes/videos/004-move-find-into-model.mp4
http://media.railscasts.com/assets/episodes/videos/005-using-with-scope.mp4
http://media.railscasts.com/assets/episodes/videos/006-shortcut-blocks-with-symbol-to-proc.mp4
http://media.railscasts.com/assets/episodes/videos/007-all-about-layouts.mp4
http://media.railscasts.com/assets/episodes/videos/008-layouts-and-content-for.mp4
http://media.railscasts.com/assets/episodes/videos/009-filtering-sensitive-logs.mp4
http://media.railscasts.com/assets/episodes/videos/010-refactoring-user-name-part-1.mp4
http://media.railscasts.com/assets/episodes/videos/011-refactoring-user-name-part-2.mp4
http://media.railscasts.com/assets/episodes/videos/012-refactoring-user-name-part-3.mp4
http://media.railscasts.com/assets/episodes/videos/013-dangers-of-model-in-session.mp4
http://media.railscasts.com/assets/episodes/videos/014-performing-calculations-on-models.mp4
http://media.railscasts.com/assets/episodes/videos/015-fun-with-find-conditions.mp4
http://media.railscasts.com/assets/episodes/videos/016-virtual-attributes.mp4
http://media.railscasts.com/assets/episodes/videos/017-habtm-checkboxes.mp4
http://media.railscasts.com/assets/episodes/videos/018-looping-through-flash.mp4
http://media.railscasts.com/assets/episodes/videos/019-where-administration-goes.mp4
http://media.railscasts.com/assets/episodes/videos/020-restricting-access.mp4
http://media.railscasts.com/assets/episodes/videos/021-super-simple-authentication.mp4
http://media.railscasts.com/assets/episodes/videos/022-eager-loading.mp4
http://media.railscasts.com/assets/episodes/videos/023-counter-cache-column.mp4
http://media.railscasts.com/assets/episodes/videos/024-the-stack-trace.mp4
http://media.railscasts.com/assets/episodes/videos/025-sql-injection.mp4
http://media.railscasts.com/assets/episodes/videos/026-hackers-love-mass-assignment.mp4
http://media.railscasts.com/assets/episodes/videos/027-cross-site-scripting.mp4
http://media.railscasts.com/assets/episodes/videos/028-in-groups-of.mp4
http://media.railscasts.com/assets/episodes/videos/029-group-by-month.mp4
http://media.railscasts.com/assets/episodes/videos/030-pretty-page-title.mp4
http://media.railscasts.com/assets/episodes/videos/031-formatting-time.mp4
http://media.railscasts.com/assets/episodes/videos/032-time-in-text-field.mp4
http://media.railscasts.com/assets/episodes/videos/033-making-a-plugin.mp4
http://media.railscasts.com/assets/episodes/videos/034-named-routes.mp4
http://media.railscasts.com/assets/episodes/videos/035-custom-rest-actions.mp4
http://media.railscasts.com/assets/episodes/videos/036-subversion-on-rails.mp4
http://media.railscasts.com/assets/episodes/videos/037-simple-search-form.mp4
http://media.railscasts.com/assets/episodes/videos/038-multibutton-form.mp4
http://media.railscasts.com/assets/episodes/videos/039-customize-field-error.mp4
http://media.railscasts.com/assets/episodes/videos/040-blocks-in-view.mp4
http://media.railscasts.com/assets/episodes/videos/041-conditional-validations.mp4
http://media.railscasts.com/assets/episodes/videos/042-with-options.mp4
http://media.railscasts.com/assets/episodes/videos/043-ajax-with-rjs.mp4
http://media.railscasts.com/assets/episodes/videos/044-debugging-rjs.mp4
http://media.railscasts.com/assets/episodes/videos/045-rjs-tips.mp4
http://media.railscasts.com/assets/episodes/videos/046-catch-all-route.mp4
http://media.railscasts.com/assets/episodes/videos/047-two-many-to-many.mp4
http://media.railscasts.com/assets/episodes/videos/048-console-tricks.mp4
http://media.railscasts.com/assets/episodes/videos/049-reading-the-api.mp4
http://media.railscasts.com/assets/episodes/videos/050-contributing-to-rails.mp4
http://media.railscasts.com/assets/episodes/videos/051-will-paginate.mp4
http://media.railscasts.com/assets/episodes/videos/052-update-through-checkboxes.mp4
http://media.railscasts.com/assets/episodes/videos/053-handling-exceptions.mp4
http://media.railscasts.com/assets/episodes/videos/054-debugging-with-ruby-debug.mp4
http://media.railscasts.com/assets/episodes/videos/055-cleaning-up-the-view.mp4
http://media.railscasts.com/assets/episodes/videos/056-the-logger.mp4
http://media.railscasts.com/assets/episodes/videos/057-create-model-through-text-field.mp4
http://media.railscasts.com/assets/episodes/videos/058-how-to-make-a-generator.mp4
http://media.railscasts.com/assets/episodes/videos/059-optimistic-locking.mp4
http://media.railscasts.com/assets/episodes/videos/060-testing-without-fixtures.mp4
http://media.railscasts.com/assets/episodes/videos/061-sending-email.mp4
http://media.railscasts.com/assets/episodes/videos/062-hacking-activerecord.mp4
http://media.railscasts.com/assets/episodes/videos/063-model-name-in-url.mp4
http://media.railscasts.com/assets/episodes/videos/064-custom-helper-modules.mp4
http://media.railscasts.com/assets/episodes/videos/065-stopping-spam-with-akismet.mp4
http://media.railscasts.com/assets/episodes/videos/066-custom-rake-tasks.mp4
http://media.railscasts.com/assets/episodes/videos/067-restful-authentication.mp4
http://media.railscasts.com/assets/episodes/videos/068-openid-authentication.mp4
http://media.railscasts.com/assets/episodes/videos/069-markaby-in-helper.mp4
http://media.railscasts.com/assets/episodes/videos/070-custom-routes.mp4
http://media.railscasts.com/assets/episodes/videos/071-testing-controllers-with-rspec.mp4
http://media.railscasts.com/assets/episodes/videos/072-adding-an-environment.mp4
http://media.railscasts.com/assets/episodes/videos/073-complex-forms-part-1.mp4
http://media.railscasts.com/assets/episodes/videos/074-complex-forms-part-2.mp4
http://media.railscasts.com/assets/episodes/videos/075-complex-forms-part-3.mp4
http://media.railscasts.com/assets/episodes/videos/076-scope-out.mp4
http://media.railscasts.com/assets/episodes/videos/077-destroy-without-javascript.mp4
http://media.railscasts.com/assets/episodes/videos/078-generating-pdf-documents.mp4
http://media.railscasts.com/assets/episodes/videos/079-generate-named-routes.mp4
http://media.railscasts.com/assets/episodes/videos/080-simplify-views-with-rails-2-0.mp4
http://media.railscasts.com/assets/episodes/videos/081-fixtures-in-rails-2-0.mp4
http://media.railscasts.com/assets/episodes/videos/082-http-basic-authentication.mp4
http://media.railscasts.com/assets/episodes/videos/083-migrations-in-rails-2-0.mp4
http://media.railscasts.com/assets/episodes/videos/084-cookie-based-session-store.mp4
http://media.railscasts.com/assets/episodes/videos/085-yaml-configuration-file.mp4
http://media.railscasts.com/assets/episodes/videos/086-logging-variables.mp4
http://media.railscasts.com/assets/episodes/videos/087-generating-rss-feeds.mp4
http://media.railscasts.com/assets/episodes/videos/088-dynamic-select-menus.mp4
http://media.railscasts.com/assets/episodes/videos/089-page-caching.mp4
http://media.railscasts.com/assets/episodes/videos/090-fragment-caching.mp4
http://media.railscasts.com/assets/episodes/videos/091-refactoring-long-methods.mp4
http://media.railscasts.com/assets/episodes/videos/092-make-resourceful.mp4
http://media.railscasts.com/assets/episodes/videos/093-action-caching.mp4
http://media.railscasts.com/assets/episodes/videos/094-activeresource-basics.mp4
http://media.railscasts.com/assets/episodes/videos/095-more-on-activeresource.mp4
http://media.railscasts.com/assets/episodes/videos/096-git-on-rails.mp4
http://media.railscasts.com/assets/episodes/videos/097-analyzing-the-production-log.mp4
http://media.railscasts.com/assets/episodes/videos/098-request-profiling.mp4
http://media.railscasts.com/assets/episodes/videos/099-complex-partials.mp4
http://media.railscasts.com/assets/episodes/videos/100-5-view-tips.mp4
http://media.railscasts.com/assets/episodes/videos/101-refactoring-out-helper-object.mp4
http://media.railscasts.com/assets/episodes/videos/102-auto-complete-association.mp4
http://media.railscasts.com/assets/episodes/videos/103-site-wide-announcements.mp4
http://media.railscasts.com/assets/episodes/videos/104-exception-notifications.mp4
http://media.railscasts.com/assets/episodes/videos/105-gitting-rails-2-1-rc1.mp4
http://media.railscasts.com/assets/episodes/videos/106-time-zones-in-rails-2-1.mp4
http://media.railscasts.com/assets/episodes/videos/107-migrations-in-rails-2-1.mp4
http://media.railscasts.com/assets/episodes/videos/108-named-scope.mp4
http://media.railscasts.com/assets/episodes/videos/109-tracking-attribute-changes.mp4
http://media.railscasts.com/assets/episodes/videos/110-gem-dependencies.mp4
http://media.railscasts.com/assets/episodes/videos/111-advanced-search-form.mp4
http://media.railscasts.com/assets/episodes/videos/112-anonymous-scopes.mp4
http://media.railscasts.com/assets/episodes/videos/113-contributing-to-rails-with-git.mp4
http://media.railscasts.com/assets/episodes/videos/114-endless-page.mp4
http://media.railscasts.com/assets/episodes/videos/115-caching-in-rails-2-1.mp4
http://media.railscasts.com/assets/episodes/videos/116-selenium.mp4
http://media.railscasts.com/assets/episodes/videos/117-semi-static-pages.mp4
http://media.railscasts.com/assets/episodes/videos/118-liquid.mp4
http://media.railscasts.com/assets/episodes/videos/119-session-based-model.mp4
http://media.railscasts.com/assets/episodes/videos/120-thinking-sphinx.mp4
http://media.railscasts.com/assets/episodes/videos/121-non-active-record-model.mp4
http://media.railscasts.com/assets/episodes/videos/122-passenger-in-development.mp4
http://media.railscasts.com/assets/episodes/videos/123-subdomains.mp4
http://media.railscasts.com/assets/episodes/videos/124-beta-invitations.mp4
http://media.railscasts.com/assets/episodes/videos/125-dynamic-layouts.mp4
http://media.railscasts.com/assets/episodes/videos/126-populating-a-database.mp4
http://media.railscasts.com/assets/episodes/videos/127-rake-in-background.mp4
http://media.railscasts.com/assets/episodes/videos/128-starling-and-workling.mp4
http://media.railscasts.com/assets/episodes/videos/129-custom-daemon.mp4
http://media.railscasts.com/assets/episodes/videos/130-monitoring-with-god.mp4
http://media.railscasts.com/assets/episodes/videos/131-going-back.mp4
http://media.railscasts.com/assets/episodes/videos/132-helpers-outside-views.mp4
http://media.railscasts.com/assets/episodes/videos/133-capistrano-tasks.mp4
http://media.railscasts.com/assets/episodes/videos/134-paperclip.mp4
http://media.railscasts.com/assets/episodes/videos/135-making-a-gem.mp4
http://media.railscasts.com/assets/episodes/videos/136-jquery.mp4
http://media.railscasts.com/assets/episodes/videos/137-memoization.mp4
http://media.railscasts.com/assets/episodes/videos/138-i18n.mp4
http://media.railscasts.com/assets/episodes/videos/139-nested-resources.mp4
http://media.railscasts.com/assets/episodes/videos/140-rails-2-2-extras.mp4
http://media.railscasts.com/assets/episodes/videos/141-paypal-basics.mp4
http://media.railscasts.com/assets/episodes/videos/142-paypal-notifications.mp4
http://media.railscasts.com/assets/episodes/videos/143-paypal-security.mp4
http://media.railscasts.com/assets/episodes/videos/144-active-merchant-basics.mp4
http://media.railscasts.com/assets/episodes/videos/145-integrating-active-merchant.mp4
http://media.railscasts.com/assets/episodes/videos/146-paypal-express-checkout.mp4
http://media.railscasts.com/assets/episodes/videos/147-sortable-lists.mp4
http://media.railscasts.com/assets/episodes/videos/148-app-templates-in-rails-2-3.mp4
http://media.railscasts.com/assets/episodes/videos/149-rails-engines.mp4
http://media.railscasts.com/assets/episodes/videos/150-rails-metal.mp4
http://media.railscasts.com/assets/episodes/videos/151-rack-middleware.mp4
http://media.railscasts.com/assets/episodes/videos/152-rails-2-3-extras.mp4
http://media.railscasts.com/assets/episodes/videos/153-pdfs-with-prawn.mp4
http://media.railscasts.com/assets/episodes/videos/154-polymorphic-association.mp4
http://media.railscasts.com/assets/episodes/videos/155-beginning-with-cucumber.mp4
http://media.railscasts.com/assets/episodes/videos/156-webrat.mp4
http://media.railscasts.com/assets/episodes/videos/157-rspec-matchers-macros.mp4
http://media.railscasts.com/assets/episodes/videos/158-factories-not-fixtures.mp4
http://media.railscasts.com/assets/episodes/videos/159-more-on-cucumber.mp4
http://media.railscasts.com/assets/episodes/videos/160-authlogic.mp4
http://media.railscasts.com/assets/episodes/videos/161-three-profiling-tools.mp4
http://media.railscasts.com/assets/episodes/videos/162-tree-based-navigation.mp4
http://media.railscasts.com/assets/episodes/videos/163-self-referential-association.mp4
http://media.railscasts.com/assets/episodes/videos/164-cron-in-ruby.mp4
http://media.railscasts.com/assets/episodes/videos/165-edit-multiple.mp4
http://media.railscasts.com/assets/episodes/videos/166-metric-fu.mp4
http://media.railscasts.com/assets/episodes/videos/167-more-on-virtual-attributes.mp4
http://media.railscasts.com/assets/episodes/videos/168-feed-parsing.mp4
http://media.railscasts.com/assets/episodes/videos/169-dynamic-page-caching.mp4
http://media.railscasts.com/assets/episodes/videos/170-openid-with-authlogic.mp4
http://media.railscasts.com/assets/episodes/videos/171-delayed-job.mp4
http://media.railscasts.com/assets/episodes/videos/172-touch-and-cache.mp4
http://media.railscasts.com/assets/episodes/videos/173-screen-scraping-with-scrapi.mp4
http://media.railscasts.com/assets/episodes/videos/174-pagination-with-ajax.mp4
http://media.railscasts.com/assets/episodes/videos/175-ajax-history-and-bookmarks.mp4
http://media.railscasts.com/assets/episodes/videos/176-searchlogic.mp4
http://media.railscasts.com/assets/episodes/videos/177-model-versioning.mp4
http://media.railscasts.com/assets/episodes/videos/178-seven-security-tips.mp4
http://media.railscasts.com/assets/episodes/videos/179-seed-data.mp4
http://media.railscasts.com/assets/episodes/videos/180-finding-unused-css.mp4
http://media.railscasts.com/assets/episodes/videos/181-include-vs-joins.mp4
http://media.railscasts.com/assets/episodes/videos/182-cropping-images.mp4
http://media.railscasts.com/assets/episodes/videos/183-gemcutter-jeweler.mp4
http://media.railscasts.com/assets/episodes/videos/184-formtastic-part-1.mp4
http://media.railscasts.com/assets/episodes/videos/185-formtastic-part-2.mp4
http://media.railscasts.com/assets/episodes/videos/186-pickle-with-cucumber.mp4
http://media.railscasts.com/assets/episodes/videos/187-testing-exceptions.mp4
http://media.railscasts.com/assets/episodes/videos/188-declarative-authorization.mp4
http://media.railscasts.com/assets/episodes/videos/189-embedded-association.mp4
http://media.railscasts.com/assets/episodes/videos/190-screen-scraping-with-nokogiri.mp4
http://media.railscasts.com/assets/episodes/videos/191-mechanize.mp4
http://media.railscasts.com/assets/episodes/videos/192-authorization-with-cancan.mp4
http://media.railscasts.com/assets/episodes/videos/193-tableless-model.mp4
http://media.railscasts.com/assets/episodes/videos/194-mongodb-and-mongomapper.mp4
http://media.railscasts.com/assets/episodes/videos/195-my-favorite-web-apps-in-2009.mp4
http://media.railscasts.com/assets/episodes/videos/196-nested-model-form-part-1.mp4
http://media.railscasts.com/assets/episodes/videos/197-nested-model-form-part-2.mp4
http://media.railscasts.com/assets/episodes/videos/198-edit-multiple-individually.mp4
http://media.railscasts.com/assets/episodes/videos/199-mobile-devices.mp4
http://media.railscasts.com/assets/episodes/videos/200-rails-3-beta-and-rvm.mp4
http://media.railscasts.com/assets/episodes/videos/201-bundler.mp4
http://media.railscasts.com/assets/episodes/videos/202-active-record-queries-in-rails-3.mp4
http://media.railscasts.com/assets/episodes/videos/203-routing-in-rails-3.mp4
http://media.railscasts.com/assets/episodes/videos/204-xss-protection-in-rails-3.mp4
http://media.railscasts.com/assets/episodes/videos/205-unobtrusive-javascript.mp4
http://media.railscasts.com/assets/episodes/videos/206-action-mailer-in-rails-3.mp4
http://media.railscasts.com/assets/episodes/videos/207-syntax-highlighting.mp4
http://media.railscasts.com/assets/episodes/videos/208-erb-blocks-in-rails-3.mp4
http://media.railscasts.com/assets/episodes/videos/209-introducing-devise.mp4
http://media.railscasts.com/assets/episodes/videos/210-customizing-devise.mp4
http://media.railscasts.com/assets/episodes/videos/211-validations-in-rails-3.mp4
http://media.railscasts.com/assets/episodes/videos/212-refactoring-dynamic-delegator.mp4
http://media.railscasts.com/assets/episodes/videos/213-calendars.mp4
http://media.railscasts.com/assets/episodes/videos/214-a-b-testing-with-a-bingo.mp4
http://media.railscasts.com/assets/episodes/videos/215-advanced-queries-in-rails-3.mp4
http://media.railscasts.com/assets/episodes/videos/216-generators-in-rails-3.mp4
http://media.railscasts.com/assets/episodes/videos/217-multistep-forms.mp4
http://media.railscasts.com/assets/episodes/videos/218-making-generators-in-rails-3.mp4
http://media.railscasts.com/assets/episodes/videos/219-active-model.mp4
http://media.railscasts.com/assets/episodes/videos/220-pdfkit.mp4
http://media.railscasts.com/assets/episodes/videos/221-subdomains-in-rails-3.mp4
http://media.railscasts.com/assets/episodes/videos/222-rack-in-rails-3.mp4
http://media.railscasts.com/assets/episodes/videos/223-charts.mp4
http://media.railscasts.com/assets/episodes/videos/224-controllers-in-rails-3.mp4
http://media.railscasts.com/assets/episodes/videos/225-upgrading-to-rails-3-part-1.mp4
http://media.railscasts.com/assets/episodes/videos/226-upgrading-to-rails-3-part-2.mp4
http://media.railscasts.com/assets/episodes/videos/227-upgrading-to-rails-3-part-3.mp4
http://media.railscasts.com/assets/episodes/videos/228-sortable-table-columns.mp4
http://media.railscasts.com/assets/episodes/videos/229-polling-for-changes.mp4
http://media.railscasts.com/assets/episodes/videos/230-inherited-resources.mp4
http://media.railscasts.com/assets/episodes/videos/231-routing-walkthrough.mp4
http://media.railscasts.com/assets/episodes/videos/232-routing-walkthrough-part-2.mp4
http://media.railscasts.com/assets/episodes/videos/233-engage-with-devise.mp4
http://media.railscasts.com/assets/episodes/videos/234-simple-form.mp4
http://media.railscasts.com/assets/episodes/videos/235-omniauth-part-1.mp4
http://media.railscasts.com/assets/episodes/videos/236-omniauth-part-2.mp4
http://media.railscasts.com/assets/episodes/videos/237-dynamic-attr-accessible.mp4
http://media.railscasts.com/assets/episodes/videos/238-mongoid.mp4
http://media.railscasts.com/assets/episodes/videos/239-activerecord-relation-walkthrough.mp4
http://media.railscasts.com/assets/episodes/videos/240-search-sort-paginate-with-ajax.mp4
http://media.railscasts.com/assets/episodes/videos/241-simple-omniauth.mp4
http://media.railscasts.com/assets/episodes/videos/242-thor.mp4
http://media.railscasts.com/assets/episodes/videos/243-beanstalkd-and-stalker.mp4
http://media.railscasts.com/assets/episodes/videos/244-gravatar.mp4
http://media.railscasts.com/assets/episodes/videos/245-new-gem-with-bundler.mp4
http://media.railscasts.com/assets/episodes/videos/246-ajax-history-state.mp4
http://media.railscasts.com/assets/episodes/videos/247-offline-apps-part-1.mp4
http://media.railscasts.com/assets/episodes/videos/248-offline-apps-part-2.mp4
http://media.railscasts.com/assets/episodes/videos/249-notifications-in-rails-3.mp4
http://media.railscasts.com/assets/episodes/videos/250-authentication-from-scratch.mp4
http://media.railscasts.com/assets/episodes/videos/251-metawhere-metasearch.mp4
http://media.railscasts.com/assets/episodes/videos/252-metrics-metrics-metrics.mp4
http://media.railscasts.com/assets/episodes/videos/253-carrierwave-file-uploads.mp4
http://media.railscasts.com/assets/episodes/videos/254-pagination-with-kaminari.mp4
http://media.railscasts.com/assets/episodes/videos/255-undo-with-paper-trail.mp4
http://media.railscasts.com/assets/episodes/videos/256-i18n-backends.mp4
http://media.railscasts.com/assets/episodes/videos/257-request-specs-and-capybara.mp4
http://media.railscasts.com/assets/episodes/videos/258-token-fields.mp4
http://media.railscasts.com/assets/episodes/videos/259-decent-exposure.mp4
http://media.railscasts.com/assets/episodes/videos/260-messaging-with-faye.mp4
http://media.railscasts.com/assets/episodes/videos/261-testing-javascript-with-jasmine.mp4
http://media.railscasts.com/assets/episodes/videos/262-trees-with-ancestry.mp4
http://media.railscasts.com/assets/episodes/videos/263-client-side-validations.mp4
http://media.railscasts.com/assets/episodes/videos/264-guard.mp4
http://media.railscasts.com/assets/episodes/videos/265-rails-3-1-overview.mp4
http://media.railscasts.com/assets/episodes/videos/266-http-streaming.mp4
http://media.railscasts.com/assets/episodes/videos/267-coffeescript-basics.mp4
http://media.railscasts.com/assets/episodes/videos/268-sass-basics.mp4
http://media.railscasts.com/assets/episodes/videos/269-template-inheritance.mp4
http://media.railscasts.com/assets/episodes/videos/270-authentication-in-rails-3-1.mp4
http://media.railscasts.com/assets/episodes/videos/271-resque.mp4
http://media.railscasts.com/assets/episodes/videos/272-markdown-with-redcarpet.mp4
http://media.railscasts.com/assets/episodes/videos/273-geocoder.mp4
http://media.railscasts.com/assets/episodes/videos/274-remember-me-reset-password.mp4
http://media.railscasts.com/assets/episodes/videos/275-how-i-test.mp4
http://media.railscasts.com/assets/episodes/videos/276-testing-time-web-requests.mp4
http://media.railscasts.com/assets/episodes/videos/277-mountable-engines.mp4
http://media.railscasts.com/assets/episodes/videos/278-search-with-sunspot.mp4
http://media.railscasts.com/assets/episodes/videos/279-understanding-the-asset-pipeline.mp4
http://media.railscasts.com/assets/episodes/videos/280-pry-with-rails.mp4
http://media.railscasts.com/assets/episodes/videos/281-foreman.mp4
http://media.railscasts.com/assets/episodes/videos/282-upgrading-to-rails-3-1.mp4
http://media.railscasts.com/assets/episodes/videos/283-authentication-with-sorcery.mp4
http://media.railscasts.com/assets/episodes/videos/284-active-admin.mp4
http://media.railscasts.com/assets/episodes/videos/285-spork.mp4
http://media.railscasts.com/assets/episodes/videos/286-draper.mp4
http://media.railscasts.com/assets/episodes/videos/288-billing-with-stripe.mp4
http://media.railscasts.com/assets/episodes/videos/290-soap-with-savon.mp4
http://media.railscasts.com/assets/episodes/videos/292-virtual-machines-with-vagrant.mp4
http://media.railscasts.com/assets/episodes/videos/294-playing-with-pjax.mp4
http://media.railscasts.com/assets/episodes/videos/296-mercury-editor.mp4
http://media.railscasts.com/assets/episodes/videos/298-getting-started-with-spree.mp4
http://media.railscasts.com/assets/episodes/videos/300-contributing-to-open-source.mp4
http://media.railscasts.com/assets/episodes/videos/302-in-place-editing.mp4
http://media.railscasts.com/assets/episodes/videos/304-omniauth-identity.mp4
http://media.railscasts.com/assets/episodes/videos/306-elasticsearch-part-1.mp4
http://media.railscasts.com/assets/episodes/videos/308-oh-my-zsh.mp4
http://media.railscasts.com/assets/episodes/videos/310-getting-started-with-rails.mp4
http://media.railscasts.com/assets/episodes/videos/312-sending-html-email.mp4
http://media.railscasts.com/assets/episodes/videos/314-pretty-urls-with-friendlyid.mp4
http://media.railscasts.com/assets/episodes/videos/316-private-pub.mp4
http://media.railscasts.com/assets/episodes/videos/318-upgrading-to-rails-3-2.mp4
http://media.railscasts.com/assets/episodes/videos/320-jbuilder.mp4
http://media.railscasts.com/assets/episodes/videos/322-rabl.mp4
http://media.railscasts.com/assets/episodes/videos/324-passing-data-to-javascript.mp4
http://media.railscasts.com/assets/episodes/videos/326-activeattr.mp4
http://media.railscasts.com/assets/episodes/videos/328-twitter-bootstrap-basics.mp4
http://media.railscasts.com/assets/episodes/videos/330-better-sass-with-bourbon.mp4
http://media.railscasts.com/assets/episodes/videos/332-refinery-cms-basics.mp4
http://media.railscasts.com/assets/episodes/videos/334-compass-css-sprites.mp4
http://media.railscasts.com/assets/episodes/videos/336-copycopter.mp4
http://media.railscasts.com/assets/episodes/videos/338-globalize3.mp4
http://media.railscasts.com/assets/episodes/videos/340-datatables.mp4
http://media.railscasts.com/assets/episodes/videos/342-migrating-to-postgresql.mp4
http://media.railscasts.com/assets/episodes/videos/344-queue-classic.mp4
http://media.railscasts.com/assets/episodes/videos/346-wizard-forms-with-wicked.mp4
http://media.railscasts.com/assets/episodes/videos/347-rubber-and-amazon-ec2.mp4
http://media.railscasts.com/assets/episodes/videos/348-the-rails-api-gem.mp4
http://media.railscasts.com/assets/episodes/videos/350-rest-api-versioning.mp4
http://media.railscasts.com/assets/episodes/videos/352-securing-an-api.mp4
http://media.railscasts.com/assets/episodes/videos/354-squeel.mp4
http://media.railscasts.com/assets/episodes/videos/356-dangers-of-session-hijacking.mp4
http://media.railscasts.com/assets/episodes/videos/358-brakeman.mp4
http://media.railscasts.com/assets/episodes/videos/360-facebook-authentication.mp4
http://media.railscasts.com/assets/episodes/videos/362-exporting-csv-and-excel.mp4
http://media.railscasts.com/assets/episodes/videos/364-active-record-reputation-system.mp4
http://media.railscasts.com/assets/episodes/videos/366-sidekiq.mp4
http://media.railscasts.com/assets/episodes/videos/368-miniprofiler.mp4
http://media.railscasts.com/assets/episodes/videos/370-ransack.mp4
http://media.railscasts.com/assets/episodes/videos/372-bullet.mp4
http://media.railscasts.com/assets/episodes/videos/374-image-manipulation.mp4
http://media.railscasts.com/assets/episodes/videos/376-jruby-basics.mp4
http://media.railscasts.com/assets/episodes/videos/378-fnordmetric.mp4
http://media.railscasts.com/assets/episodes/videos/382-tagging.mp4
http://media.railscasts.com/assets/episodes/videos/384-exploring-rubygems.mp4
http://media.railscasts.com/assets/episodes/videos/387-cache-digests.mp4
http://media.railscasts.com/assets/episodes/videos/390-turbolinks.mp4
http://media.railscasts.com/assets/episodes/videos/393-guest-user-record.mp4
http://media.railscasts.com/assets/episodes/videos/396-importing-csv-and-excel.mp4
http://s3.amazonaws.com/railscasts-media/assets/episodes/videos/400-what-s-new-in-rails-4.mp4
http://media.railscasts.com/assets/episodes/videos/402-better-errors-railspanel.mp4
http://media.railscasts.com/assets/episodes/videos/406-public-activity.mp4