simple_youtube 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,309 @@
1
+ HTTP/1.1 200 OK
2
+
3
+ <?xml version="1.0" encoding="UTF-8"?>
4
+ <feed xmlns="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:gd="http://schemas.google.com/g/2005" xmlns:yt="http://gdata.youtube.com/schemas/2007" gd:etag="W/&quot;D0MDR389eip7ImA9WxFVFk4.&quot;">
5
+ <id>tag:youtube.com,2008:videos</id>
6
+ <updated>2010-06-15T20:57:56.162Z</updated>
7
+ <category scheme="http://schemas.google.com/g/2005#kind" term="http://gdata.youtube.com/schemas/2007#video"/>
8
+ <title>YouTube Videos matching query: ruby on rails</title>
9
+ <logo>http://www.youtube.com/img/pic_youtubelogo_123x63.gif</logo>
10
+ <link rel="alternate" type="text/html" href="http://www.youtube.com"/>
11
+ <link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://gdata.youtube.com/feeds/api/videos?v=2"/>
12
+ <link rel="http://schemas.google.com/g/2005#batch" type="application/atom+xml" href="http://gdata.youtube.com/feeds/api/videos/batch?v=2"/>
13
+ <link rel="self" type="application/atom+xml" href="http://gdata.youtube.com/feeds/api/videos?q=ruby+on+rails&amp;start-index=1&amp;max-results=5&amp;v=2"/>
14
+ <link rel="service" type="application/atomsvc+xml" href="http://gdata.youtube.com/feeds/api/videos?alt=atom-service&amp;v=2"/>
15
+ <link rel="next" type="application/atom+xml" href="http://gdata.youtube.com/feeds/api/videos?q=ruby+on+rails&amp;start-index=6&amp;max-results=5&amp;v=2"/>
16
+ <author>
17
+ <name>YouTube</name>
18
+ <uri>http://www.youtube.com/</uri>
19
+ </author>
20
+ <generator version="2.0" uri="http://gdata.youtube.com/">YouTube data API</generator>
21
+ <openSearch:totalResults>1058</openSearch:totalResults>
22
+ <openSearch:startIndex>1</openSearch:startIndex>
23
+ <openSearch:itemsPerPage>5</openSearch:itemsPerPage>
24
+ <entry gd:etag="W/&quot;DUABRH47eCp7ImA9WxFVFk0.&quot;">
25
+ <id>tag:youtube.com,2008:video:LADHwoN2LMM</id>
26
+ <published>2008-03-12T00:36:43.000Z</published>
27
+ <updated>2010-06-15T13:15:55.000Z</updated>
28
+ <category scheme="http://schemas.google.com/g/2005#kind" term="http://gdata.youtube.com/schemas/2007#video"/>
29
+ <category scheme="http://gdata.youtube.com/schemas/2007/categories.cat" term="Education" label="Education"/>
30
+ <category scheme="http://gdata.youtube.com/schemas/2007/keywords.cat" term="uc"/>
31
+ <category scheme="http://gdata.youtube.com/schemas/2007/keywords.cat" term="ucberkeley"/>
32
+ <category scheme="http://gdata.youtube.com/schemas/2007/keywords.cat" term="university"/>
33
+ <category scheme="http://gdata.youtube.com/schemas/2007/keywords.cat" term="california"/>
34
+ <category scheme="http://gdata.youtube.com/schemas/2007/keywords.cat" term="berkeley"/>
35
+ <category scheme="http://gdata.youtube.com/schemas/2007/keywords.cat" term="lecture"/>
36
+ <category scheme="http://gdata.youtube.com/schemas/2007/keywords.cat" term="computer"/>
37
+ <category scheme="http://gdata.youtube.com/schemas/2007/keywords.cat" term="science"/>
38
+ <category scheme="http://gdata.youtube.com/schemas/2007/keywords.cat" term="yt:quality=high"/>
39
+ <title>Ruby on Rails - Part 1: Hello World</title>
40
+ <content type="application/x-shockwave-flash" src="http://www.youtube.com/v/LADHwoN2LMM?f=videos&amp;app=youtube_gdata"/>
41
+ <link rel="alternate" type="text/html" href="http://www.youtube.com/watch?v=LADHwoN2LMM&amp;feature=youtube_gdata"/>
42
+ <link rel="http://gdata.youtube.com/schemas/2007#video.responses" type="application/atom+xml" href="http://gdata.youtube.com/feeds/api/videos/LADHwoN2LMM/responses?v=2"/>
43
+ <link rel="http://gdata.youtube.com/schemas/2007#video.related" type="application/atom+xml" href="http://gdata.youtube.com/feeds/api/videos/LADHwoN2LMM/related?v=2"/>
44
+ <link rel="http://gdata.youtube.com/schemas/2007#mobile" type="text/html" href="http://m.youtube.com/details?v=LADHwoN2LMM"/>
45
+ <link rel="self" type="application/atom+xml" href="http://gdata.youtube.com/feeds/api/videos/LADHwoN2LMM?v=2"/>
46
+ <author>
47
+ <name>UCBerkeleyEvents</name>
48
+ <uri>http://gdata.youtube.com/feeds/api/users/ucberkeleyevents</uri>
49
+ </author>
50
+ <yt:accessControl action="comment" permission="allowed"/>
51
+ <yt:accessControl action="commentVote" permission="allowed"/>
52
+ <yt:accessControl action="videoRespond" permission="moderated"/>
53
+ <yt:accessControl action="rate" permission="allowed"/>
54
+ <yt:accessControl action="embed" permission="allowed"/>
55
+ <yt:accessControl action="syndicate" permission="allowed"/>
56
+ <yt:accessControl action="list" permission="allowed"/>
57
+ <gd:comments>
58
+ <gd:feedLink href="http://gdata.youtube.com/feeds/api/videos/LADHwoN2LMM/comments?v=2" countHint="67"/>
59
+ </gd:comments>
60
+ <media:group>
61
+ <media:category label="Education" scheme="http://gdata.youtube.com/schemas/2007/categories.cat">Education</media:category>
62
+ <media:content url="http://www.youtube.com/v/LADHwoN2LMM?f=videos&amp;app=youtube_gdata" type="application/x-shockwave-flash" medium="video" isDefault="true" expression="full" duration="4515" yt:format="5"/>
63
+ <media:content url="rtsp://v5.cache6.c.youtube.com/CiILENy73wIaGQnDLHaDwscALBMYDSANFEgGUgZ2aWRlb3MM/0/0/0/video.3gp" type="video/3gpp" medium="video" expression="full" duration="4515" yt:format="1"/>
64
+ <media:content url="rtsp://v1.cache5.c.youtube.com/CiILENy73wIaGQnDLHaDwscALBMYESARFEgGUgZ2aWRlb3MM/0/0/0/video.3gp" type="video/3gpp" medium="video" expression="full" duration="4515" yt:format="6"/>
65
+ <media:credit role="uploader" scheme="urn:youtube" yt:type="partner">UCBerkeleyEvents</media:credit>
66
+ <media:description type="plain">Ruby on Rails Intensive 1-Day Course Part 1 - Hello World Web Apps anatomy 101, Model-View-Controller 101, Rails 101, deconstructing Hello World in Rails. This is an intensive one-day overview of the fundamental concepts of the Ruby on Rails Web programming framework, presented by the UC Berkeley RAD Lab. The overview consists of six sections of approximately one hour each. August 16, 2007 Armando Fox and UC Berkeley RAD Lab radlab.cs.berkeley.edu</media:description>
67
+ <media:keywords>uc, ucberkeley, university, california, berkeley, lecture, computer, science, yt:quality=high</media:keywords>
68
+ <media:player url="http://www.youtube.com/watch?v=LADHwoN2LMM&amp;feature=youtube_gdata"/>
69
+ <media:thumbnail url="http://i.ytimg.com/vi/LADHwoN2LMM/default.jpg" height="90" width="120" time="00:37:37.500"/>
70
+ <media:thumbnail url="http://i.ytimg.com/vi/LADHwoN2LMM/2.jpg" height="90" width="120" time="00:37:37.500"/>
71
+ <media:thumbnail url="http://i.ytimg.com/vi/LADHwoN2LMM/1.jpg" height="90" width="120" time="00:18:48.750"/>
72
+ <media:thumbnail url="http://i.ytimg.com/vi/LADHwoN2LMM/3.jpg" height="90" width="120" time="00:56:26.250"/>
73
+ <media:thumbnail url="http://i.ytimg.com/vi/LADHwoN2LMM/hqdefault.jpg" height="360" width="480"/>
74
+ <media:title type="plain">Ruby on Rails - Part 1: Hello World</media:title>
75
+ <yt:duration seconds="4515"/>
76
+ <yt:uploaded>2008-03-12T00:36:43.000Z</yt:uploaded>
77
+ <yt:videoid>LADHwoN2LMM</yt:videoid>
78
+ </media:group>
79
+ <gd:rating average="4.7006803" max="5" min="1" numRaters="147" rel="http://schemas.google.com/g/2005#overall"/>
80
+ <yt:statistics favoriteCount="732" viewCount="83060"/>
81
+ <yt:rating numDislikes="11" numLikes="136"/>
82
+ </entry>
83
+ <entry gd:etag="W/&quot;D0cGQH47eCp7ImA9WxFVFUQ.&quot;">
84
+ <id>tag:youtube.com,2008:video:Gzj723LkRJY</id>
85
+ <published>2005-11-08T07:43:19.000Z</published>
86
+ <updated>2010-06-15T09:43:41.000Z</updated>
87
+ <category scheme="http://schemas.google.com/g/2005#kind" term="http://gdata.youtube.com/schemas/2007#video"/>
88
+ <category scheme="http://gdata.youtube.com/schemas/2007/categories.cat" term="Howto" label="Howto &amp; Style"/>
89
+ <category scheme="http://gdata.youtube.com/schemas/2007/keywords.cat" term="rails"/>
90
+ <category scheme="http://gdata.youtube.com/schemas/2007/keywords.cat" term="ruby"/>
91
+ <category scheme="http://gdata.youtube.com/schemas/2007/keywords.cat" term="programming"/>
92
+ <category scheme="http://gdata.youtube.com/schemas/2007/keywords.cat" term="web"/>
93
+ <category scheme="http://gdata.youtube.com/schemas/2007/keywords.cat" term="ajax"/>
94
+ <category scheme="http://gdata.youtube.com/schemas/2007/keywords.cat" term="development"/>
95
+ <category scheme="http://gdata.youtube.com/schemas/2007/keywords.cat" term="demo"/>
96
+ <title>Ruby on Rails demo</title>
97
+ <content type="application/x-shockwave-flash" src="http://www.youtube.com/v/Gzj723LkRJY?f=videos&amp;app=youtube_gdata"/>
98
+ <link rel="alternate" type="text/html" href="http://www.youtube.com/watch?v=Gzj723LkRJY&amp;feature=youtube_gdata"/>
99
+ <link rel="http://gdata.youtube.com/schemas/2007#video.responses" type="application/atom+xml" href="http://gdata.youtube.com/feeds/api/videos/Gzj723LkRJY/responses?v=2"/>
100
+ <link rel="http://gdata.youtube.com/schemas/2007#video.related" type="application/atom+xml" href="http://gdata.youtube.com/feeds/api/videos/Gzj723LkRJY/related?v=2"/>
101
+ <link rel="self" type="application/atom+xml" href="http://gdata.youtube.com/feeds/api/videos/Gzj723LkRJY?v=2"/>
102
+ <author>
103
+ <name>tenthconcept</name>
104
+ <uri>http://gdata.youtube.com/feeds/api/users/tenthconcept</uri>
105
+ </author>
106
+ <yt:accessControl action="comment" permission="allowed"/>
107
+ <yt:accessControl action="commentVote" permission="allowed"/>
108
+ <yt:accessControl action="videoRespond" permission="moderated"/>
109
+ <yt:accessControl action="rate" permission="allowed"/>
110
+ <yt:accessControl action="embed" permission="allowed"/>
111
+ <yt:accessControl action="syndicate" permission="allowed"/>
112
+ <yt:accessControl action="list" permission="allowed"/>
113
+ <gd:comments>
114
+ <gd:feedLink href="http://gdata.youtube.com/feeds/api/videos/Gzj723LkRJY/comments?v=2" countHint="153"/>
115
+ </gd:comments>
116
+ <media:group>
117
+ <media:category label="Howto &amp; Style" scheme="http://gdata.youtube.com/schemas/2007/categories.cat">Howto</media:category>
118
+ <media:content url="http://www.youtube.com/v/Gzj723LkRJY?f=videos&amp;app=youtube_gdata" type="application/x-shockwave-flash" medium="video" isDefault="true" expression="full" duration="970" yt:format="5"/>
119
+ <media:content url="rtsp://v4.cache1.c.youtube.com/CiILENy73wIaGQmWRORy2_s4GxMYDSANFEgGUgZ2aWRlb3MM/0/0/0/video.3gp" type="video/3gpp" medium="video" expression="full" duration="970" yt:format="1"/>
120
+ <media:content url="rtsp://v4.cache6.c.youtube.com/CiILENy73wIaGQmWRORy2_s4GxMYESARFEgGUgZ2aWRlb3MM/0/0/0/video.3gp" type="video/3gpp" medium="video" expression="full" duration="970" yt:format="6"/>
121
+ <media:credit role="uploader" scheme="urn:youtube">tenthconcept</media:credit>
122
+ <media:description type="plain">David Heinemeier Hansson, the creator of the Ruby on Rails web development framework demonstrates how to create a blog engine in 15 minutes.</media:description>
123
+ <media:keywords>rails, ruby, programming, web, ajax, development, demo</media:keywords>
124
+ <media:player url="http://www.youtube.com/watch?v=Gzj723LkRJY&amp;feature=youtube_gdata"/>
125
+ <media:thumbnail url="http://i.ytimg.com/vi/Gzj723LkRJY/default.jpg" height="90" width="120" time="00:08:05"/>
126
+ <media:thumbnail url="http://i.ytimg.com/vi/Gzj723LkRJY/2.jpg" height="90" width="120" time="00:08:05"/>
127
+ <media:thumbnail url="http://i.ytimg.com/vi/Gzj723LkRJY/1.jpg" height="90" width="120" time="00:04:02.500"/>
128
+ <media:thumbnail url="http://i.ytimg.com/vi/Gzj723LkRJY/3.jpg" height="90" width="120" time="00:12:07.500"/>
129
+ <media:thumbnail url="http://i.ytimg.com/vi/Gzj723LkRJY/hqdefault.jpg" height="360" width="480"/>
130
+ <media:title type="plain">Ruby on Rails demo</media:title>
131
+ <yt:duration seconds="970"/>
132
+ <yt:uploaded>2005-11-08T07:43:19.000Z</yt:uploaded>
133
+ <yt:videoid>Gzj723LkRJY</yt:videoid>
134
+ </media:group>
135
+ <gd:rating average="4.224138" max="5" min="1" numRaters="116" rel="http://schemas.google.com/g/2005#overall"/>
136
+ <yt:statistics favoriteCount="293" viewCount="142604"/>
137
+ <yt:rating numDislikes="23" numLikes="93"/>
138
+ </entry>
139
+ <entry gd:etag="W/&quot;D0IHRn47eCp7ImA9WxFVFUs.&quot;">
140
+ <id>tag:youtube.com,2008:video:PQbuyKUaKFo</id>
141
+ <published>2007-05-14T03:47:52.000Z</published>
142
+ <updated>2010-06-15T01:32:17.000Z</updated>
143
+ <category scheme="http://schemas.google.com/g/2005#kind" term="http://gdata.youtube.com/schemas/2007#video"/>
144
+ <category scheme="http://gdata.youtube.com/schemas/2007/categories.cat" term="Comedy" label="Comedy"/>
145
+ <category scheme="http://gdata.youtube.com/schemas/2007/keywords.cat" term="railsenvy"/>
146
+ <category scheme="http://gdata.youtube.com/schemas/2007/keywords.cat" term="ruby"/>
147
+ <category scheme="http://gdata.youtube.com/schemas/2007/keywords.cat" term="rubyonrails"/>
148
+ <category scheme="http://gdata.youtube.com/schemas/2007/keywords.cat" term="parody"/>
149
+ <title>Ruby on Rails vs Java - Commercial #1 of 9</title>
150
+ <content type="application/x-shockwave-flash" src="http://www.youtube.com/v/PQbuyKUaKFo?f=videos&amp;app=youtube_gdata"/>
151
+ <link rel="alternate" type="text/html" href="http://www.youtube.com/watch?v=PQbuyKUaKFo&amp;feature=youtube_gdata"/>
152
+ <link rel="http://gdata.youtube.com/schemas/2007#video.responses" type="application/atom+xml" href="http://gdata.youtube.com/feeds/api/videos/PQbuyKUaKFo/responses?v=2"/>
153
+ <link rel="http://gdata.youtube.com/schemas/2007#video.related" type="application/atom+xml" href="http://gdata.youtube.com/feeds/api/videos/PQbuyKUaKFo/related?v=2"/>
154
+ <link rel="http://gdata.youtube.com/schemas/2007#mobile" type="text/html" href="http://m.youtube.com/details?v=PQbuyKUaKFo"/>
155
+ <link rel="self" type="application/atom+xml" href="http://gdata.youtube.com/feeds/api/videos/PQbuyKUaKFo?v=2"/>
156
+ <author>
157
+ <name>envyads</name>
158
+ <uri>http://gdata.youtube.com/feeds/api/users/envyads</uri>
159
+ </author>
160
+ <yt:accessControl action="comment" permission="allowed"/>
161
+ <yt:accessControl action="commentVote" permission="allowed"/>
162
+ <yt:accessControl action="videoRespond" permission="moderated"/>
163
+ <yt:accessControl action="rate" permission="allowed"/>
164
+ <yt:accessControl action="embed" permission="allowed"/>
165
+ <yt:accessControl action="syndicate" permission="allowed"/>
166
+ <yt:accessControl action="list" permission="allowed"/>
167
+ <gd:comments>
168
+ <gd:feedLink href="http://gdata.youtube.com/feeds/api/videos/PQbuyKUaKFo/comments?v=2" countHint="400"/>
169
+ </gd:comments>
170
+ <yt:location>Orlando, FL</yt:location>
171
+ <media:group>
172
+ <media:category label="Comedy" scheme="http://gdata.youtube.com/schemas/2007/categories.cat">Comedy</media:category>
173
+ <media:content url="http://www.youtube.com/v/PQbuyKUaKFo?f=videos&amp;app=youtube_gdata" type="application/x-shockwave-flash" medium="video" isDefault="true" expression="full" duration="51" yt:format="5"/>
174
+ <media:content url="rtsp://v8.cache3.c.youtube.com/CiILENy73wIaGQlaKBqlyO4GPRMYDSANFEgGUgZ2aWRlb3MM/0/0/0/video.3gp" type="video/3gpp" medium="video" expression="full" duration="51" yt:format="1"/>
175
+ <media:content url="rtsp://v6.cache5.c.youtube.com/CiILENy73wIaGQlaKBqlyO4GPRMYESARFEgGUgZ2aWRlb3MM/0/0/0/video.3gp" type="video/3gpp" medium="video" expression="full" duration="51" yt:format="6"/>
176
+ <media:credit role="uploader" scheme="urn:youtube">envyads</media:credit>
177
+ <media:description type="plain">Gregg Pollack from EnvyLabs.com and Jason Seifer from http do some Ruby on Rails commercials in the same style of the Mac vs PC ads. Videos produced by Jason Hawkins of MakeFilmWork.com.</media:description>
178
+ <media:keywords>railsenvy, ruby, rubyonrails, parody</media:keywords>
179
+ <media:player url="http://www.youtube.com/watch?v=PQbuyKUaKFo&amp;feature=youtube_gdata"/>
180
+ <media:thumbnail url="http://i.ytimg.com/vi/PQbuyKUaKFo/default.jpg" height="90" width="120" time="00:00:25.500"/>
181
+ <media:thumbnail url="http://i.ytimg.com/vi/PQbuyKUaKFo/2.jpg" height="90" width="120" time="00:00:25.500"/>
182
+ <media:thumbnail url="http://i.ytimg.com/vi/PQbuyKUaKFo/1.jpg" height="90" width="120" time="00:00:12.750"/>
183
+ <media:thumbnail url="http://i.ytimg.com/vi/PQbuyKUaKFo/3.jpg" height="90" width="120" time="00:00:38.250"/>
184
+ <media:thumbnail url="http://i.ytimg.com/vi/PQbuyKUaKFo/hqdefault.jpg" height="360" width="480"/>
185
+ <media:title type="plain">Ruby on Rails vs Java - Commercial #1 of 9</media:title>
186
+ <yt:duration seconds="51"/>
187
+ <yt:uploaded>2007-05-14T03:47:52.000Z</yt:uploaded>
188
+ <yt:videoid>PQbuyKUaKFo</yt:videoid>
189
+ </media:group>
190
+ <gd:rating average="4.045977" max="5" min="1" numRaters="522" rel="http://schemas.google.com/g/2005#overall"/>
191
+ <yt:statistics favoriteCount="508" viewCount="413565"/>
192
+ <yt:rating numDislikes="124" numLikes="398"/>
193
+ </entry>
194
+ <entry gd:etag="W/&quot;DEUERn47eCp7ImA9WxFVFUs.&quot;">
195
+ <id>tag:youtube.com,2008:video:UCB57Npj9U0</id>
196
+ <published>2008-03-12T00:42:44.000Z</published>
197
+ <updated>2010-06-15T01:43:27.000Z</updated>
198
+ <category scheme="http://schemas.google.com/g/2005#kind" term="http://gdata.youtube.com/schemas/2007#video"/>
199
+ <category scheme="http://gdata.youtube.com/schemas/2007/categories.cat" term="Education" label="Education"/>
200
+ <category scheme="http://gdata.youtube.com/schemas/2007/keywords.cat" term="uc"/>
201
+ <category scheme="http://gdata.youtube.com/schemas/2007/keywords.cat" term="ucberkeley"/>
202
+ <category scheme="http://gdata.youtube.com/schemas/2007/keywords.cat" term="university"/>
203
+ <category scheme="http://gdata.youtube.com/schemas/2007/keywords.cat" term="california"/>
204
+ <category scheme="http://gdata.youtube.com/schemas/2007/keywords.cat" term="berkeley"/>
205
+ <category scheme="http://gdata.youtube.com/schemas/2007/keywords.cat" term="lecture"/>
206
+ <category scheme="http://gdata.youtube.com/schemas/2007/keywords.cat" term="computer"/>
207
+ <category scheme="http://gdata.youtube.com/schemas/2007/keywords.cat" term="science"/>
208
+ <category scheme="http://gdata.youtube.com/schemas/2007/keywords.cat" term="yt:quality=high"/>
209
+ <title>Ruby on Rails - Part 2: Just Enough Ruby</title>
210
+ <content type="application/x-shockwave-flash" src="http://www.youtube.com/v/UCB57Npj9U0?f=videos&amp;app=youtube_gdata"/>
211
+ <link rel="alternate" type="text/html" href="http://www.youtube.com/watch?v=UCB57Npj9U0&amp;feature=youtube_gdata"/>
212
+ <link rel="http://gdata.youtube.com/schemas/2007#video.responses" type="application/atom+xml" href="http://gdata.youtube.com/feeds/api/videos/UCB57Npj9U0/responses?v=2"/>
213
+ <link rel="http://gdata.youtube.com/schemas/2007#video.related" type="application/atom+xml" href="http://gdata.youtube.com/feeds/api/videos/UCB57Npj9U0/related?v=2"/>
214
+ <link rel="http://gdata.youtube.com/schemas/2007#mobile" type="text/html" href="http://m.youtube.com/details?v=UCB57Npj9U0"/>
215
+ <link rel="self" type="application/atom+xml" href="http://gdata.youtube.com/feeds/api/videos/UCB57Npj9U0?v=2"/>
216
+ <author>
217
+ <name>UCBerkeleyEvents</name>
218
+ <uri>http://gdata.youtube.com/feeds/api/users/ucberkeleyevents</uri>
219
+ </author>
220
+ <yt:accessControl action="comment" permission="allowed"/>
221
+ <yt:accessControl action="commentVote" permission="allowed"/>
222
+ <yt:accessControl action="videoRespond" permission="moderated"/>
223
+ <yt:accessControl action="rate" permission="allowed"/>
224
+ <yt:accessControl action="embed" permission="allowed"/>
225
+ <yt:accessControl action="syndicate" permission="allowed"/>
226
+ <yt:accessControl action="list" permission="allowed"/>
227
+ <gd:comments>
228
+ <gd:feedLink href="http://gdata.youtube.com/feeds/api/videos/UCB57Npj9U0/comments?v=2" countHint="9"/>
229
+ </gd:comments>
230
+ <media:group>
231
+ <media:category label="Education" scheme="http://gdata.youtube.com/schemas/2007/categories.cat">Education</media:category>
232
+ <media:content url="http://www.youtube.com/v/UCB57Npj9U0?f=videos&amp;app=youtube_gdata" type="application/x-shockwave-flash" medium="video" isDefault="true" expression="full" duration="5717" yt:format="5"/>
233
+ <media:content url="rtsp://v8.cache8.c.youtube.com/CiILENy73wIaGQlN9WPa7HkgUBMYDSANFEgGUgZ2aWRlb3MM/0/0/0/video.3gp" type="video/3gpp" medium="video" expression="full" duration="5717" yt:format="1"/>
234
+ <media:content url="rtsp://v8.cache7.c.youtube.com/CiILENy73wIaGQlN9WPa7HkgUBMYESARFEgGUgZ2aWRlb3MM/0/0/0/video.3gp" type="video/3gpp" medium="video" expression="full" duration="5717" yt:format="6"/>
235
+ <media:credit role="uploader" scheme="urn:youtube" yt:type="partner">UCBerkeleyEvents</media:credit>
236
+ <media:description type="plain">Ruby on Rails Intensive 1-Day Course Part 2: Just Enough Ruby object orientation, naming conventions, mixins and modules (a/k/a multiple inheritance done right), iterators and generators. This is an intensive one-day overview of the fundamental concepts of the Ruby on Rails Web programming framework, presented by the UC Berkeley RAD Lab. The overview consists of six sections of approximately one hour each. August 16, 2007 William Sobel and UC Berkeley RAD Lab radlab.cs.berkeley.edu</media:description>
237
+ <media:keywords>uc, ucberkeley, university, california, berkeley, lecture, computer, science, yt:quality=high</media:keywords>
238
+ <media:player url="http://www.youtube.com/watch?v=UCB57Npj9U0&amp;feature=youtube_gdata"/>
239
+ <media:thumbnail url="http://i.ytimg.com/vi/UCB57Npj9U0/default.jpg" height="90" width="120" time="00:47:38.500"/>
240
+ <media:thumbnail url="http://i.ytimg.com/vi/UCB57Npj9U0/2.jpg" height="90" width="120" time="00:47:38.500"/>
241
+ <media:thumbnail url="http://i.ytimg.com/vi/UCB57Npj9U0/1.jpg" height="90" width="120" time="00:23:49.250"/>
242
+ <media:thumbnail url="http://i.ytimg.com/vi/UCB57Npj9U0/3.jpg" height="90" width="120" time="01:11:27.750"/>
243
+ <media:thumbnail url="http://i.ytimg.com/vi/UCB57Npj9U0/hqdefault.jpg" height="360" width="480"/>
244
+ <media:title type="plain">Ruby on Rails - Part 2: Just Enough Ruby</media:title>
245
+ <yt:duration seconds="5717"/>
246
+ <yt:uploaded>2008-03-12T00:42:44.000Z</yt:uploaded>
247
+ <yt:videoid>UCB57Npj9U0</yt:videoid>
248
+ </media:group>
249
+ <gd:rating average="4.6976743" max="5" min="1" numRaters="43" rel="http://schemas.google.com/g/2005#overall"/>
250
+ <yt:statistics favoriteCount="162" viewCount="19702"/>
251
+ <yt:rating numDislikes="3" numLikes="40"/>
252
+ </entry>
253
+ <entry gd:etag="W/&quot;DkQESH47eCp7ImA9WxFVFUo.&quot;">
254
+ <id>tag:youtube.com,2008:video:sb2xzeWf-PM</id>
255
+ <published>2008-08-19T04:21:17.000Z</published>
256
+ <updated>2010-06-15T03:58:29.000Z</updated>
257
+ <category scheme="http://schemas.google.com/g/2005#kind" term="http://gdata.youtube.com/schemas/2007#video"/>
258
+ <category scheme="http://gdata.youtube.com/schemas/2007/categories.cat" term="Tech" label="Science &amp; Technology"/>
259
+ <category scheme="http://gdata.youtube.com/schemas/2007/keywords.cat" term="rails"/>
260
+ <category scheme="http://gdata.youtube.com/schemas/2007/keywords.cat" term="business"/>
261
+ <category scheme="http://gdata.youtube.com/schemas/2007/keywords.cat" term="startup"/>
262
+ <category scheme="http://gdata.youtube.com/schemas/2007/keywords.cat" term="chicago"/>
263
+ <category scheme="http://gdata.youtube.com/schemas/2007/keywords.cat" term="tmo9d"/>
264
+ <category scheme="http://gdata.youtube.com/schemas/2007/keywords.cat" term="oreillynews"/>
265
+ <title>David Heinemeier Hansson - Ruby on Rails, Startups, Culture</title>
266
+ <content type="application/x-shockwave-flash" src="http://www.youtube.com/v/sb2xzeWf-PM?f=videos&amp;app=youtube_gdata"/>
267
+ <link rel="alternate" type="text/html" href="http://www.youtube.com/watch?v=sb2xzeWf-PM&amp;feature=youtube_gdata"/>
268
+ <link rel="http://gdata.youtube.com/schemas/2007#video.responses" type="application/atom+xml" href="http://gdata.youtube.com/feeds/api/videos/sb2xzeWf-PM/responses?v=2"/>
269
+ <link rel="http://gdata.youtube.com/schemas/2007#video.related" type="application/atom+xml" href="http://gdata.youtube.com/feeds/api/videos/sb2xzeWf-PM/related?v=2"/>
270
+ <link rel="self" type="application/atom+xml" href="http://gdata.youtube.com/feeds/api/videos/sb2xzeWf-PM?v=2"/>
271
+ <author>
272
+ <name>OreillyMedia</name>
273
+ <uri>http://gdata.youtube.com/feeds/api/users/oreillymedia</uri>
274
+ </author>
275
+ <yt:accessControl action="comment" permission="allowed"/>
276
+ <yt:accessControl action="commentVote" permission="allowed"/>
277
+ <yt:accessControl action="videoRespond" permission="allowed"/>
278
+ <yt:accessControl action="rate" permission="allowed"/>
279
+ <yt:accessControl action="embed" permission="allowed"/>
280
+ <yt:accessControl action="syndicate" permission="allowed"/>
281
+ <yt:accessControl action="list" permission="allowed"/>
282
+ <gd:comments>
283
+ <gd:feedLink href="http://gdata.youtube.com/feeds/api/videos/sb2xzeWf-PM/comments?v=2" countHint="31"/>
284
+ </gd:comments>
285
+ <yt:location>Wicker Park, Chicago, IL</yt:location>
286
+ <media:group>
287
+ <media:category label="Science &amp; Technology" scheme="http://gdata.youtube.com/schemas/2007/categories.cat">Tech</media:category>
288
+ <media:content url="http://www.youtube.com/v/sb2xzeWf-PM?f=videos&amp;app=youtube_gdata" type="application/x-shockwave-flash" medium="video" isDefault="true" expression="full" duration="1789" yt:format="5"/>
289
+ <media:content url="rtsp://v6.cache8.c.youtube.com/CiILENy73wIaGQnz-J_lzbG9sRMYDSANFEgGUgZ2aWRlb3MM/0/0/0/video.3gp" type="video/3gpp" medium="video" expression="full" duration="1789" yt:format="1"/>
290
+ <media:content url="rtsp://v4.cache5.c.youtube.com/CiILENy73wIaGQnz-J_lzbG9sRMYESARFEgGUgZ2aWRlb3MM/0/0/0/video.3gp" type="video/3gpp" medium="video" expression="full" duration="1789" yt:format="6"/>
291
+ <media:credit role="uploader" scheme="urn:youtube">OreillyMedia</media:credit>
292
+ <media:description type="plain">Article and Transcript: news.oreilly.com O'Reilly News talks to David Heinemeier Hansson about the current state of Ruby on Rails, what is next for the framework? and what Hansson is paying attention to? David also discusses his recent presentation at Y! Combinator's Startup School and his ideas about the culture of technology and innovation. If you want to hear more of Hansson, he will be speaking at RailsConf Europe this December in Berlin. Register Today: en.oreilly.com Copyright 2008 O'Reilly News. All Rights Reserved. Filmed in Chicago, IL by Tim O'Brien.</media:description>
293
+ <media:keywords>rails, business, startup, chicago, tmo9d, oreillynews</media:keywords>
294
+ <media:player url="http://www.youtube.com/watch?v=sb2xzeWf-PM&amp;feature=youtube_gdata"/>
295
+ <media:thumbnail url="http://i.ytimg.com/vi/sb2xzeWf-PM/default.jpg" height="90" width="120" time="00:14:54.500"/>
296
+ <media:thumbnail url="http://i.ytimg.com/vi/sb2xzeWf-PM/2.jpg" height="90" width="120" time="00:14:54.500"/>
297
+ <media:thumbnail url="http://i.ytimg.com/vi/sb2xzeWf-PM/1.jpg" height="90" width="120" time="00:07:27.250"/>
298
+ <media:thumbnail url="http://i.ytimg.com/vi/sb2xzeWf-PM/3.jpg" height="90" width="120" time="00:22:21.750"/>
299
+ <media:thumbnail url="http://i.ytimg.com/vi/sb2xzeWf-PM/hqdefault.jpg" height="360" width="480"/>
300
+ <media:title type="plain">David Heinemeier Hansson - Ruby on Rails, Startups, Culture</media:title>
301
+ <yt:duration seconds="1789"/>
302
+ <yt:uploaded>2008-08-19T04:21:17.000Z</yt:uploaded>
303
+ <yt:videoid>sb2xzeWf-PM</yt:videoid>
304
+ </media:group>
305
+ <gd:rating average="4.9183674" max="5" min="1" numRaters="49" rel="http://schemas.google.com/g/2005#overall"/>
306
+ <yt:statistics favoriteCount="106" viewCount="15852"/>
307
+ <yt:rating numDislikes="1" numLikes="48"/>
308
+ </entry>
309
+ </feed>
@@ -0,0 +1,108 @@
1
+ require "test/unit"
2
+ require File.dirname(__FILE__) + "/../lib/" + "simple_youtube"
3
+ require File.dirname(__FILE__) + "/fakeweb_helper"
4
+
5
+ class YoutubeTest < Test::Unit::TestCase
6
+
7
+ include FakewebHelper
8
+
9
+ def test_video
10
+ ## search for top 5 'ruby on rails' videos
11
+ stub_get('http://gdata.youtube.com/feeds/api/videos?q=ruby+on+rails&max-results=5&v=2', 'video_search.xml')
12
+ video_search = Youtube::Video.find(:params => {:q => 'ruby on rails', :"max-results" => '5', :v => '2'})
13
+ assert_equal(5, video_search.entry.size)
14
+ assert_equal("YouTube Videos matching query: ruby on rails", video_search.title)
15
+ assert_equal("http://gdata.youtube.com/feeds/api/videos/UCB57Npj9U0/responses?v=2", video_search.entry[3].link[1].href)
16
+
17
+ ## search for related videos
18
+ stub_get('http://gdata.youtube.com/feeds/api/videos/rFVHjZYoq4Q/related?v=2', 'video_related.xml')
19
+ video_related = Youtube::Video.find(:scope => 'rFVHjZYoq4Q', :type => 'related', :params => {:v => '2'})
20
+ assert_equal(25, video_related.entry.size)
21
+ assert_equal("http://gdata.youtube.com/feeds/api/users/neodracco", video_related.entry[24].author.uri)
22
+
23
+ ## search for video responses
24
+ stub_get('http://gdata.youtube.com/feeds/api/videos/rFVHjZYoq4Q/responses?v=2', 'video_responses.xml')
25
+ video_responses = Youtube::Video.find(:scope => 'rFVHjZYoq4Q', :type => 'responses', :params => {:v => '2'})
26
+ assert_equal("Music", video_responses.entry[1].group.category)
27
+
28
+ ## search for video comments
29
+ stub_get('http://gdata.youtube.com/feeds/api/videos/rFVHjZYoq4Q/comments?v=2', 'video_comments.xml')
30
+ video_comments = Youtube::Video.find(:scope => 'rFVHjZYoq4Q', :type => 'comments', :params => {:v => '2'})
31
+ assert_equal("Come up to my first ever e on this about 14-15 years ago, ahh too long...", video_comments.entry[0].content)
32
+
33
+ ## search for top 11 videos in Comedy category/tag
34
+ stub_get('http://gdata.youtube.com/feeds/api/videos?category=Comedy&max-results=11&v=2', 'video_category_comedy.xml')
35
+ video_category = Youtube::Video.find(:params => {:category => 'Comedy', :"max-results" => '11', :v => '2'})
36
+ assert_equal(11, video_category.entry.size)
37
+ assert_equal("Harry Potter", video_category.entry[9].category[2].term)
38
+ assert_equal("Comedy", video_category.entry[0].category[1].term)
39
+
40
+ ## search for top 5 videos in Comedy category/tag, excluding Film category/tag
41
+ stub_get('http://gdata.youtube.com/feeds/api/videos?category=Comedy%2C-Film&max-results=5&v=2', 'video_category_comedy_exclude_film.xml')
42
+ video_category_comedy_exclude_film = Youtube::Video.find(:params => {:category => 'Comedy,-Film', :"max-results" => '5', :v => '2'})
43
+ assert_equal(18, video_category_comedy_exclude_film.entry[1].category.size)
44
+ video_category_comedy_exclude_film.entry[1].category.each { |category|
45
+ assert_not_equal("Film", category.term)
46
+ }
47
+
48
+ ## search for videos in david, beckham,(News or Sports) category/tags
49
+ stub_get('http://gdata.youtube.com/feeds/api/videos?category=david%2Cbeckham%2CNews%7CSports&v=2', 'video_category_david_beckham_news_or_sports.xml')
50
+ video_category_david_beckham_news_or_sports = Youtube::Video.find(:params => {:category => 'david,beckham,News|Sports', :v => '2'})
51
+ assert_equal("Sports", video_category_david_beckham_news_or_sports.entry[7].category[1].label)
52
+ assert_equal("david", video_category_david_beckham_news_or_sports.entry[7].category[2].term)
53
+ assert_equal("beckham", video_category_david_beckham_news_or_sports.entry[7].category[3].term)
54
+ assert_equal("News", video_category_david_beckham_news_or_sports.entry[8].category[1].term)
55
+ assert_equal("David Beckham", video_category_david_beckham_news_or_sports.entry[8].category[9].term)
56
+ end
57
+
58
+ def test_standardfeed
59
+ ## search for top rated videos from today
60
+ stub_get('http://gdata.youtube.com/feeds/api/standardfeeds/top_rated?time=today&v=2', 'standardfeed_toprated_today.xml')
61
+ standardfeed_topratedtoday = Youtube::Standardfeed.find(:type => 'top_rated', :params => {:time => 'today', :v => '2'})
62
+ assert_equal("ZOMGitsCriss", standardfeed_topratedtoday.entry[16].author.name)
63
+
64
+ ## search for top rated videos from jp
65
+ stub_get('http://gdata.youtube.com/feeds/api/standardfeeds/JP/top_rated?v=2', 'standardfeed_toprated_jp.xml')
66
+ standardfeed_toprated_jp = Youtube::Standardfeed.find(:scope => 'JP', :type => 'top_rated', :params => {:v => '2'})
67
+ assert_equal("tag:youtube.com,2008:standardfeed:jp:top_rated", standardfeed_toprated_jp.id)
68
+ assert_equal("http://gdata.youtube.com/feeds/api/standardfeeds/jp/top_rated/v/BQ9YtJC-Kd8?v=2", standardfeed_toprated_jp.entry[1].link[4].href)
69
+
70
+ ## search for top rated comedy videos from jp
71
+ stub_get('http://gdata.youtube.com/feeds/api/standardfeeds/JP/top_rated?category=Comedy&max-results=11&v=2', 'standardfeed_toprated_jp_comedy.xml')
72
+ standardfeed_toprated_jp_comedy = Youtube::Standardfeed.find(:scope => 'JP', :type => 'top_rated', :params => {:category => 'Comedy', :"max-results" => '11', :v => '2'})
73
+ assert_equal("http://gdata.youtube.com/feeds/api/standardfeeds/jp/top_rated/v/7hYGkqc1gqE?v=2", standardfeed_toprated_jp_comedy.entry[1].link[4].href)
74
+ end
75
+
76
+ def test_user
77
+ ## search for ionysis favourite videos
78
+ stub_get('http://gdata.youtube.com/feeds/api/users/ionysis/favorites?v=2', 'user_ionysis_favourites.xml')
79
+ user_ionysis_favourites = Youtube::User.find(:scope => 'ionysis', :type => 'favorites', :params => {:v => '2'})
80
+ #assert_equal("9586", user_ionysis_favourites.entry[7].statistics.favoriteCount)
81
+ #assert_equal("2568", user_ionysis_favourites.entry[7].rating[1].numLikes)
82
+
83
+ ## search for cyanure1982 playlists
84
+ stub_get('http://gdata.youtube.com/feeds/api/users/cyanure1982/playlists?v=2', 'user_cyanure1982_playlists.xml')
85
+ user_cyanure1982_playlists = Youtube::User.find(:scope => 'cyanure1982', :type => 'playlists', :params => {:v => '2'})
86
+ assert_equal("shinnenkai", user_cyanure1982_playlists.entry[2].title)
87
+
88
+ ## search for ionysis subscriptions
89
+ stub_get('http://gdata.youtube.com/feeds/api/users/ionysis/subscriptions?v=2', 'user_ionysis_subscriptions.xml')
90
+ user_ionysis_subscriptions = Youtube::User.find(:scope => 'ionysis', :type => 'subscriptions', :params => {:v => '2'})
91
+ assert_equal("Videos published by : vinyljunkie07", user_ionysis_subscriptions.entry[0].title)
92
+
93
+ ## search for vinyljunkie07 contacts
94
+ stub_get('http://gdata.youtube.com/feeds/api/users/vinyljunkie07/contacts?v=2', 'user_vinyljunkie07_contacts.xml')
95
+ user_vinyljunkie07_contacts = Youtube::User.find(:scope => 'vinyljunkie07', :type => 'contacts', :params => {:v => '2'})
96
+ assert_equal("tag:youtube.com,2008:user:vinyljunkie07:contact:CrackerSchool", user_vinyljunkie07_contacts.entry[18].id)
97
+ end
98
+
99
+ def test_playlist
100
+ ## search for the cyanure1982 playlist - shinnenkai(D00BDE6AA710D50C)
101
+ stub_get('http://gdata.youtube.com/feeds/api/playlists/D00BDE6AA710D50C?max-results=14&v=2', 'playlist_cyanure1982.xml')
102
+ playlist_cyanure1982 = Youtube::Playlist.find(:scope => 'D00BDE6AA710D50C', :params => {:"max-results" => '14', :v => '2'})
103
+ assert_equal(14, playlist_cyanure1982.entry.size)
104
+ assert_equal("nu, jazz, club, house, Jazztronik, dj, Yukihiro, Fukutomi, Mondo, Grosso, Daishi, Dance, FreeTEMPO, FPM, KJM, Kentaro, Takizawa",
105
+ playlist_cyanure1982.entry[7].group.keywords)
106
+ end
107
+
108
+ end
metadata ADDED
@@ -0,0 +1,150 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: simple_youtube
3
+ version: !ruby/object:Gem::Version
4
+ hash: 23
5
+ prerelease: false
6
+ segments:
7
+ - 1
8
+ - 0
9
+ - 0
10
+ version: 1.0.0
11
+ platform: ruby
12
+ authors:
13
+ - James Shipton
14
+ autorequire:
15
+ bindir: bin
16
+ cert_chain: []
17
+
18
+ date: 2010-07-01 00:00:00 +01:00
19
+ default_executable:
20
+ dependencies:
21
+ - !ruby/object:Gem::Dependency
22
+ name: active_resource
23
+ prerelease: false
24
+ requirement: &id001 !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ hash: 9
30
+ segments:
31
+ - 2
32
+ - 3
33
+ - 5
34
+ version: 2.3.5
35
+ type: :runtime
36
+ version_requirements: *id001
37
+ - !ruby/object:Gem::Dependency
38
+ name: fakeweb
39
+ prerelease: false
40
+ requirement: &id002 !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ">="
44
+ - !ruby/object:Gem::Version
45
+ hash: 15
46
+ segments:
47
+ - 1
48
+ - 2
49
+ - 8
50
+ version: 1.2.8
51
+ type: :development
52
+ version_requirements: *id002
53
+ - !ruby/object:Gem::Dependency
54
+ name: test-unit
55
+ prerelease: false
56
+ requirement: &id003 !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ hash: 25
62
+ segments:
63
+ - 1
64
+ - 2
65
+ - 3
66
+ version: 1.2.3
67
+ type: :development
68
+ version_requirements: *id003
69
+ description: ActiveResource extension to Youtube API gdata, Read only, no Create, Update, Delete access and no API Key required.
70
+ email:
71
+ - ionysis@gmail.com
72
+ executables: []
73
+
74
+ extensions: []
75
+
76
+ extra_rdoc_files: []
77
+
78
+ files:
79
+ - lib/simple_youtube/activeyoutube.rb
80
+ - lib/simple_youtube/youtube.rb
81
+ - lib/simple_youtube.rb
82
+ - test/fakeweb_helper.rb
83
+ - test/fixture/playlist_cyanure1982.xml
84
+ - test/fixture/standardfeed_toprated_jp.xml
85
+ - test/fixture/standardfeed_toprated_jp_comedy.xml
86
+ - test/fixture/standardfeed_toprated_today.xml
87
+ - test/fixture/user_cyanure1982_playlists.xml
88
+ - test/fixture/user_ionysis_favourites.xml
89
+ - test/fixture/user_ionysis_subscriptions.xml
90
+ - test/fixture/user_vinyljunkie07_contacts.xml
91
+ - test/fixture/video_category_comedy.xml
92
+ - test/fixture/video_category_comedy_exclude_film.xml
93
+ - test/fixture/video_category_david_beckham_news_or_sports.xml
94
+ - test/fixture/video_comments.xml
95
+ - test/fixture/video_related.xml
96
+ - test/fixture/video_responses.xml
97
+ - test/fixture/video_search.xml
98
+ - test/youtube_test.rb
99
+ has_rdoc: true
100
+ homepage: http://github.com/ionysis/simple_youtube
101
+ licenses: []
102
+
103
+ post_install_message:
104
+ rdoc_options: []
105
+
106
+ require_paths:
107
+ - lib
108
+ required_ruby_version: !ruby/object:Gem::Requirement
109
+ none: false
110
+ requirements:
111
+ - - ">="
112
+ - !ruby/object:Gem::Version
113
+ hash: 3
114
+ segments:
115
+ - 0
116
+ version: "0"
117
+ required_rubygems_version: !ruby/object:Gem::Requirement
118
+ none: false
119
+ requirements:
120
+ - - ">="
121
+ - !ruby/object:Gem::Version
122
+ hash: 3
123
+ segments:
124
+ - 0
125
+ version: "0"
126
+ requirements: []
127
+
128
+ rubyforge_project:
129
+ rubygems_version: 1.3.7
130
+ signing_key:
131
+ specification_version: 3
132
+ summary: ActiveResource extension to Youtube API gdata.
133
+ test_files:
134
+ - test/fakeweb_helper.rb
135
+ - test/fixture/playlist_cyanure1982.xml
136
+ - test/fixture/standardfeed_toprated_jp.xml
137
+ - test/fixture/standardfeed_toprated_jp_comedy.xml
138
+ - test/fixture/standardfeed_toprated_today.xml
139
+ - test/fixture/user_cyanure1982_playlists.xml
140
+ - test/fixture/user_ionysis_favourites.xml
141
+ - test/fixture/user_ionysis_subscriptions.xml
142
+ - test/fixture/user_vinyljunkie07_contacts.xml
143
+ - test/fixture/video_category_comedy.xml
144
+ - test/fixture/video_category_comedy_exclude_film.xml
145
+ - test/fixture/video_category_david_beckham_news_or_sports.xml
146
+ - test/fixture/video_comments.xml
147
+ - test/fixture/video_related.xml
148
+ - test/fixture/video_responses.xml
149
+ - test/fixture/video_search.xml
150
+ - test/youtube_test.rb