cherrypicker 0.3.12 → 0.3.13
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/cherrypicker/helpers.rb +6 -1
- data/lib/cherrypicker/plugins/youtube.rb +3 -10
- data/lib/cherrypicker/version.rb +1 -1
- metadata +1 -1
data/lib/cherrypicker/helpers.rb
CHANGED
@@ -46,8 +46,11 @@ module Cherrypicker
|
|
46
46
|
uri = URI.parse(@link.to_s)
|
47
47
|
http = Net::HTTP.new(uri.host, uri.port)
|
48
48
|
http.use_ssl = true if uri.scheme == "https"
|
49
|
+
http.open_timeout = 3 # seconds
|
50
|
+
http.read_timeout = 3 # seconds
|
49
51
|
request = Net::HTTP::Get.new(uri.request_uri)
|
50
52
|
request.initialize_http_header({"User-Agent" => Cherrypicker::random_agent})
|
53
|
+
|
51
54
|
unless (uri.host.include? 'youtube.com') && (uri.request_uri.include? 'videoplayback') #youtube throws EOFError
|
52
55
|
head = http.request_head(URI.escape(uri.path))
|
53
56
|
case head
|
@@ -57,7 +60,8 @@ module Cherrypicker
|
|
57
60
|
@size = head['content-length'] if @size.nil? && head['content-length'].to_i > 1024
|
58
61
|
end
|
59
62
|
end
|
60
|
-
|
63
|
+
|
64
|
+
puts "unknown file size for #{@filename} but downloading..." if @size.nil?
|
61
65
|
http.request(request) do |response|
|
62
66
|
bar = ProgressBar.new((@filename ||= File.basename(uri.path)), @size.to_i) unless @size.nil?
|
63
67
|
bar.format_arguments=[:title, :percentage, :bar, :stat_for_file_transfer] unless @size.nil?
|
@@ -70,6 +74,7 @@ module Cherrypicker
|
|
70
74
|
end
|
71
75
|
end
|
72
76
|
end
|
77
|
+
|
73
78
|
@finished = true
|
74
79
|
puts
|
75
80
|
puts "download completed"
|
@@ -58,17 +58,10 @@ module Cherrypicker
|
|
58
58
|
format_ext["5"] = ["flv", "old default?"]
|
59
59
|
|
60
60
|
download_url = video_info_hash["fmt_url_map"][formats.first]
|
61
|
-
@filename = video_info_hash["title"].delete("\"'").gsub(/[^0-9A-Za-z]/, '_') + "." + format_ext[formats.first].first
|
61
|
+
@filename = video_info_hash["title"].delete("\"'").gsub(/[^0-9A-Za-z]/, '_') + "." + format_ext[formats.first].first
|
62
|
+
@download_url = download_url
|
63
|
+
end
|
62
64
|
|
63
|
-
#there might be a redirect let check
|
64
|
-
reply = Cherrypicker::remote_query("#{download_url}")
|
65
|
-
if reply.response['location']
|
66
|
-
@download_url = reply.response['location']
|
67
|
-
else
|
68
|
-
@download_url = download_url
|
69
|
-
end
|
70
|
-
end
|
71
|
-
|
72
65
|
def download
|
73
66
|
Cherrypicker::download_file(@download_url, :location => @location, :filename => @filename)
|
74
67
|
end
|
data/lib/cherrypicker/version.rb
CHANGED