episodic-platform 0.9

Sign up to get free protection for your applications and to get access to all the features.
Files changed (36) hide show
  1. data/History.txt +4 -0
  2. data/Manifest.txt +35 -0
  3. data/PostInstall.txt +7 -0
  4. data/README.rdoc +86 -0
  5. data/Rakefile +45 -0
  6. data/lib/episodic/platform.rb +82 -0
  7. data/lib/episodic/platform/analytics_methods.rb +190 -0
  8. data/lib/episodic/platform/base.rb +64 -0
  9. data/lib/episodic/platform/collection_response.rb +45 -0
  10. data/lib/episodic/platform/connection.rb +305 -0
  11. data/lib/episodic/platform/exceptions.rb +105 -0
  12. data/lib/episodic/platform/query_methods.rb +721 -0
  13. data/lib/episodic/platform/response.rb +94 -0
  14. data/lib/episodic/platform/write_methods.rb +446 -0
  15. data/script/console +10 -0
  16. data/script/destroy +14 -0
  17. data/script/generate +14 -0
  18. data/test/fixtures/1-0.mp4 +0 -0
  19. data/test/fixtures/create-episode-response-s3.xml +15 -0
  20. data/test/fixtures/create-episode-response.xml +3 -0
  21. data/test/fixtures/episodes-response.xml +408 -0
  22. data/test/fixtures/episodes-summary-report-response.xml +4 -0
  23. data/test/fixtures/invalid-param-response-multiple.xml +8 -0
  24. data/test/fixtures/invalid-param-response-single.xml +9 -0
  25. data/test/fixtures/playlists-response.xml +611 -0
  26. data/test/fixtures/shows-response.xml +26 -0
  27. data/test/test_analytics_requests.rb +42 -0
  28. data/test/test_analytics_responses.rb +14 -0
  29. data/test/test_connection.rb +31 -0
  30. data/test/test_error_responses.rb +29 -0
  31. data/test/test_helper.rb +8 -0
  32. data/test/test_query_requests.rb +62 -0
  33. data/test/test_query_responses.rb +165 -0
  34. data/test/test_write_requests.rb +56 -0
  35. data/test/test_write_responses.rb +24 -0
  36. metadata +135 -0
