Наткнулся на очень интересный пост, где небольшим скриптом народ составил топ самых обсуждаемых докладов с TED. А так как сериалы становятся все тупее и тупее, решил заполнить свое свободное время чем-то более полезным. Ведь на TED время от времени говорят об интересных и полезных вещах.
В итоге получился другой скрипт, который большинство этих видео скачал.
Одним из вариантов посмотреть все видео был бы открыть XLS файл с сайта и кликать по линкам сверху вниз, но он чрезвычайно неудобен. Через 10-20 ссылок я бы запутался что смотрел а что нет, да и хочется залить все на iPhone и смотреть/слушать по дороге на работу.
После продолжительного гугления синтаксиса Ruby, был написан небольшой скрипт, который брал из файла адреса докладов и скачивал их в папочку. Дело полезное, может быть кому пригодится.
Соответственно, нужно поставить гемы: nokogirii и httparty.
Скрипт и файл с данными скинул на GitHub.
Для некоторых видео на сайте нет ссылок на скачивание. Их придется смотреть там или на youtube.
Можно было бы выложить все скачанные видео куда-нибудь в торенты, но это не так интересно каксобрать из исходниковскачать самому.
С удовольствием выслушаю замечания от гуру Ruby.
P.S. ушел смотреть все по порядку.
Update: добавил Gemfile для упрощения установки
Update2: спасибо detunized за урок Ruby
Update3: добавил создание папки videos, если ее нет
В итоге получился другой скрипт, который большинство этих видео скачал.
Одним из вариантов посмотреть все видео был бы открыть XLS файл с сайта и кликать по линкам сверху вниз, но он чрезвычайно неудобен. Через 10-20 ссылок я бы запутался что смотрел а что нет, да и хочется залить все на iPhone и смотреть/слушать по дороге на работу.
После продолжительного гугления синтаксиса Ruby, был написан небольшой скрипт, который брал из файла адреса докладов и скачивал их в папочку. Дело полезное, может быть кому пригодится.
require 'rubygems'
require 'nokogiri'
require 'open-uri'
require 'HTTParty'
urls = IO.readlines("data.txt").map {|line| line.chomp}
if !File.exists?("videos")
Dir.mkdir("videos")
end
urls.each_with_index do |url, count|
begin
doc = Nokogiri.parse(open(url).read)
node = doc.xpath("//dt/a[text()='Download video to desktop (MP4)']")
video = "http://www.ted.com" + node.attribute("href").to_s
videoName = "videos/(#{count+1})" + url.match(/http:\/\/www.ted.com\/talks\/(.*)\.html/i)[1] + ".mp4"
puts "Downloading #{url} to #{videoName}"
File.open( videoName, "w+") do |f|
f << HTTParty.get( video )
end
rescue
puts "Failed to download #{url}"
end
end
Соответственно, нужно поставить гемы: nokogirii и httparty.
Скрипт и файл с данными скинул на GitHub.
Для некоторых видео на сайте нет ссылок на скачивание. Их придется смотреть там или на youtube.
Можно было бы выложить все скачанные видео куда-нибудь в торенты, но это не так интересно как
С удовольствием выслушаю замечания от гуру Ruby.
P.S. ушел смотреть все по порядку.
Update: добавил Gemfile для упрощения установки
Update2: спасибо detunized за урок Ruby
Update3: добавил создание папки videos, если ее нет