youtube_it 1.2.10 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/VERSION +1 -1
- data/lib/youtube_it/client.rb +1 -1
- data/lib/youtube_it/model/rating.rb +6 -0
- data/lib/youtube_it/parser.rb +33 -10
- data/lib/youtube_it/request/standard_search.rb +2 -1
- data/lib/youtube_it/request/user_search.rb +2 -1
- data/lib/youtube_it/request/video_search.rb +3 -2
- data/lib/youtube_it/request/video_upload.rb +2 -4
- data/test/test_client.rb +7 -7
- data/test/test_video_search.rb +25 -26
- data/youtube_it.gemspec +3 -5
- metadata +4 -19
- data/pkg/youtube_it-1.2.9.gem +0 -0
data/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
1.
|
|
1
|
+
1.3.0
|
data/lib/youtube_it/client.rb
CHANGED
|
@@ -12,7 +12,7 @@ class YouTubeIt
|
|
|
12
12
|
@client_id = hash_options[:client_id] || "youtube_it"
|
|
13
13
|
@legacy_debug_flag = hash_options[:debug]
|
|
14
14
|
else
|
|
15
|
-
puts "* warning: the method YouTubeIt::Client.new(user, passwd, dev_key) is
|
|
15
|
+
puts "* warning: the method YouTubeIt::Client.new(user, passwd, dev_key) is deprecated, use YouTubeIt::Client.new(:username => 'user', :password => 'passwd', :dev_key => 'dev_key')"
|
|
16
16
|
@user = params.shift
|
|
17
17
|
@pass = params.shift
|
|
18
18
|
@dev_key = params.shift
|
|
@@ -12,6 +12,12 @@ class YouTubeIt
|
|
|
12
12
|
|
|
13
13
|
# *Fixnum*:: Indicates how many people have rated the video
|
|
14
14
|
attr_reader :rater_count
|
|
15
|
+
|
|
16
|
+
# *Fixnum*:: Indicates how many people likes this video
|
|
17
|
+
attr_reader :likes
|
|
18
|
+
|
|
19
|
+
# *Fixnum*:: Indicates how many people dislikes this video
|
|
20
|
+
attr_reader :dislikes
|
|
15
21
|
end
|
|
16
22
|
end
|
|
17
23
|
end
|
data/lib/youtube_it/parser.rb
CHANGED
|
@@ -106,10 +106,25 @@ class YouTubeIt
|
|
|
106
106
|
:name => author_element.elements["name"].text,
|
|
107
107
|
:uri => author_element.elements["uri"].text)
|
|
108
108
|
end
|
|
109
|
-
|
|
110
109
|
media_group = entry.elements["media:group"]
|
|
111
|
-
|
|
112
|
-
|
|
110
|
+
|
|
111
|
+
# if content is not available on certain region, there is no media:description, media:player or yt:duration
|
|
112
|
+
description = ""
|
|
113
|
+
unless media_group.elements["media:description"].nil?
|
|
114
|
+
description = media_group.elements["media:description"].text
|
|
115
|
+
end
|
|
116
|
+
|
|
117
|
+
# if content is not available on certain region, there is no media:description, media:player or yt:duration
|
|
118
|
+
duration = 0
|
|
119
|
+
unless media_group.elements["yt:duration"].nil?
|
|
120
|
+
duration = media_group.elements["yt:duration"].attributes["seconds"].to_i
|
|
121
|
+
end
|
|
122
|
+
|
|
123
|
+
# if content is not available on certain region, there is no media:description, media:player or yt:duration
|
|
124
|
+
player_url = ""
|
|
125
|
+
unless media_group.elements["media:player"].nil?
|
|
126
|
+
player_url = media_group.elements["media:player"].attributes["url"]
|
|
127
|
+
end
|
|
113
128
|
|
|
114
129
|
unless media_group.elements["yt:aspectRatio"].nil?
|
|
115
130
|
widescreen = media_group.elements["yt:aspectRatio"].text == 'widescreen' ? true : false
|
|
@@ -120,8 +135,6 @@ class YouTubeIt
|
|
|
120
135
|
media_content << parse_media_content(mce)
|
|
121
136
|
end
|
|
122
137
|
|
|
123
|
-
player_url = media_group.elements["media:player"].attributes["url"]
|
|
124
|
-
|
|
125
138
|
# parse thumbnails
|
|
126
139
|
thumbnails = []
|
|
127
140
|
media_group.elements.each("media:thumbnail") do |thumb_element|
|
|
@@ -134,13 +147,23 @@ class YouTubeIt
|
|
|
134
147
|
end
|
|
135
148
|
|
|
136
149
|
rating_element = entry.elements["gd:rating"]
|
|
150
|
+
extended_rating_element = entry.elements["yt:rating"]
|
|
151
|
+
|
|
137
152
|
rating = nil
|
|
138
153
|
if rating_element
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
154
|
+
rating_values = {
|
|
155
|
+
:min => rating_element.attributes["min"].to_i,
|
|
156
|
+
:max => rating_element.attributes["max"].to_i,
|
|
157
|
+
:rater_count => rating_element.attributes["numRaters"].to_i,
|
|
158
|
+
:average => rating_element.attributes["average"].to_f
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
if extended_rating_element
|
|
162
|
+
rating_values[:likes] = extended_rating_element.attributes["numLikes"].to_i,
|
|
163
|
+
rating_values[:dislikes] = extended_rating_element.attributes["numDislikes"].to_i
|
|
164
|
+
end
|
|
165
|
+
|
|
166
|
+
rating = YouTubeIt::Model::Rating.new(rating_values)
|
|
144
167
|
end
|
|
145
168
|
|
|
146
169
|
if (el = entry.elements["yt:statistics"])
|
|
@@ -28,7 +28,7 @@ class YouTubeIt
|
|
|
28
28
|
@dev_key = params[:dev_key] if params[:dev_key]
|
|
29
29
|
|
|
30
30
|
# Return a single video (base_url + /T7YazwP8GtY)
|
|
31
|
-
return @url << "/" << params[:video_id] if params[:video_id]
|
|
31
|
+
return @url << "/" << params[:video_id] << "?v=2" if params[:video_id]
|
|
32
32
|
|
|
33
33
|
@url << "/-/" if (params[:categories] || params[:tags])
|
|
34
34
|
@url << categories_to_params(params.delete(:categories)) if params[:categories]
|
|
@@ -54,7 +54,8 @@ class YouTubeIt
|
|
|
54
54
|
'max-results' => @max_results,
|
|
55
55
|
'orderby' => @order_by,
|
|
56
56
|
'start-index' => @offset,
|
|
57
|
-
'
|
|
57
|
+
'v' => 2,
|
|
58
|
+
'q' => @query,
|
|
58
59
|
'alt' => @response_format,
|
|
59
60
|
'format' => @video_format,
|
|
60
61
|
'racy' => @racy,
|
|
@@ -414,8 +414,6 @@ class YouTubeIt
|
|
|
414
414
|
response = @access_token.get("http://gdata.youtube.com/feeds/api/users/default")
|
|
415
415
|
end
|
|
416
416
|
|
|
417
|
-
puts "========= response body #{response.body}"
|
|
418
|
-
puts "========= response body #{response.to_yaml}"
|
|
419
417
|
raise_on_faulty_response(response)
|
|
420
418
|
REXML::Document.new(response.body).elements["entry"].elements['author'].elements['name'].text
|
|
421
419
|
end
|
|
@@ -474,8 +472,8 @@ puts "========= response body #{response.to_yaml}"
|
|
|
474
472
|
|
|
475
473
|
def raise_on_faulty_response(response)
|
|
476
474
|
response_code = response.code.to_i
|
|
477
|
-
|
|
478
|
-
if response_code / 10 == 40
|
|
475
|
+
if response_code == 403 || response_code == 401
|
|
476
|
+
#if response_code / 10 == 40
|
|
479
477
|
raise AuthenticationError, response.body[/<TITLE>(.+)<\/TITLE>/, 1]
|
|
480
478
|
elsif response_code / 10 != 20 # Response in 20x means success
|
|
481
479
|
raise UploadError, parse_upload_error_from(response.body.gsub(/\n/,''))
|
data/test/test_client.rb
CHANGED
|
@@ -16,7 +16,7 @@ class TestClient < Test::Unit::TestCase
|
|
|
16
16
|
def test_should_respond_to_a_basic_query
|
|
17
17
|
response = @client.videos_by(:query => "penguin")
|
|
18
18
|
|
|
19
|
-
assert_equal "
|
|
19
|
+
assert_equal "tag:youtube.com,2008:videos", response.feed_id
|
|
20
20
|
assert_equal 25, response.max_result_count
|
|
21
21
|
assert_equal 25, response.videos.length
|
|
22
22
|
assert_equal 1, response.offset
|
|
@@ -29,7 +29,7 @@ class TestClient < Test::Unit::TestCase
|
|
|
29
29
|
def test_should_respond_to_a_basic_query_with_offset_and_max_results
|
|
30
30
|
response = @client.videos_by(:query => "penguin", :offset => 15, :max_results => 30)
|
|
31
31
|
|
|
32
|
-
assert_equal "
|
|
32
|
+
assert_equal "tag:youtube.com,2008:videos", response.feed_id
|
|
33
33
|
assert_equal 30, response.max_result_count
|
|
34
34
|
assert_equal 30, response.videos.length
|
|
35
35
|
assert_equal 15, response.offset
|
|
@@ -41,17 +41,17 @@ class TestClient < Test::Unit::TestCase
|
|
|
41
41
|
|
|
42
42
|
def test_should_respond_to_a_basic_query_with_paging
|
|
43
43
|
response = @client.videos_by(:query => "penguin")
|
|
44
|
-
assert_equal "
|
|
44
|
+
assert_equal "tag:youtube.com,2008:videos", response.feed_id
|
|
45
45
|
assert_equal 25, response.max_result_count
|
|
46
46
|
assert_equal 1, response.offset
|
|
47
47
|
|
|
48
48
|
response = @client.videos_by(:query => "penguin", :page => 2)
|
|
49
|
-
assert_equal "
|
|
49
|
+
assert_equal "tag:youtube.com,2008:videos", response.feed_id
|
|
50
50
|
assert_equal 25, response.max_result_count
|
|
51
51
|
assert_equal 26, response.offset
|
|
52
52
|
|
|
53
53
|
response2 = @client.videos_by(:query => "penguin", :page => 3)
|
|
54
|
-
assert_equal "
|
|
54
|
+
assert_equal "tag:youtube.com,2008:videos", response2.feed_id
|
|
55
55
|
assert_equal 25, response2.max_result_count
|
|
56
56
|
assert_equal 51, response2.offset
|
|
57
57
|
end
|
|
@@ -59,7 +59,7 @@ class TestClient < Test::Unit::TestCase
|
|
|
59
59
|
def test_should_get_videos_for_multiword_metasearch_query
|
|
60
60
|
response = @client.videos_by(:query => 'christina ricci')
|
|
61
61
|
|
|
62
|
-
assert_equal "
|
|
62
|
+
assert_equal "tag:youtube.com,2008:videos", response.feed_id
|
|
63
63
|
assert_equal 25, response.max_result_count
|
|
64
64
|
assert_equal 25, response.videos.length
|
|
65
65
|
assert_equal 1, response.offset
|
|
@@ -139,7 +139,7 @@ class TestClient < Test::Unit::TestCase
|
|
|
139
139
|
|
|
140
140
|
def test_should_get_favorite_videos_by_user
|
|
141
141
|
response = @client.videos_by(:favorites, :user => 'drnicwilliams')
|
|
142
|
-
assert_equal "
|
|
142
|
+
assert_equal "tag:youtube.com,2008:user:drnicwilliams:favorites", response.feed_id
|
|
143
143
|
response.videos.each { |v| assert_valid_video v }
|
|
144
144
|
end
|
|
145
145
|
|
data/test/test_video_search.rb
CHANGED
|
@@ -4,79 +4,79 @@ class TestVideoSearch < Test::Unit::TestCase
|
|
|
4
4
|
|
|
5
5
|
def test_should_build_basic_query_url
|
|
6
6
|
request = YouTubeIt::Request::VideoSearch.new(:query => "penguin")
|
|
7
|
-
assert_equal "http://gdata.youtube.com/feeds/api/videos?
|
|
7
|
+
assert_equal "http://gdata.youtube.com/feeds/api/videos?q=penguin&v=2", request.url
|
|
8
8
|
end
|
|
9
9
|
|
|
10
10
|
def test_should_build_multiword_metasearch_query_url
|
|
11
11
|
request = YouTubeIt::Request::VideoSearch.new(:query => 'christina ricci')
|
|
12
|
-
assert_equal "http://gdata.youtube.com/feeds/api/videos?
|
|
12
|
+
assert_equal "http://gdata.youtube.com/feeds/api/videos?q=christina+ricci&v=2", request.url
|
|
13
13
|
end
|
|
14
14
|
|
|
15
15
|
def test_should_build_video_id_url
|
|
16
16
|
request = YouTubeIt::Request::VideoSearch.new(:video_id => 'T7YazwP8GtY')
|
|
17
|
-
assert_equal "http://gdata.youtube.com/feeds/api/videos/T7YazwP8GtY", request.url
|
|
17
|
+
assert_equal "http://gdata.youtube.com/feeds/api/videos/T7YazwP8GtY?v=2", request.url
|
|
18
18
|
end
|
|
19
19
|
|
|
20
|
-
def
|
|
20
|
+
def test_should_build_one_tag_query_url
|
|
21
21
|
request = YouTubeIt::Request::VideoSearch.new(:tags => ['panther'])
|
|
22
|
-
assert_equal "http://gdata.youtube.com/feeds/api/videos/-/panther
|
|
22
|
+
assert_equal "http://gdata.youtube.com/feeds/api/videos/-/panther/?v=2", request.url
|
|
23
23
|
end
|
|
24
24
|
|
|
25
25
|
def test_should_build_multiple_tags_query_url
|
|
26
26
|
request = YouTubeIt::Request::VideoSearch.new(:tags => ['tiger', 'leopard'])
|
|
27
|
-
assert_equal "http://gdata.youtube.com/feeds/api/videos/-/tiger/leopard
|
|
27
|
+
assert_equal "http://gdata.youtube.com/feeds/api/videos/-/tiger/leopard/?v=2", request.url
|
|
28
28
|
end
|
|
29
29
|
|
|
30
30
|
def test_should_build_one_category_query_url
|
|
31
31
|
request = YouTubeIt::Request::VideoSearch.new(:categories => [:news])
|
|
32
|
-
assert_equal "http://gdata.youtube.com/feeds/api/videos/-/News
|
|
32
|
+
assert_equal "http://gdata.youtube.com/feeds/api/videos/-/News/?v=2", request.url
|
|
33
33
|
end
|
|
34
34
|
|
|
35
35
|
def test_should_build_multiple_categories_query_url
|
|
36
36
|
request = YouTubeIt::Request::VideoSearch.new(:categories => [:news, :sports])
|
|
37
|
-
assert_equal "http://gdata.youtube.com/feeds/api/videos/-/News/Sports
|
|
37
|
+
assert_equal "http://gdata.youtube.com/feeds/api/videos/-/News/Sports/?v=2", request.url
|
|
38
38
|
end
|
|
39
39
|
|
|
40
40
|
def test_should_build_categories_and_tags_query_url
|
|
41
41
|
request = YouTubeIt::Request::VideoSearch.new(:categories => [:news, :sports], :tags => ['soccer', 'football'])
|
|
42
|
-
assert_equal "http://gdata.youtube.com/feeds/api/videos/-/News/Sports/soccer/football
|
|
42
|
+
assert_equal "http://gdata.youtube.com/feeds/api/videos/-/News/Sports/soccer/football/?v=2", request.url
|
|
43
43
|
end
|
|
44
44
|
|
|
45
45
|
def test_should_build_categories_and_tags_url_with_max_results
|
|
46
46
|
request = YouTubeIt::Request::VideoSearch.new(:categories => [:music], :tags => ['classic', 'rock'], :max_results => 2)
|
|
47
|
-
assert_equal "http://gdata.youtube.com/feeds/api/videos/-/Music/classic/rock/?max-results=2", request.url
|
|
47
|
+
assert_equal "http://gdata.youtube.com/feeds/api/videos/-/Music/classic/rock/?max-results=2&v=2", request.url
|
|
48
48
|
end
|
|
49
49
|
|
|
50
50
|
def test_should_build_author_query_url
|
|
51
51
|
request = YouTubeIt::Request::VideoSearch.new(:author => "davidguetta")
|
|
52
|
-
assert_equal "http://gdata.youtube.com/feeds/api/videos?author=davidguetta", request.url
|
|
52
|
+
assert_equal "http://gdata.youtube.com/feeds/api/videos?author=davidguetta&v=2", request.url
|
|
53
53
|
end
|
|
54
54
|
|
|
55
55
|
def test_should_build_language_query_url
|
|
56
56
|
request = YouTubeIt::Request::VideoSearch.new(:query => 'christina ricci', :lang => 'pt')
|
|
57
|
-
assert_equal "http://gdata.youtube.com/feeds/api/videos?lr=pt&
|
|
57
|
+
assert_equal "http://gdata.youtube.com/feeds/api/videos?lr=pt&q=christina+ricci&v=2", request.url
|
|
58
58
|
end
|
|
59
59
|
|
|
60
60
|
# -- Standard Feeds --------------------------------------------------------------------------------
|
|
61
61
|
|
|
62
62
|
def test_should_build_url_for_most_viewed
|
|
63
63
|
request = YouTubeIt::Request::StandardSearch.new(:most_viewed)
|
|
64
|
-
assert_equal "http://gdata.youtube.com/feeds/api/standardfeeds/most_viewed", request.url
|
|
64
|
+
assert_equal "http://gdata.youtube.com/feeds/api/standardfeeds/most_viewed?v=2", request.url
|
|
65
65
|
end
|
|
66
66
|
|
|
67
67
|
def test_should_build_url_for_top_rated_for_today
|
|
68
68
|
request = YouTubeIt::Request::StandardSearch.new(:top_rated, :time => :today)
|
|
69
|
-
assert_equal "http://gdata.youtube.com/feeds/api/standardfeeds/top_rated?time=today", request.url
|
|
69
|
+
assert_equal "http://gdata.youtube.com/feeds/api/standardfeeds/top_rated?time=today&v=2", request.url
|
|
70
70
|
end
|
|
71
71
|
|
|
72
72
|
def test_should_build_url_for_most_viewed_offset_and_max_results_without_time
|
|
73
73
|
request = YouTubeIt::Request::StandardSearch.new(:top_rated, :offset => 5, :max_results => 10)
|
|
74
|
-
assert_equal "http://gdata.youtube.com/feeds/api/standardfeeds/top_rated?max-results=10&start-index=5", request.url
|
|
74
|
+
assert_equal "http://gdata.youtube.com/feeds/api/standardfeeds/top_rated?max-results=10&start-index=5&v=2", request.url
|
|
75
75
|
end
|
|
76
76
|
|
|
77
77
|
def test_should_build_url_for_most_viewed_offset_and_max_results_with_time
|
|
78
78
|
request = YouTubeIt::Request::StandardSearch.new(:top_rated, :offset => 5, :max_results => 10, :time => :today)
|
|
79
|
-
assert_equal "http://gdata.youtube.com/feeds/api/standardfeeds/top_rated?max-results=10&start-index=5&time=today", request.url
|
|
79
|
+
assert_equal "http://gdata.youtube.com/feeds/api/standardfeeds/top_rated?max-results=10&start-index=5&time=today&v=2", request.url
|
|
80
80
|
end
|
|
81
81
|
|
|
82
82
|
def test_should_raise_exception_for_invalid_type
|
|
@@ -89,53 +89,52 @@ class TestVideoSearch < Test::Unit::TestCase
|
|
|
89
89
|
|
|
90
90
|
def test_should_build_url_for_boolean_or_case_for_categories
|
|
91
91
|
request = YouTubeIt::Request::VideoSearch.new(:categories => { :either => [:news, :sports] })
|
|
92
|
-
assert_equal "http://gdata.youtube.com/feeds/api/videos/-/News%7CSports
|
|
92
|
+
assert_equal "http://gdata.youtube.com/feeds/api/videos/-/News%7CSports/?v=2", request.url
|
|
93
93
|
end
|
|
94
94
|
|
|
95
95
|
def test_should_build_url_for_boolean_or_and_exclude_case_for_categories
|
|
96
96
|
request = YouTubeIt::Request::VideoSearch.new(:categories => { :either => [:news, :sports], :exclude => [:comedy] })
|
|
97
|
-
assert_equal "http://gdata.youtube.com/feeds/api/videos/-/News%7CSports/-Comedy
|
|
97
|
+
assert_equal "http://gdata.youtube.com/feeds/api/videos/-/News%7CSports/-Comedy/?v=2", request.url
|
|
98
98
|
end
|
|
99
99
|
|
|
100
100
|
def test_should_build_url_for_exclude_case_for_tags
|
|
101
101
|
request = YouTubeIt::Request::VideoSearch.new(:categories => { :either => [:news, :sports], :exclude => [:comedy] },
|
|
102
102
|
:tags => { :include => ['football'], :exclude => ['soccer'] })
|
|
103
|
-
assert_equal "http://gdata.youtube.com/feeds/api/videos/-/News%7CSports/-Comedy/football/-soccer
|
|
103
|
+
assert_equal "http://gdata.youtube.com/feeds/api/videos/-/News%7CSports/-Comedy/football/-soccer/?v=2", request.url
|
|
104
104
|
end
|
|
105
105
|
|
|
106
106
|
def test_should_build_url_for_either_case_for_tags
|
|
107
107
|
request = YouTubeIt::Request::VideoSearch.new(:categories => { :either => [:news, :sports], :exclude => [:comedy] },
|
|
108
108
|
:tags => { :either => ['soccer', 'football', 'donkey'] })
|
|
109
|
-
assert_equal "http://gdata.youtube.com/feeds/api/videos/-/News%7CSports/-Comedy/soccer%7Cfootball%7Cdonkey
|
|
109
|
+
assert_equal "http://gdata.youtube.com/feeds/api/videos/-/News%7CSports/-Comedy/soccer%7Cfootball%7Cdonkey/?v=2", request.url
|
|
110
110
|
end
|
|
111
111
|
|
|
112
112
|
def test_should_build_url_for_query_search_with_categories_excluded
|
|
113
113
|
request = YouTubeIt::Request::VideoSearch.new(:query => 'bench press',
|
|
114
114
|
:categories => { :exclude => [:comedy, :entertainment] },
|
|
115
115
|
:max_results => 10)
|
|
116
|
-
assert_equal "http://gdata.youtube.com/feeds/api/videos/-/-Comedy/-Entertainment/?max-results=10&
|
|
116
|
+
assert_equal "http://gdata.youtube.com/feeds/api/videos/-/-Comedy/-Entertainment/?max-results=10&q=bench+press&v=2", request.url
|
|
117
117
|
end
|
|
118
118
|
|
|
119
119
|
# -- User Queries ---------------------------------------------------------------------------------
|
|
120
120
|
|
|
121
121
|
def test_should_build_url_for_videos_by_user
|
|
122
122
|
request = YouTubeIt::Request::UserSearch.new(:user => 'liz')
|
|
123
|
-
assert_equal "http://gdata.youtube.com/feeds/api/users/liz/uploads", request.url
|
|
123
|
+
assert_equal "http://gdata.youtube.com/feeds/api/users/liz/uploads?v=2", request.url
|
|
124
124
|
end
|
|
125
125
|
|
|
126
126
|
def test_should_build_url_for_videos_by_user_paginate_and_order
|
|
127
127
|
request = YouTubeIt::Request::UserSearch.new(:user => 'liz', :offset => 20, :max_results => 10, :order_by => 'published')
|
|
128
|
-
assert_equal "http://gdata.youtube.com/feeds/api/users/liz/uploads?max-results=10&orderby=published&start-index=20", request.url
|
|
128
|
+
assert_equal "http://gdata.youtube.com/feeds/api/users/liz/uploads?max-results=10&orderby=published&start-index=20&v=2", request.url
|
|
129
129
|
end
|
|
130
130
|
|
|
131
131
|
def test_should_build_url_for_favorite_videos_by_user
|
|
132
132
|
request = YouTubeIt::Request::UserSearch.new(:favorites, :user => 'liz')
|
|
133
|
-
assert_equal "http://gdata.youtube.com/feeds/api/users/liz/favorites", request.url
|
|
133
|
+
assert_equal "http://gdata.youtube.com/feeds/api/users/liz/favorites?v=2", request.url
|
|
134
134
|
end
|
|
135
135
|
|
|
136
136
|
def test_should_build_url_for_favorite_videos_by_user_paginate
|
|
137
137
|
request = YouTubeIt::Request::UserSearch.new(:favorites, :user => 'liz', :offset => 20, :max_results => 10)
|
|
138
|
-
assert_equal "http://gdata.youtube.com/feeds/api/users/liz/favorites?max-results=10&start-index=20", request.url
|
|
138
|
+
assert_equal "http://gdata.youtube.com/feeds/api/users/liz/favorites?max-results=10&start-index=20&v=2", request.url
|
|
139
139
|
end
|
|
140
140
|
end
|
|
141
|
-
|
data/youtube_it.gemspec
CHANGED
|
@@ -5,11 +5,11 @@
|
|
|
5
5
|
|
|
6
6
|
Gem::Specification.new do |s|
|
|
7
7
|
s.name = %q{youtube_it}
|
|
8
|
-
s.version = "1.
|
|
8
|
+
s.version = "1.3.0"
|
|
9
9
|
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
|
11
11
|
s.authors = ["chebyte", "kylejginavan"]
|
|
12
|
-
s.date = %q{2011-02-
|
|
12
|
+
s.date = %q{2011-02-22}
|
|
13
13
|
s.description = %q{Upload, delete, update, comment on youtube videos all from one gem.}
|
|
14
14
|
s.email = %q{kylejginavan@gmail.com}
|
|
15
15
|
s.extra_rdoc_files = [
|
|
@@ -43,7 +43,6 @@ Gem::Specification.new do |s|
|
|
|
43
43
|
"lib/youtube_it/request/video_upload.rb",
|
|
44
44
|
"lib/youtube_it/response/video_search.rb",
|
|
45
45
|
"lib/youtube_it/version.rb",
|
|
46
|
-
"pkg/youtube_it-1.2.9.gem",
|
|
47
46
|
"test/helper.rb",
|
|
48
47
|
"test/test.mov",
|
|
49
48
|
"test/test_chain_io.rb",
|
|
@@ -54,7 +53,7 @@ Gem::Specification.new do |s|
|
|
|
54
53
|
]
|
|
55
54
|
s.homepage = %q{http://github.com/kylejginavan/youtube_it}
|
|
56
55
|
s.require_paths = ["lib"]
|
|
57
|
-
s.rubygems_version = %q{1.
|
|
56
|
+
s.rubygems_version = %q{1.5.2}
|
|
58
57
|
s.summary = %q{The most complete Ruby wrapper for youtube api's}
|
|
59
58
|
s.test_files = [
|
|
60
59
|
"test/helper.rb",
|
|
@@ -65,7 +64,6 @@ Gem::Specification.new do |s|
|
|
|
65
64
|
]
|
|
66
65
|
|
|
67
66
|
if s.respond_to? :specification_version then
|
|
68
|
-
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
|
69
67
|
s.specification_version = 3
|
|
70
68
|
|
|
71
69
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
metadata
CHANGED
|
@@ -1,12 +1,8 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: youtube_it
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
prerelease:
|
|
5
|
-
|
|
6
|
-
- 1
|
|
7
|
-
- 2
|
|
8
|
-
- 10
|
|
9
|
-
version: 1.2.10
|
|
4
|
+
prerelease:
|
|
5
|
+
version: 1.3.0
|
|
10
6
|
platform: ruby
|
|
11
7
|
authors:
|
|
12
8
|
- chebyte
|
|
@@ -15,7 +11,7 @@ autorequire:
|
|
|
15
11
|
bindir: bin
|
|
16
12
|
cert_chain: []
|
|
17
13
|
|
|
18
|
-
date: 2011-02-
|
|
14
|
+
date: 2011-02-22 00:00:00 -06:00
|
|
19
15
|
default_executable:
|
|
20
16
|
dependencies:
|
|
21
17
|
- !ruby/object:Gem::Dependency
|
|
@@ -26,10 +22,6 @@ dependencies:
|
|
|
26
22
|
requirements:
|
|
27
23
|
- - ">="
|
|
28
24
|
- !ruby/object:Gem::Version
|
|
29
|
-
segments:
|
|
30
|
-
- 0
|
|
31
|
-
- 4
|
|
32
|
-
- 4
|
|
33
25
|
version: 0.4.4
|
|
34
26
|
type: :runtime
|
|
35
27
|
version_requirements: *id001
|
|
@@ -41,8 +33,6 @@ dependencies:
|
|
|
41
33
|
requirements:
|
|
42
34
|
- - ">="
|
|
43
35
|
- !ruby/object:Gem::Version
|
|
44
|
-
segments:
|
|
45
|
-
- 0
|
|
46
36
|
version: "0"
|
|
47
37
|
type: :runtime
|
|
48
38
|
version_requirements: *id002
|
|
@@ -82,7 +72,6 @@ files:
|
|
|
82
72
|
- lib/youtube_it/request/video_upload.rb
|
|
83
73
|
- lib/youtube_it/response/video_search.rb
|
|
84
74
|
- lib/youtube_it/version.rb
|
|
85
|
-
- pkg/youtube_it-1.2.9.gem
|
|
86
75
|
- test/helper.rb
|
|
87
76
|
- test/test.mov
|
|
88
77
|
- test/test_chain_io.rb
|
|
@@ -104,21 +93,17 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
104
93
|
requirements:
|
|
105
94
|
- - ">="
|
|
106
95
|
- !ruby/object:Gem::Version
|
|
107
|
-
segments:
|
|
108
|
-
- 0
|
|
109
96
|
version: "0"
|
|
110
97
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
111
98
|
none: false
|
|
112
99
|
requirements:
|
|
113
100
|
- - ">="
|
|
114
101
|
- !ruby/object:Gem::Version
|
|
115
|
-
segments:
|
|
116
|
-
- 0
|
|
117
102
|
version: "0"
|
|
118
103
|
requirements: []
|
|
119
104
|
|
|
120
105
|
rubyforge_project:
|
|
121
|
-
rubygems_version: 1.
|
|
106
|
+
rubygems_version: 1.5.2
|
|
122
107
|
signing_key:
|
|
123
108
|
specification_version: 3
|
|
124
109
|
summary: The most complete Ruby wrapper for youtube api's
|
data/pkg/youtube_it-1.2.9.gem
DELETED
|
Binary file
|