data/script/console ADDED
@@ -0,0 +1,10 @@
1
+ #!/usr/bin/env ruby
2
+ # File: script/console
3
+ irb = RUBY_PLATFORM =~ /(:?mswin|mingw)/ ? 'irb.bat' : 'irb'
4
+
5
+ libs = " -r irb/completion"
6
+ # Perhaps use a console_lib to store any extra methods I may want available in the cosole
7
+ # libs << " -r #{File.dirname(__FILE__) + '/../lib/console_lib/console_logger.rb'}"
8
+ libs << " -r #{File.dirname(__FILE__) + '/../lib/episodic-platform.rb'}"
9
+ puts "Loading episodic-platform gem"
10
+ exec "#{irb} #{libs} --simple-prompt"
data/script/destroy ADDED
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env ruby
2
+ APP_ROOT = File.expand_path(File.join(File.dirname(__FILE__), '..'))
3
+
4
+ begin
5
+ require 'rubigen'
6
+ rescue LoadError
7
+ require 'rubygems'
8
+ require 'rubigen'
9
+ end
10
+ require 'rubigen/scripts/destroy'
11
+
12
+ ARGV.shift if ['--help', '-h'].include?(ARGV[0])
13
+ RubiGen::Base.use_component_sources! [:rubygems, :newgem, :newgem_theme, :test_unit]
14
+ RubiGen::Scripts::Destroy.new.run(ARGV)
data/script/generate ADDED
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env ruby
2
+ APP_ROOT = File.expand_path(File.join(File.dirname(__FILE__), '..'))
3
+
4
+ begin
5
+ require 'rubigen'
6
+ rescue LoadError
7
+ require 'rubygems'
8
+ require 'rubigen'
9
+ end
10
+ require 'rubigen/scripts/generate'
11
+
12
+ ARGV.shift if ['--help', '-h'].include?(ARGV[0])
13
+ RubiGen::Base.use_component_sources! [:rubygems, :newgem, :newgem_theme, :test_unit]
14
+ RubiGen::Scripts::Generate.new.run(ARGV)
Binary file
@@ -0,0 +1,15 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <create_episode_response result="success" episode_id="p3h7kldgjg1t">
3
+ <upload url="http://randy.dev.assets.episodic.com.s3.amazonaws.com/" filename="1-0.mp4">
4
+ <param value="/oz04l1622vwh/oz04s1q0i29t/20100212/89-0-232000.mp4" name="key"/>
5
+ <param value="1ZAV2R8EFHVZRJS9TEG2" name="AWSAccessKeyId"/>
6
+ <param value="public-read" name="acl"/>
7
+ <param value="eyJleHBpcmF0aW9uIjogIjIwMTAtMDItMTJUMjM6MjM6MDFaIiwgImNvbmRp
8
+ dGlvbnMiOiBbeyJidWNrZXQiOiAicmFuZHkuZGV2LmFzc2V0cy5lcGlzb2Rp
9
+ Yy5jb20ifSwgeyJrZXkiOiAiL296MDRsMTYyMnZ3aC9vejA0czFxMGkyOXQv
10
+ MjAxMDAyMTIvODktMC0yMzIwMDAubXA0In0sIHsiYWNsIjogInB1YmxpYy1y
11
+ ZWFkIn1dfQ==
12
+ " name="policy"/>
13
+ <param value="cj5mRDbo+yFWOgfin+PDJ1JcjpU=" name="signature"/>
14
+ </upload>
15
+ </create_episode_response>
@@ -0,0 +1,3 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <create_episode_response result="success" episode_id="p3h7kldgjg1t">
3
+ </create_episode_response>
@@ -0,0 +1,408 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <episodes per_page="20" page="1" pages="1" total="14">
3
+ <episode>
4
+ <id>oo3krbgh3ta9</id>
5
+ <name>Episode 1</name>
6
+ <description></description>
7
+ <tags></tags>
8
+ <air_date>2010-01-06 02:12:39</air_date>
9
+ <off_air_date></off_air_date>
10
+ <duration>00:00:05</duration>
11
+ <status>on_the_air</status>
12
+ <custom_fields>
13
+ </custom_fields>
14
+ <playlists>
15
+ </playlists>
16
+ <thumbnails>
17
+ <thumbnail width="100" height="1">http://localhost/cdn/development/randysimon/assets/207/a40.jpg</thumbnail>
18
+ <thumbnail width="" height="360">http://localhost/cdn/development/randysimon/assets/360/a40.jpg</thumbnail>
19
+ <thumbnail width="" height="480">http://localhost/cdn/development/randysimon/assets/480/a40.jpg</thumbnail>
20
+ </thumbnails>
21
+ <players width="640" height="360">
22
+ <player default="true" width="640" height="391">
23
+ <name>Default Player</name>
24
+ <embed_code>&lt;object id=&quot;ep_player&quot; name=&quot;ep_player&quot; height=&quot;391&quot; width=&quot;640&quot; data=&quot;http://cdn.episodic.com/player_development/EpisodicPlayer.swf?config=http%3A%2F%2Flocalhost%2Fcdn%2Fdevelopment%2Frandysimon%2F5%2Foo3krbgh3ta9%2Fconfig.xml&quot; type=&quot;application/x-shockwave-flash&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://cdn.episodic.com/player_development/EpisodicPlayer.swf?config=http%3A%2F%2Flocalhost%2Fcdn%2Fdevelopment%2Frandysimon%2F5%2Foo3krbgh3ta9%2Fconfig.xml&quot;/&gt;&lt;param name=&quot;AllowScriptAccess&quot; value=&quot;always&quot;/&gt;&lt;param name=&quot;allowfullscreen&quot; value=&quot;true&quot;/&gt;&lt;embed src=&quot;http://cdn.episodic.com/player_development/EpisodicPlayer.swf?config=http%3A%2F%2Flocalhost%2Fcdn%2Fdevelopment%2Frandysimon%2F5%2Foo3krbgh3ta9%2Fconfig.xml&quot; type=&quot;application/x-shockwave-flash&quot; allowfullscreen=&quot;true&quot; AllowScriptAccess=&quot;always&quot; width=&quot;640&quot; height=&quot;391&quot; id=&quot;ep_player&quot; name=&quot;ep_player&quot;/&gt;&lt;/object&gt;</embed_code>
25
+ <config>http://localhost/cdn/development/randysimon/5/oo3krbgh3ta9/config.xml</config>
26
+ </player>
27
+ </players>
28
+ </episode>
29
+ <episode>
30
+ <id>oo3kyjwjzcap</id>
31
+ <name>Episode 2</name>
32
+ <description></description>
33
+ <tags></tags>
34
+ <air_date>2010-01-06 02:13:12</air_date>
35
+ <off_air_date></off_air_date>
36
+ <duration>00:00:28</duration>
37
+ <status>on_the_air</status>
38
+ <custom_fields>
39
+ <field required="false" position="1" type="text">
40
+ <name>Series Name</name>
41
+ <value>
42
+ <![CDATA[Game Trailers]]>
43
+ </value>
44
+ </field>
45
+ <field required="true" position="2" type="number">
46
+ <name>Number Field</name>
47
+ <value>
48
+ <![CDATA[567]]>
49
+ </value>
50
+ </field>
51
+ <field required="false" position="3" type="date">
52
+ <name>Publish Date</name>
53
+ <value>
54
+ <![CDATA[2010-01-29 18:51:00]]>
55
+ </value>
56
+ </field>
57
+ <field required="false" position="4" type="external_select">
58
+ <name>Category</name>
59
+ <value id="123">
60
+ <![CDATA[Drama]]>
61
+ </value>
62
+ <value id="234">
63
+ <![CDATA[Comedy]]>
64
+ </value>
65
+ </field>
66
+ </custom_fields>
67
+ <playlists>
68
+ <playlist position="1">
69
+ <id>oo3my8ozcnb5</id>
70
+ </playlist>
71
+ </playlists>
72
+ <thumbnails>
73
+ <thumbnail width="100" height="1">http://localhost/cdn/development/randysimon/assets/207/a38.jpg</thumbnail>
74
+ <thumbnail width="" height="360">http://localhost/cdn/development/randysimon/assets/360/a38.jpg</thumbnail>
75
+ <thumbnail width="" height="480">http://localhost/cdn/development/randysimon/assets/480/a38.jpg</thumbnail>
76
+ </thumbnails>
77
+ <players width="640" height="360">
78
+ <player default="true" width="640" height="391">
79
+ <name>Default Player</name>
80
+ <embed_code>&lt;object id=&quot;ep_player&quot; name=&quot;ep_player&quot; height=&quot;391&quot; width=&quot;640&quot; data=&quot;http://cdn.episodic.com/player_development/EpisodicPlayer.swf?config=http%3A%2F%2Flocalhost%2Fcdn%2Fdevelopment%2Frandysimon%2F5%2Foo3kyjwjzcap%2Fconfig.xml&quot; type=&quot;application/x-shockwave-flash&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://cdn.episodic.com/player_development/EpisodicPlayer.swf?config=http%3A%2F%2Flocalhost%2Fcdn%2Fdevelopment%2Frandysimon%2F5%2Foo3kyjwjzcap%2Fconfig.xml&quot;/&gt;&lt;param name=&quot;AllowScriptAccess&quot; value=&quot;always&quot;/&gt;&lt;param name=&quot;allowfullscreen&quot; value=&quot;true&quot;/&gt;&lt;embed src=&quot;http://cdn.episodic.com/player_development/EpisodicPlayer.swf?config=http%3A%2F%2Flocalhost%2Fcdn%2Fdevelopment%2Frandysimon%2F5%2Foo3kyjwjzcap%2Fconfig.xml&quot; type=&quot;application/x-shockwave-flash&quot; allowfullscreen=&quot;true&quot; AllowScriptAccess=&quot;always&quot; width=&quot;640&quot; height=&quot;391&quot; id=&quot;ep_player&quot; name=&quot;ep_player&quot;/&gt;&lt;/object&gt;</embed_code>
81
+ <config>http://localhost/cdn/development/randysimon/5/oo3kyjwjzcap/config.xml</config>
82
+ </player>
83
+ </players>
84
+ <downloads>
85
+ <download width="480" height="360">
86
+ <url>http://localhost/cdn/development/randysimon/assets/480/a38.mp4</url>
87
+ </download>
88
+ </downloads>
89
+ </episode>
90
+ <episode>
91
+ <id>oo3n83ujmupt</id>
92
+ <name>Episode 12</name>
93
+ <description></description>
94
+ <tags></tags>
95
+ <air_date>2010-01-06 02:19:23</air_date>
96
+ <off_air_date></off_air_date>
97
+ <duration>00:00:03</duration>
98
+ <status>on_the_air</status>
99
+ <custom_fields>
100
+ </custom_fields>
101
+ <playlists>
102
+ <playlist position="1">
103
+ <id>oo3my8ozcnb5</id>
104
+ </playlist>
105
+ </playlists>
106
+ <thumbnails>
107
+ <thumbnail width="100" height="1">http://localhost/cdn/development/randysimon/assets/207/a41.jpg</thumbnail>
108
+ <thumbnail width="" height="360">http://localhost/cdn/development/randysimon/assets/360/a41.jpg</thumbnail>
109
+ <thumbnail width="" height="480">http://localhost/cdn/development/randysimon/assets/480/a41.jpg</thumbnail>
110
+ </thumbnails>
111
+ <players width="640" height="360">
112
+ <player default="true" width="640" height="391">
113
+ <name>Default Player</name>
114
+ <embed_code>&lt;object id=&quot;ep_player&quot; name=&quot;ep_player&quot; height=&quot;391&quot; width=&quot;640&quot; data=&quot;http://cdn.episodic.com/player_development/EpisodicPlayer.swf?config=http%3A%2F%2Flocalhost%2Fcdn%2Fdevelopment%2Frandysimon%2Foo3my0suwfep%2Foo3n83ujmupt%2Fconfig.xml&quot; type=&quot;application/x-shockwave-flash&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://cdn.episodic.com/player_development/EpisodicPlayer.swf?config=http%3A%2F%2Flocalhost%2Fcdn%2Fdevelopment%2Frandysimon%2Foo3my0suwfep%2Foo3n83ujmupt%2Fconfig.xml&quot;/&gt;&lt;param name=&quot;AllowScriptAccess&quot; value=&quot;always&quot;/&gt;&lt;param name=&quot;allowfullscreen&quot; value=&quot;true&quot;/&gt;&lt;embed src=&quot;http://cdn.episodic.com/player_development/EpisodicPlayer.swf?config=http%3A%2F%2Flocalhost%2Fcdn%2Fdevelopment%2Frandysimon%2Foo3my0suwfep%2Foo3n83ujmupt%2Fconfig.xml&quot; type=&quot;application/x-shockwave-flash&quot; allowfullscreen=&quot;true&quot; AllowScriptAccess=&quot;always&quot; width=&quot;640&quot; height=&quot;391&quot; id=&quot;ep_player&quot; name=&quot;ep_player&quot;/&gt;&lt;/object&gt;</embed_code>
115
+ <config>http://localhost/cdn/development/randysimon/oo3my0suwfep/oo3n83ujmupt/config.xml</config>
116
+ </player>
117
+ </players>
118
+ </episode>
119
+ <episode>
120
+ <id>oujbx2g8ufwh</id>
121
+ <name>my episode 1264113987</name>
122
+ <description></description>
123
+ <tags></tags>
124
+ <air_date>2010-01-21 22:46:46</air_date>
125
+ <off_air_date></off_air_date>
126
+ <duration>00:00:03</duration>
127
+ <status>on_the_air</status>
128
+ <custom_fields>
129
+ </custom_fields>
130
+ <playlists>
131
+ </playlists>
132
+ <thumbnails>
133
+ <thumbnail width="100" height="1">http://localhost/cdn/development/randysimon/assets/207/a41.jpg</thumbnail>
134
+ <thumbnail width="" height="360">http://localhost/cdn/development/randysimon/assets/360/a41.jpg</thumbnail>
135
+ <thumbnail width="" height="480">http://localhost/cdn/development/randysimon/assets/480/a41.jpg</thumbnail>
136
+ </thumbnails>
137
+ <players width="640" height="360">
138
+ <player default="true" width="640" height="391">
139
+ <name>Default Player</name>
140
+ <embed_code>&lt;object id=&quot;ep_player&quot; name=&quot;ep_player&quot; height=&quot;391&quot; width=&quot;640&quot; data=&quot;http://cdn.episodic.com/player_development/EpisodicPlayer.swf?config=http%3A%2F%2Flocalhost%2Fcdn%2Fdevelopment%2Frandysimon%2F5%2Foujbx2g8ufwh%2Fconfig.xml&quot; type=&quot;application/x-shockwave-flash&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://cdn.episodic.com/player_development/EpisodicPlayer.swf?config=http%3A%2F%2Flocalhost%2Fcdn%2Fdevelopment%2Frandysimon%2F5%2Foujbx2g8ufwh%2Fconfig.xml&quot;/&gt;&lt;param name=&quot;AllowScriptAccess&quot; value=&quot;always&quot;/&gt;&lt;param name=&quot;allowfullscreen&quot; value=&quot;true&quot;/&gt;&lt;embed src=&quot;http://cdn.episodic.com/player_development/EpisodicPlayer.swf?config=http%3A%2F%2Flocalhost%2Fcdn%2Fdevelopment%2Frandysimon%2F5%2Foujbx2g8ufwh%2Fconfig.xml&quot; type=&quot;application/x-shockwave-flash&quot; allowfullscreen=&quot;true&quot; AllowScriptAccess=&quot;always&quot; width=&quot;640&quot; height=&quot;391&quot; id=&quot;ep_player&quot; name=&quot;ep_player&quot;/&gt;&lt;/object&gt;</embed_code>
141
+ <config>http://localhost/cdn/development/randysimon/5/oujbx2g8ufwh/config.xml</config>
142
+ </player>
143
+ </players>
144
+ </episode>
145
+ <episode>
146
+ <id>owjxerjw7nr5</id>
147
+ <name>Episode 6</name>
148
+ <description></description>
149
+ <tags></tags>
150
+ <air_date></air_date>
151
+ <off_air_date></off_air_date>
152
+ <duration>00:00:30</duration>
153
+ <status>off_the_air</status>
154
+ <custom_fields>
155
+ </custom_fields>
156
+ <playlists>
157
+ </playlists>
158
+ <thumbnails>
159
+ <thumbnail width="100" height="1">http://localhost/cdn/development/randysimon/assets/207/a39.jpg</thumbnail>
160
+ <thumbnail width="" height="360">http://localhost/cdn/development/randysimon/assets/360/a39.jpg</thumbnail>
161
+ <thumbnail width="" height="480">http://localhost/cdn/development/randysimon/assets/480/a39.jpg</thumbnail>
162
+ </thumbnails>
163
+ <players width="640" height="360">
164
+ <player default="true" width="640" height="391">
165
+ <name>Default Player</name>
166
+ <embed_code>&lt;object id=&quot;ep_player&quot; name=&quot;ep_player&quot; height=&quot;391&quot; width=&quot;640&quot; data=&quot;http://cdn.episodic.com/player_development/EpisodicPlayer.swf?config=http%3A%2F%2Flocalhost%2Fcdn%2Fdevelopment%2Frandysimon%2F5%2Fowjxerjw7nr5%2Fconfig.xml&quot; type=&quot;application/x-shockwave-flash&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://cdn.episodic.com/player_development/EpisodicPlayer.swf?config=http%3A%2F%2Flocalhost%2Fcdn%2Fdevelopment%2Frandysimon%2F5%2Fowjxerjw7nr5%2Fconfig.xml&quot;/&gt;&lt;param name=&quot;AllowScriptAccess&quot; value=&quot;always&quot;/&gt;&lt;param name=&quot;allowfullscreen&quot; value=&quot;true&quot;/&gt;&lt;embed src=&quot;http://cdn.episodic.com/player_development/EpisodicPlayer.swf?config=http%3A%2F%2Flocalhost%2Fcdn%2Fdevelopment%2Frandysimon%2F5%2Fowjxerjw7nr5%2Fconfig.xml&quot; type=&quot;application/x-shockwave-flash&quot; allowfullscreen=&quot;true&quot; AllowScriptAccess=&quot;always&quot; width=&quot;640&quot; height=&quot;391&quot; id=&quot;ep_player&quot; name=&quot;ep_player&quot;/&gt;&lt;/object&gt;</embed_code>
167
+ <config>http://localhost/cdn/development/randysimon/5/owjxerjw7nr5/config.xml</config>
168
+ </player>
169
+ </players>
170
+ </episode>
171
+ <episode>
172
+ <id>owjxlcblqj29</id>
173
+ <name>Episode 7</name>
174
+ <description></description>
175
+ <tags></tags>
176
+ <air_date></air_date>
177
+ <off_air_date></off_air_date>
178
+ <duration>00:00:28</duration>
179
+ <status>off_the_air</status>
180
+ <custom_fields>
181
+ </custom_fields>
182
+ <playlists>
183
+ </playlists>
184
+ <thumbnails>
185
+ <thumbnail width="100" height="1">http://localhost/cdn/development/randysimon/assets/207/a38.jpg</thumbnail>
186
+ <thumbnail width="" height="360">http://localhost/cdn/development/randysimon/assets/360/a38.jpg</thumbnail>
187
+ <thumbnail width="" height="480">http://localhost/cdn/development/randysimon/assets/480/a38.jpg</thumbnail>
188
+ </thumbnails>
189
+ <players width="640" height="360">
190
+ <player default="true" width="640" height="391">
191
+ <name>Default Player</name>
192
+ <embed_code>&lt;object id=&quot;ep_player&quot; name=&quot;ep_player&quot; height=&quot;391&quot; width=&quot;640&quot; data=&quot;http://cdn.episodic.com/player_development/EpisodicPlayer.swf?config=http%3A%2F%2Flocalhost%2Fcdn%2Fdevelopment%2Frandysimon%2F5%2Fowjxlcblqj29%2Fconfig.xml&quot; type=&quot;application/x-shockwave-flash&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://cdn.episodic.com/player_development/EpisodicPlayer.swf?config=http%3A%2F%2Flocalhost%2Fcdn%2Fdevelopment%2Frandysimon%2F5%2Fowjxlcblqj29%2Fconfig.xml&quot;/&gt;&lt;param name=&quot;AllowScriptAccess&quot; value=&quot;always&quot;/&gt;&lt;param name=&quot;allowfullscreen&quot; value=&quot;true&quot;/&gt;&lt;embed src=&quot;http://cdn.episodic.com/player_development/EpisodicPlayer.swf?config=http%3A%2F%2Flocalhost%2Fcdn%2Fdevelopment%2Frandysimon%2F5%2Fowjxlcblqj29%2Fconfig.xml&quot; type=&quot;application/x-shockwave-flash&quot; allowfullscreen=&quot;true&quot; AllowScriptAccess=&quot;always&quot; width=&quot;640&quot; height=&quot;391&quot; id=&quot;ep_player&quot; name=&quot;ep_player&quot;/&gt;&lt;/object&gt;</embed_code>
193
+ <config>http://localhost/cdn/development/randysimon/5/owjxlcblqj29/config.xml</config>
194
+ </player>
195
+ </players>
196
+ </episode>
197
+ <episode>
198
+ <id>owjxskrom4g1</id>
199
+ <name>Episode 8</name>
200
+ <description></description>
201
+ <tags></tags>
202
+ <air_date></air_date>
203
+ <off_air_date></off_air_date>
204
+ <duration>00:00:03</duration>
205
+ <status>off_the_air</status>
206
+ <custom_fields>
207
+ </custom_fields>
208
+ <playlists>
209
+ </playlists>
210
+ <thumbnails>
211
+ <thumbnail width="100" height="1">http://localhost/cdn/development/randysimon/assets/207/a41.jpg</thumbnail>
212
+ <thumbnail width="" height="360">http://localhost/cdn/development/randysimon/assets/360/a41.jpg</thumbnail>
213
+ <thumbnail width="" height="480">http://localhost/cdn/development/randysimon/assets/480/a41.jpg</thumbnail>
214
+ </thumbnails>
215
+ <players width="640" height="360">
216
+ <player default="true" width="640" height="391">
217
+ <name>Default Player</name>
218
+ <embed_code>&lt;object id=&quot;ep_player&quot; name=&quot;ep_player&quot; height=&quot;391&quot; width=&quot;640&quot; data=&quot;http://cdn.episodic.com/player_development/EpisodicPlayer.swf?config=http%3A%2F%2Flocalhost%2Fcdn%2Fdevelopment%2Frandysimon%2F5%2Fowjxskrom4g1%2Fconfig.xml&quot; type=&quot;application/x-shockwave-flash&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://cdn.episodic.com/player_development/EpisodicPlayer.swf?config=http%3A%2F%2Flocalhost%2Fcdn%2Fdevelopment%2Frandysimon%2F5%2Fowjxskrom4g1%2Fconfig.xml&quot;/&gt;&lt;param name=&quot;AllowScriptAccess&quot; value=&quot;always&quot;/&gt;&lt;param name=&quot;allowfullscreen&quot; value=&quot;true&quot;/&gt;&lt;embed src=&quot;http://cdn.episodic.com/player_development/EpisodicPlayer.swf?config=http%3A%2F%2Flocalhost%2Fcdn%2Fdevelopment%2Frandysimon%2F5%2Fowjxskrom4g1%2Fconfig.xml&quot; type=&quot;application/x-shockwave-flash&quot; allowfullscreen=&quot;true&quot; AllowScriptAccess=&quot;always&quot; width=&quot;640&quot; height=&quot;391&quot; id=&quot;ep_player&quot; name=&quot;ep_player&quot;/&gt;&lt;/object&gt;</embed_code>
219
+ <config>http://localhost/cdn/development/randysimon/5/owjxskrom4g1/config.xml</config>
220
+ </player>
221
+ </players>
222
+ </episode>
223
+ <episode>
224
+ <id>ownfdcczim81</id>
225
+ <name>Episode with ad slot</name>
226
+ <description></description>
227
+ <tags></tags>
228
+ <air_date>2010-01-27 03:43:57</air_date>
229
+ <off_air_date></off_air_date>
230
+ <duration>00:00:02</duration>
231
+ <status>on_the_air</status>
232
+ <custom_fields>
233
+ </custom_fields>
234
+ <playlists>
235
+ </playlists>
236
+ <thumbnails>
237
+ <thumbnail width="100" height="1">http://localhost/cdn/development/randysimon/assets/207/a42.jpg</thumbnail>
238
+ <thumbnail width="" height="360">http://localhost/cdn/development/randysimon/assets/360/a42.jpg</thumbnail>
239
+ <thumbnail width="" height="480">http://localhost/cdn/development/randysimon/assets/480/a42.jpg</thumbnail>
240
+ </thumbnails>
241
+ <players width="640" height="360">
242
+ <player default="true" width="640" height="391">
243
+ <name>Default Player</name>
244
+ <embed_code>&lt;object id=&quot;ep_player&quot; name=&quot;ep_player&quot; height=&quot;391&quot; width=&quot;640&quot; data=&quot;http://cdn.episodic.com/player_development/EpisodicPlayer.swf?config=http%3A%2F%2Flocalhost%2Fcdn%2Fdevelopment%2Frandysimon%2F5%2Fownfdcczim81%2Fconfig.xml&quot; type=&quot;application/x-shockwave-flash&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://cdn.episodic.com/player_development/EpisodicPlayer.swf?config=http%3A%2F%2Flocalhost%2Fcdn%2Fdevelopment%2Frandysimon%2F5%2Fownfdcczim81%2Fconfig.xml&quot;/&gt;&lt;param name=&quot;AllowScriptAccess&quot; value=&quot;always&quot;/&gt;&lt;param name=&quot;allowfullscreen&quot; value=&quot;true&quot;/&gt;&lt;embed src=&quot;http://cdn.episodic.com/player_development/EpisodicPlayer.swf?config=http%3A%2F%2Flocalhost%2Fcdn%2Fdevelopment%2Frandysimon%2F5%2Fownfdcczim81%2Fconfig.xml&quot; type=&quot;application/x-shockwave-flash&quot; allowfullscreen=&quot;true&quot; AllowScriptAccess=&quot;always&quot; width=&quot;640&quot; height=&quot;391&quot; id=&quot;ep_player&quot; name=&quot;ep_player&quot;/&gt;&lt;/object&gt;</embed_code>
245
+ <config>http://localhost/cdn/development/randysimon/5/ownfdcczim81/config.xml</config>
246
+ </player>
247
+ </players>
248
+ </episode>
249
+ <episode>
250
+ <id>oyzvunkrzv9d</id>
251
+ <name>my episode 1265063113</name>
252
+ <description></description>
253
+ <tags></tags>
254
+ <air_date>2010-02-01 22:25:22</air_date>
255
+ <off_air_date></off_air_date>
256
+ <duration>00:00:00</duration>
257
+ <status>on_the_air</status>
258
+ <custom_fields>
259
+ </custom_fields>
260
+ <playlists>
261
+ </playlists>
262
+ <thumbnails>
263
+ <thumbnail width="100" height="1">http://localhost/cdn/development/randysimon/assets/207/a45.jpg</thumbnail>
264
+ <thumbnail width="" height="360">http://localhost/cdn/development/randysimon/assets/360/a45.jpg</thumbnail>
265
+ <thumbnail width="" height="480">http://localhost/cdn/development/randysimon/assets/480/a45.jpg</thumbnail>
266
+ </thumbnails>
267
+ <players width="640" height="360">
268
+ <player default="true" width="640" height="391">
269
+ <name>Default Player</name>
270
+ <embed_code>&lt;object id=&quot;ep_player&quot; name=&quot;ep_player&quot; height=&quot;391&quot; width=&quot;640&quot; data=&quot;http://cdn.episodic.com/player_development/EpisodicPlayer.swf?config=http%3A%2F%2Flocalhost%2Fcdn%2Fdevelopment%2Frandysimon%2F5%2Foyzvunkrzv9d%2Fconfig.xml&quot; type=&quot;application/x-shockwave-flash&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://cdn.episodic.com/player_development/EpisodicPlayer.swf?config=http%3A%2F%2Flocalhost%2Fcdn%2Fdevelopment%2Frandysimon%2F5%2Foyzvunkrzv9d%2Fconfig.xml&quot;/&gt;&lt;param name=&quot;AllowScriptAccess&quot; value=&quot;always&quot;/&gt;&lt;param name=&quot;allowfullscreen&quot; value=&quot;true&quot;/&gt;&lt;embed src=&quot;http://cdn.episodic.com/player_development/EpisodicPlayer.swf?config=http%3A%2F%2Flocalhost%2Fcdn%2Fdevelopment%2Frandysimon%2F5%2Foyzvunkrzv9d%2Fconfig.xml&quot; type=&quot;application/x-shockwave-flash&quot; allowfullscreen=&quot;true&quot; AllowScriptAccess=&quot;always&quot; width=&quot;640&quot; height=&quot;391&quot; id=&quot;ep_player&quot; name=&quot;ep_player&quot;/&gt;&lt;/object&gt;</embed_code>
271
+ <config>http://localhost/cdn/development/randysimon/5/oyzvunkrzv9d/config.xml</config>
272
+ </player>
273
+ </players>
274
+ </episode>
275
+ <episode>
276
+ <id>oyzwdq7j708x</id>
277
+ <name>my episode 1265063151</name>
278
+ <description></description>
279
+ <tags></tags>
280
+ <air_date></air_date>
281
+ <off_air_date></off_air_date>
282
+ <duration>00:00:00</duration>
283
+ <status>off_the_air</status>
284
+ <custom_fields>
285
+ </custom_fields>
286
+ <playlists>
287
+ </playlists>
288
+ <thumbnails>
289
+ <thumbnail width="100" height="1">http://localhost/cdn/development/randysimon/assets/207/a46.jpg</thumbnail>
290
+ <thumbnail width="" height="360">http://localhost/cdn/development/randysimon/assets/360/a46.jpg</thumbnail>
291
+ <thumbnail width="" height="480">http://localhost/cdn/development/randysimon/assets/480/a46.jpg</thumbnail>
292
+ </thumbnails>
293
+ <players width="640" height="360">
294
+ <player default="true" width="640" height="391">
295
+ <name>Default Player</name>
296
+ <embed_code>&lt;object id=&quot;ep_player&quot; name=&quot;ep_player&quot; height=&quot;391&quot; width=&quot;640&quot; data=&quot;http://cdn.episodic.com/player_development/EpisodicPlayer.swf?config=http%3A%2F%2Flocalhost%2Fcdn%2Fdevelopment%2Frandysimon%2F5%2Foyzwdq7j708x%2Fconfig.xml&quot; type=&quot;application/x-shockwave-flash&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://cdn.episodic.com/player_development/EpisodicPlayer.swf?config=http%3A%2F%2Flocalhost%2Fcdn%2Fdevelopment%2Frandysimon%2F5%2Foyzwdq7j708x%2Fconfig.xml&quot;/&gt;&lt;param name=&quot;AllowScriptAccess&quot; value=&quot;always&quot;/&gt;&lt;param name=&quot;allowfullscreen&quot; value=&quot;true&quot;/&gt;&lt;embed src=&quot;http://cdn.episodic.com/player_development/EpisodicPlayer.swf?config=http%3A%2F%2Flocalhost%2Fcdn%2Fdevelopment%2Frandysimon%2F5%2Foyzwdq7j708x%2Fconfig.xml&quot; type=&quot;application/x-shockwave-flash&quot; allowfullscreen=&quot;true&quot; AllowScriptAccess=&quot;always&quot; width=&quot;640&quot; height=&quot;391&quot; id=&quot;ep_player&quot; name=&quot;ep_player&quot;/&gt;&lt;/object&gt;</embed_code>
297
+ <config>http://localhost/cdn/development/randysimon/5/oyzwdq7j708x/config.xml</config>
298
+ </player>
299
+ </players>
300
+ </episode>
301
+ <episode>
302
+ <id>oz049unr3jep</id>
303
+ <name>my episode 1265063688</name>
304
+ <description></description>
305
+ <tags></tags>
306
+ <air_date>2010-02-01 22:48:18</air_date>
307
+ <off_air_date></off_air_date>
308
+ <duration>00:00:00</duration>
309
+ <status>on_the_air</status>
310
+ <custom_fields>
311
+ </custom_fields>
312
+ <playlists>
313
+ </playlists>
314
+ <thumbnails>
315
+ <thumbnail width="100" height="1">http://localhost/cdn/development/randysimon/assets/207/a47.jpg</thumbnail>
316
+ <thumbnail width="" height="360">http://localhost/cdn/development/randysimon/assets/360/a47.jpg</thumbnail>
317
+ <thumbnail width="" height="480">http://localhost/cdn/development/randysimon/assets/480/a47.jpg</thumbnail>
318
+ </thumbnails>
319
+ <players width="640" height="360">
320
+ <player default="true" width="640" height="391">
321
+ <name>Default Player</name>
322
+ <embed_code>&lt;object id=&quot;ep_player&quot; name=&quot;ep_player&quot; height=&quot;391&quot; width=&quot;640&quot; data=&quot;http://cdn.episodic.com/player_development/EpisodicPlayer.swf?config=http%3A%2F%2Flocalhost%2Fcdn%2Fdevelopment%2Frandysimon%2F5%2Foz049unr3jep%2Fconfig.xml&quot; type=&quot;application/x-shockwave-flash&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://cdn.episodic.com/player_development/EpisodicPlayer.swf?config=http%3A%2F%2Flocalhost%2Fcdn%2Fdevelopment%2Frandysimon%2F5%2Foz049unr3jep%2Fconfig.xml&quot;/&gt;&lt;param name=&quot;AllowScriptAccess&quot; value=&quot;always&quot;/&gt;&lt;param name=&quot;allowfullscreen&quot; value=&quot;true&quot;/&gt;&lt;embed src=&quot;http://cdn.episodic.com/player_development/EpisodicPlayer.swf?config=http%3A%2F%2Flocalhost%2Fcdn%2Fdevelopment%2Frandysimon%2F5%2Foz049unr3jep%2Fconfig.xml&quot; type=&quot;application/x-shockwave-flash&quot; allowfullscreen=&quot;true&quot; AllowScriptAccess=&quot;always&quot; width=&quot;640&quot; height=&quot;391&quot; id=&quot;ep_player&quot; name=&quot;ep_player&quot;/&gt;&lt;/object&gt;</embed_code>
323
+ <config>http://localhost/cdn/development/randysimon/5/oz049unr3jep/config.xml</config>
324
+ </player>
325
+ </players>
326
+ </episode>
327
+ <episode>
328
+ <id>ozv6puoxqy2p</id>
329
+ <name>bmwpostroll.mov</name>
330
+ <description></description>
331
+ <tags></tags>
332
+ <air_date>2010-02-09 00:29:35</air_date>
333
+ <off_air_date></off_air_date>
334
+ <duration>00:00:28</duration>
335
+ <status>on_the_air</status>
336
+ <custom_fields>
337
+ </custom_fields>
338
+ <playlists>
339
+ </playlists>
340
+ <thumbnails>
341
+ <thumbnail width="100" height="1">http://localhost/cdn/development/randysimon/assets/207/a70.jpg</thumbnail>
342
+ <thumbnail width="" height="360">http://localhost/cdn/development/randysimon/assets/360/a70.jpg</thumbnail>
343
+ <thumbnail width="" height="480">http://localhost/cdn/development/randysimon/assets/480/a70.jpg</thumbnail>
344
+ </thumbnails>
345
+ <players width="640" height="360">
346
+ <player default="true" width="640" height="391">
347
+ <name>Default Player</name>
348
+ <embed_code>&lt;object id=&quot;ep_player&quot; name=&quot;ep_player&quot; height=&quot;391&quot; width=&quot;640&quot; data=&quot;http://cdn.episodic.com/player_development/EpisodicPlayer.swf?config=http%3A%2F%2Flocalhost%2Fcdn%2Fdevelopment%2Frandysimon%2F5%2Fozv6puoxqy2p%2Fconfig.xml&quot; type=&quot;application/x-shockwave-flash&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://cdn.episodic.com/player_development/EpisodicPlayer.swf?config=http%3A%2F%2Flocalhost%2Fcdn%2Fdevelopment%2Frandysimon%2F5%2Fozv6puoxqy2p%2Fconfig.xml&quot;/&gt;&lt;param name=&quot;AllowScriptAccess&quot; value=&quot;always&quot;/&gt;&lt;param name=&quot;allowfullscreen&quot; value=&quot;true&quot;/&gt;&lt;embed src=&quot;http://cdn.episodic.com/player_development/EpisodicPlayer.swf?config=http%3A%2F%2Flocalhost%2Fcdn%2Fdevelopment%2Frandysimon%2F5%2Fozv6puoxqy2p%2Fconfig.xml&quot; type=&quot;application/x-shockwave-flash&quot; allowfullscreen=&quot;true&quot; AllowScriptAccess=&quot;always&quot; width=&quot;640&quot; height=&quot;391&quot; id=&quot;ep_player&quot; name=&quot;ep_player&quot;/&gt;&lt;/object&gt;</embed_code>
349
+ <config>http://localhost/cdn/development/randysimon/5/ozv6puoxqy2p/config.xml</config>
350
+ </player>
351
+ </players>
352
+ </episode>
353
+ <episode>
354
+ <id>ozv6spajltkx</id>
355
+ <name>bmwpreroll.mov</name>
356
+ <description></description>
357
+ <tags></tags>
358
+ <air_date>2010-02-09 00:29:36</air_date>
359
+ <off_air_date></off_air_date>
360
+ <duration>00:00:06</duration>
361
+ <status>on_the_air</status>
362
+ <custom_fields>
363
+ </custom_fields>
364
+ <playlists>
365
+ </playlists>
366
+ <thumbnails>
367
+ <thumbnail width="100" height="1">http://localhost/cdn/development/randysimon/assets/207/a71.jpg</thumbnail>
368
+ <thumbnail width="" height="360">http://localhost/cdn/development/randysimon/assets/360/a71.jpg</thumbnail>
369
+ <thumbnail width="" height="480">http://localhost/cdn/development/randysimon/assets/480/a71.jpg</thumbnail>
370
+ </thumbnails>
371
+ <players width="640" height="360">
372
+ <player default="true" width="640" height="391">
373
+ <name>Default Player</name>
374
+ <embed_code>&lt;object id=&quot;ep_player&quot; name=&quot;ep_player&quot; height=&quot;391&quot; width=&quot;640&quot; data=&quot;http://cdn.episodic.com/player_development/EpisodicPlayer.swf?config=http%3A%2F%2Flocalhost%2Fcdn%2Fdevelopment%2Frandysimon%2F5%2Fozv6spajltkx%2Fconfig.xml&quot; type=&quot;application/x-shockwave-flash&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://cdn.episodic.com/player_development/EpisodicPlayer.swf?config=http%3A%2F%2Flocalhost%2Fcdn%2Fdevelopment%2Frandysimon%2F5%2Fozv6spajltkx%2Fconfig.xml&quot;/&gt;&lt;param name=&quot;AllowScriptAccess&quot; value=&quot;always&quot;/&gt;&lt;param name=&quot;allowfullscreen&quot; value=&quot;true&quot;/&gt;&lt;embed src=&quot;http://cdn.episodic.com/player_development/EpisodicPlayer.swf?config=http%3A%2F%2Flocalhost%2Fcdn%2Fdevelopment%2Frandysimon%2F5%2Fozv6spajltkx%2Fconfig.xml&quot; type=&quot;application/x-shockwave-flash&quot; allowfullscreen=&quot;true&quot; AllowScriptAccess=&quot;always&quot; width=&quot;640&quot; height=&quot;391&quot; id=&quot;ep_player&quot; name=&quot;ep_player&quot;/&gt;&lt;/object&gt;</embed_code>
375
+ <config>http://localhost/cdn/development/randysimon/5/ozv6spajltkx/config.xml</config>
376
+ </player>
377
+ </players>
378
+ </episode>
379
+ <episode>
380
+ <id>p0il62r8rda9</id>
381
+ <name>saturnpostroll.mov</name>
382
+ <description></description>
383
+ <tags></tags>
384
+ <air_date></air_date>
385
+ <off_air_date></off_air_date>
386
+ <duration>00:00:30</duration>
387
+ <status>off_the_air</status>
388
+ <custom_fields>
389
+ </custom_fields>
390
+ <playlists>
391
+ <playlist position="1">
392
+ <id>p0il05nwlcsh</id>
393
+ </playlist>
394
+ </playlists>
395
+ <thumbnails>
396
+ <thumbnail width="100" height="1">http://localhost/cdn/development/randysimon/assets/207/a72.jpg</thumbnail>
397
+ <thumbnail width="" height="360">http://localhost/cdn/development/randysimon/assets/360/a72.jpg</thumbnail>
398
+ <thumbnail width="" height="480">http://localhost/cdn/development/randysimon/assets/480/a72.jpg</thumbnail>
399
+ </thumbnails>
400
+ <players width="640" height="360">
401
+ <player default="true" width="640" height="391">
402
+ <name>Default Player</name>
403
+ <embed_code>&lt;object id=&quot;ep_player&quot; name=&quot;ep_player&quot; height=&quot;391&quot; width=&quot;640&quot; data=&quot;http://cdn.episodic.com/player_development/EpisodicPlayer.swf?config=http%3A%2F%2Flocalhost%2Fcdn%2Fdevelopment%2Frandysimon%2Fp0il05nwlcsh%2Fp0il62r8rda9%2Fconfig.xml&quot; type=&quot;application/x-shockwave-flash&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://cdn.episodic.com/player_development/EpisodicPlayer.swf?config=http%3A%2F%2Flocalhost%2Fcdn%2Fdevelopment%2Frandysimon%2Fp0il05nwlcsh%2Fp0il62r8rda9%2Fconfig.xml&quot;/&gt;&lt;param name=&quot;AllowScriptAccess&quot; value=&quot;always&quot;/&gt;&lt;param name=&quot;allowfullscreen&quot; value=&quot;true&quot;/&gt;&lt;embed src=&quot;http://cdn.episodic.com/player_development/EpisodicPlayer.swf?config=http%3A%2F%2Flocalhost%2Fcdn%2Fdevelopment%2Frandysimon%2Fp0il05nwlcsh%2Fp0il62r8rda9%2Fconfig.xml&quot; type=&quot;application/x-shockwave-flash&quot; allowfullscreen=&quot;true&quot; AllowScriptAccess=&quot;always&quot; width=&quot;640&quot; height=&quot;391&quot; id=&quot;ep_player&quot; name=&quot;ep_player&quot;/&gt;&lt;/object&gt;</embed_code>
404
+ <config>http://localhost/cdn/development/randysimon/p0il05nwlcsh/p0il62r8rda9/config.xml</config>
405
+ </player>
406
+ </players>
407
+ </episode>
408
+ </episodes>