netflix 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
data/LICENSE ADDED
@@ -0,0 +1,22 @@
1
+ (The MIT License)
2
+
3
+ Copyright (c) 2012 Dean Holdren
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ 'Software'), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
19
+ IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
20
+ CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
21
+ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
22
+ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,50 @@
1
+ = Netflix API for Ruby
2
+ Copyright (c) 2012 Dean Holdren
3
+
4
+ To install: gem install netflix
5
+
6
+ This gem uses Netflix's OAuth REST API, you first need to register an application with Netflix at http://developer.netflix.com/apps/register/
7
+ This will provide you with a "consumer key", "consumer secret", and "application name"
8
+
9
+ === To use unauthenticated features (catalog search):
10
+ * TODO
11
+
12
+ === To use authenticated features (i.e. queue management):
13
+ * Netflix.consumer_key = <your consumer/developer key>
14
+ Netflix.consumer_secret = <your consumer/developer secret>
15
+
16
+ * Do OAuth dance: (This is a one-time per user step, save the result somewhere.)
17
+ 1. Interactive (commandline/irb):
18
+ This will open a netflix.com web page to ask the user to authenticate, and provide a pin.
19
+ access_token = Netflix::Client.new.oauth
20
+
21
+ 2. or Web application (Rails/Sinatra/etc), define a URL that can handle the callback
22
+ request_token, auth_url = Netflix::Client.new.oauth_via_callback(my_callback_url)
23
+ session[:request_token] = request_token
24
+ redirect_to auth_url
25
+
26
+ Then in the handler retrieve the :oauth_verifier out of the request params
27
+ oauth_verifier = params[:oauth_verifier]
28
+ request_token = session[:request_token]
29
+ access_token = Netflix::Client.new.handle_oauth_callback(request_token, oauth_verifier)
30
+
31
+
32
+ * After OAuth credentials are established:
33
+ access_token = access_token.token
34
+ access_secret = access_token.secret
35
+ user_id = access_token.params["user_id"]
36
+ (Record these, for example in a User table in a database)
37
+
38
+ client = Netflix::Client.new(access_token, access_token_secret)
39
+ user = client.user(user_id)
40
+ queue = user.available_disc_queue
41
+ discs = queue.discs
42
+ disc_one = discs[0]
43
+ puts "#{disc_one.title} #{disc_one.id}"
44
+ queue.remove(1) #queue is 1-based, so this is first disc
45
+
46
+ === Credits
47
+ This work is based on: REST API documentation of Netflix (http://developer.netflix.com),
48
+ with some help from twitter gem for OAuth ideas https://github.com/jnunemaker/twitter/
49
+
50
+
@@ -0,0 +1,42 @@
1
+ require 'rake/testtask'
2
+ #require 'rake/gempackagetask'
3
+ require 'rubygems/package_task'
4
+
5
+ Rake::TestTask.new("test") { |t|
6
+ t.libs << 'test'
7
+ t.test_files = Dir.glob( "test/**/*_test.rb" ).sort
8
+
9
+ t.verbose = true
10
+ t.warning = true
11
+ }
12
+
13
+ gem_spec = Gem::Specification.new do |s|
14
+ s.name = "netflix"
15
+ s.version = "0.1.0"
16
+ s.authors = ["Dean Holdren"]
17
+ s.date = %q{2012-01-09}
18
+ s.description = "Ruby Netflix API wrapper"
19
+ s.summary = s.description
20
+ s.email = 'deanholdren@gmail.com'
21
+
22
+ s.require_path = "lib"
23
+ s.files = `git ls-files`.split("\n")
24
+ s.test_files = `git ls-files -- test/*`.split("\n")
25
+
26
+ s.homepage = "https://github.com/dholdren/netflix-ruby"
27
+ s.has_rdoc = false
28
+
29
+ s.add_dependency("oauth")
30
+ s.add_dependency("json")
31
+ s.add_dependency("launchy")
32
+ s.add_development_dependency("fakeweb")
33
+ s.add_development_dependency("yaml")
34
+ end
35
+
36
+ #Rake::GemPackageTask.new(gem_spec) do |t|
37
+ # t.need_zip = true
38
+ #end
39
+
40
+ Gem::PackageTask.new(gem_spec) do |pkg|
41
+ pkg.need_zip = true
42
+ end
@@ -0,0 +1,5 @@
1
+ require 'netflix/json_resource'
2
+ require 'netflix/client'
3
+ require 'netflix/user'
4
+ require 'netflix/queue'
5
+ require 'netflix/disc'
@@ -0,0 +1,60 @@
1
+ require 'oauth'
2
+
3
+ module Netflix
4
+ class Client
5
+ class << self
6
+ attr_accessor :consumer_key, :consumer_secret
7
+ end
8
+
9
+ #attr_accessor :oauth_consumer, :oauth_access_token
10
+
11
+ def initialize(user_access_token=nil, user_access_secret=nil)
12
+ @oauth_consumer = OAuth::Consumer.new(Client.consumer_key, Client.consumer_secret,
13
+ :site => "http://api.netflix.com",
14
+ :request_token_url => "http://api.netflix.com/oauth/request_token",
15
+ :access_token_url => "http://api.netflix.com/oauth/access_token",
16
+ :authorize_url => "https://api-user.netflix.com/oauth/login")
17
+ if user_access_token && user_access_secret
18
+ @oauth_access_token = oauth_access_token(user_access_token, user_access_secret)
19
+ elsif !!user_access_token ^ !!user_access_secret
20
+ raise ArgumentError 'Must specify both user_access_token and user_access_secret if specifying either'
21
+ end
22
+ end
23
+
24
+ def user(user_id)
25
+ if @oauth_access_token
26
+ @user ||= User.new(@oauth_access_token, user_id)
27
+ else
28
+ raise "Must instantiate client with user auth token/secret"
29
+ end
30
+ end
31
+
32
+ #launches the Netflix OAuth page, and asks for the pin
33
+ #this is interactive (i.e. irb or commandline)
34
+ def oauth
35
+ request_token = @oauth_consumer.get_request_token
36
+ authorize_url = request_token.authorize_url(:oauth_consumer_key =>
37
+ Netflix::Client.consumer_key)
38
+ Launchy.open(authorize_url)
39
+ pin = gets.chomp
40
+ access_token = request_token.get_access_token(:oauth_verifier => pin)
41
+ end
42
+
43
+ def oauth_via_callback(callback_url)
44
+ request_token = @oauth_consumer.get_request_token(:oauth_callback =>
45
+ callback_url, :application_name => NetflixOauth.app_name)
46
+ authorize_url = request_token.authorize_url(:oauth_consumer_key =>
47
+ Netflix::Client.cosumer_key)
48
+ [request_token, authorize_url]
49
+ end
50
+
51
+ def handle_oauth_callback(request_token, oauth_verifier)
52
+ access_token = request_token.get_access_token(:oauth_verifier => oauth_verifier)
53
+ end
54
+
55
+ private
56
+ def oauth_access_token(user_access_token, user_access_secret)
57
+ OAuth::AccessToken.new(@oauth_consumer, user_access_token, user_access_secret)
58
+ end
59
+ end
60
+ end
@@ -0,0 +1,11 @@
1
+ require 'netflix/json_resource'
2
+
3
+ module Netflix
4
+ class Disc < JsonResource
5
+ define_getter :id, :updated
6
+
7
+ def title
8
+ @map["title"]["regular"]
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,24 @@
1
+ require 'json'
2
+
3
+ module Netflix
4
+ class JsonResource
5
+ class << self
6
+ #def from_json(json)
7
+ # map = JSON.parse(json)
8
+ # new(map)
9
+ #end
10
+ def define_getter(*symbols)
11
+ #symbols = [symbols].flatten
12
+ symbols.each do |symbol|
13
+ define_method symbol do
14
+ @map[symbol.to_s]
15
+ end
16
+ end
17
+ end
18
+ end
19
+
20
+ def initialize(map)
21
+ @map = map
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,57 @@
1
+ require 'netflix/json_resource'
2
+
3
+ module Netflix
4
+ class Queue < JsonResource
5
+ TYPE_DISC = "disc"
6
+ TYPE_INSTANT = "instant"
7
+ MAX_RESULTS = 500
8
+
9
+ define_getter :etag, :queue_item
10
+
11
+ def initialize(oauth_access_token, user_id, type=TYPE_DISC)
12
+ @oauth_access_token = oauth_access_token
13
+ @user_id = user_id
14
+ @type = type
15
+ super(retrieve)
16
+ end
17
+
18
+ #def queue_items
19
+ # queue_items = [queue_item].flatten
20
+ # queue_items.map {|queue_item| Disc.new(queue_item)}
21
+ #end
22
+
23
+ def add(title_ref, position=nil)
24
+ response = @oauth_access_token.post "/users/#{@user_id}/queues/#{@type}?output=json", {:etag => etag, :title_ref => title_ref, :position=> position}
25
+ if response && response.code_type == Net::HTTPOK
26
+ #TODO refresh
27
+ else
28
+ raise "Error adding title #{title_ref} to user #{@user_id}"
29
+ end
30
+ end
31
+
32
+ def remove(position)
33
+ response = @oauth_access_token.delete "/users/#{@user_id}/queues/#{@type}/available/#{position}?output=json" #, {:etag => etag})
34
+ if response && response.code_type == Net::HTTPOK
35
+ #TODO refresh
36
+ else
37
+ raise "Error removing title #{title_ref} to user #{@user_id}"
38
+ end
39
+ end
40
+
41
+ def discs
42
+ queue_items = [queue_item].flatten
43
+ queue_items.map {|queue_item| Disc.new(queue_item)}
44
+ end
45
+
46
+ private
47
+ def retrieve
48
+ response = @oauth_access_token.get "/users/#{@user_id}/queues/#{@type}?max_results=#{MAX_RESULTS}&output=json"
49
+ if response && response.body && response.code_type == Net::HTTPOK
50
+ JSON.parse(response.body)["queue"]
51
+ else
52
+ raise "Error retrieving queue for user #{@user_id}"
53
+ end
54
+ end
55
+
56
+ end
57
+ end
@@ -0,0 +1,28 @@
1
+ require 'netflix/json_resource'
2
+
3
+ module Netflix
4
+ class User < JsonResource
5
+ define_getter :can_instant_watch, :first_name, :last_name, :nickname, :user_id
6
+
7
+ def initialize(oauth_access_token, user_id) #access_key, access_secret)
8
+ @oauth_access_token = oauth_access_token
9
+ @user_id = user_id
10
+ super(retrieve)
11
+ end
12
+
13
+ def available_disc_queue
14
+ @available_disc_queue ||= Queue.new(@oauth_access_token, user_id, Queue::TYPE_DISC)
15
+ end
16
+
17
+ private
18
+ def retrieve
19
+ response = @oauth_access_token.get "/users/#{@user_id}?output=json"
20
+ if response && response.body && response.code_type == Net::HTTPOK
21
+ JSON.parse(response.body)["user"]
22
+ else
23
+ raise "Error retrieving user #{@user_id}"
24
+ end
25
+ end
26
+
27
+ end
28
+ end
@@ -0,0 +1,1171 @@
1
+ nuid_one:
2
+ get:
3
+ body: |
4
+ {"queue": {
5
+ "link": [
6
+ {
7
+ "href": "http://api.netflix.com/users/nuid_one/queues/disc/available",
8
+ "rel": "http://schemas.netflix.com/queues.available",
9
+ "title": "available queue"
10
+ },
11
+ {
12
+ "href": "http://api.netflix.com/users/nuid_one/queues/disc/saved",
13
+ "rel": "http://schemas.netflix.com/queues.saved",
14
+ "title": "saved queue"
15
+ }
16
+ ],
17
+ "results_per_page": "3",
18
+ "url_template": "http://api.netflix.com/users/nuid_one/queues/disc?{-join|&|sort|start_index|max_results}",
19
+ "start_index": "0",
20
+ "etag": "115673854498",
21
+ "number_of_results": "3",
22
+ "queue_item": [
23
+ {
24
+ "average_rating": "3.4",
25
+ "box_art": {
26
+ "large": "http://cdn-2.nflximg.com/us/boxshots/large/70167072.jpg",
27
+ "small": "http://cdn-2.nflximg.com/us/boxshots/tiny/70167072.jpg",
28
+ "medium": "http://cdn-2.nflximg.com/us/boxshots/small/70167072.jpg"
29
+ },
30
+ "category": [
31
+ {
32
+ "term": "available now",
33
+ "content": "Available Now",
34
+ "scheme": "http://api.netflix.com/categories/queue_availability",
35
+ "label": "available now"
36
+ },
37
+ {
38
+ "term": "Blu-ray",
39
+ "scheme": "http://api.netflix.com/categories/title_formats",
40
+ "label": "Blu-ray"
41
+ },
42
+ {
43
+ "term": "PG-13",
44
+ "scheme": "http://api.netflix.com/categories/mpaa_ratings",
45
+ "label": "PG-13"
46
+ },
47
+ {
48
+ "term": "Comedy",
49
+ "scheme": "http://api.netflix.com/categories/genres",
50
+ "label": "Comedy"
51
+ },
52
+ {
53
+ "term": "Romantic Comedies",
54
+ "scheme": "http://api.netflix.com/categories/genres",
55
+ "label": "Romantic Comedies"
56
+ }
57
+ ],
58
+ "updated": "1311530716",
59
+ "id": "http://api.netflix.com/users/nuid_one/queues/disc/available/1/70167072",
60
+ "link": [
61
+ {
62
+ "href": "http://api.netflix.com/users/nuid_one/queues/disc/available",
63
+ "rel": "http://schemas.netflix.com/queues.available",
64
+ "title": "available queue"
65
+ },
66
+ {
67
+ "href": "http://api.netflix.com/catalog/titles/movies/70167072",
68
+ "rel": "http://schemas.netflix.com/catalog/title",
69
+ "title": "Arthur"
70
+ },
71
+ {
72
+ "href": "http://api.netflix.com/catalog/titles/movies/70167072/synopsis",
73
+ "rel": "http://schemas.netflix.com/catalog/titles/synopsis",
74
+ "title": "synopsis"
75
+ },
76
+ {
77
+ "href": "http://api.netflix.com/catalog/titles/movies/70167072/cast",
78
+ "rel": "http://schemas.netflix.com/catalog/people.cast",
79
+ "title": "cast"
80
+ },
81
+ {
82
+ "href": "http://api.netflix.com/catalog/titles/movies/70167072/directors",
83
+ "rel": "http://schemas.netflix.com/catalog/people.directors",
84
+ "title": "directors"
85
+ },
86
+ {
87
+ "href": "http://api.netflix.com/catalog/titles/movies/70167072/format_availability",
88
+ "rel": "http://schemas.netflix.com/catalog/titles/format_availability",
89
+ "title": "formats"
90
+ },
91
+ {
92
+ "href": "http://api.netflix.com/catalog/titles/movies/70167072/screen_formats",
93
+ "rel": "http://schemas.netflix.com/catalog/titles/screen_formats",
94
+ "title": "screen formats"
95
+ },
96
+ {
97
+ "href": "http://api.netflix.com/catalog/titles/movies/70167072/languages_and_audio",
98
+ "rel": "http://schemas.netflix.com/catalog/titles/languages_and_audio",
99
+ "title": "languages and audio"
100
+ },
101
+ {
102
+ "href": "http://api.netflix.com/catalog/titles/movies/70167072/similars",
103
+ "rel": "http://schemas.netflix.com/catalog/titles.similars",
104
+ "title": "similars"
105
+ },
106
+ {
107
+ "href": "http://www.netflix.com/Movie/Arthur/70167072",
108
+ "rel": "alternate",
109
+ "title": "web page"
110
+ }
111
+ ],
112
+ "position": "1",
113
+ "runtime": "6600",
114
+ "title": {
115
+ "regular": "Arthur",
116
+ "short": "Arthur"
117
+ },
118
+ "release_year": "2011"
119
+ },
120
+ {
121
+ "average_rating": "3.3",
122
+ "box_art": {
123
+ "large": "http://cdn-6.nflximg.com/us/boxshots/large/70142826.jpg",
124
+ "small": "http://cdn-6.nflximg.com/us/boxshots/tiny/70142826.jpg",
125
+ "medium": "http://cdn-6.nflximg.com/us/boxshots/small/70142826.jpg"
126
+ },
127
+ "category": [
128
+ {
129
+ "term": "available now",
130
+ "content": "Available Now",
131
+ "scheme": "http://api.netflix.com/categories/queue_availability",
132
+ "label": "available now"
133
+ },
134
+ {
135
+ "term": "Blu-ray",
136
+ "scheme": "http://api.netflix.com/categories/title_formats",
137
+ "label": "Blu-ray"
138
+ },
139
+ {
140
+ "term": "R",
141
+ "scheme": "http://api.netflix.com/categories/mpaa_ratings",
142
+ "label": "R"
143
+ },
144
+ {
145
+ "term": "Action & Adventure",
146
+ "scheme": "http://api.netflix.com/categories/genres",
147
+ "label": "Action & Adventure"
148
+ },
149
+ {
150
+ "term": "Action Thrillers",
151
+ "scheme": "http://api.netflix.com/categories/genres",
152
+ "label": "Action Thrillers"
153
+ },
154
+ {
155
+ "term": "Adventures",
156
+ "scheme": "http://api.netflix.com/categories/genres",
157
+ "label": "Adventures"
158
+ }
159
+ ],
160
+ "updated": "1309976644",
161
+ "id": "http://api.netflix.com/users/nuid_one/queues/disc/available/2/70142826",
162
+ "link": [
163
+ {
164
+ "href": "http://api.netflix.com/users/nuid_one/queues/disc/available",
165
+ "rel": "http://schemas.netflix.com/queues.available",
166
+ "title": "available queue"
167
+ },
168
+ {
169
+ "href": "http://api.netflix.com/catalog/titles/movies/70142826",
170
+ "rel": "http://schemas.netflix.com/catalog/title",
171
+ "title": "Sanctum"
172
+ },
173
+ {
174
+ "href": "http://api.netflix.com/catalog/titles/movies/70142826/synopsis",
175
+ "rel": "http://schemas.netflix.com/catalog/titles/synopsis",
176
+ "title": "synopsis"
177
+ },
178
+ {
179
+ "href": "http://api.netflix.com/catalog/titles/movies/70142826/cast",
180
+ "rel": "http://schemas.netflix.com/catalog/people.cast",
181
+ "title": "cast"
182
+ },
183
+ {
184
+ "href": "http://api.netflix.com/catalog/titles/movies/70142826/directors",
185
+ "rel": "http://schemas.netflix.com/catalog/people.directors",
186
+ "title": "directors"
187
+ },
188
+ {
189
+ "href": "http://api.netflix.com/catalog/titles/movies/70142826/format_availability",
190
+ "rel": "http://schemas.netflix.com/catalog/titles/format_availability",
191
+ "title": "formats"
192
+ },
193
+ {
194
+ "href": "http://api.netflix.com/catalog/titles/movies/70142826/screen_formats",
195
+ "rel": "http://schemas.netflix.com/catalog/titles/screen_formats",
196
+ "title": "screen formats"
197
+ },
198
+ {
199
+ "href": "http://api.netflix.com/catalog/titles/movies/70142826/languages_and_audio",
200
+ "rel": "http://schemas.netflix.com/catalog/titles/languages_and_audio",
201
+ "title": "languages and audio"
202
+ },
203
+ {
204
+ "href": "http://api.netflix.com/catalog/titles/movies/70142826/similars",
205
+ "rel": "http://schemas.netflix.com/catalog/titles.similars",
206
+ "title": "similars"
207
+ },
208
+ {
209
+ "href": "http://www.netflix.com/Movie/Sanctum/70142826",
210
+ "rel": "alternate",
211
+ "title": "web page"
212
+ }
213
+ ],
214
+ "position": "2",
215
+ "runtime": "6540",
216
+ "title": {
217
+ "regular": "Sanctum",
218
+ "short": "Sanctum"
219
+ },
220
+ "release_year": "2011"
221
+ },
222
+ {
223
+ "average_rating": "2.9",
224
+ "box_art": {
225
+ "large": "http://cdn-8.nflximg.com/us/boxshots/large/70108988.jpg",
226
+ "small": "http://cdn-8.nflximg.com/us/boxshots/tiny/70108988.jpg",
227
+ "medium": "http://cdn-8.nflximg.com/us/boxshots/small/70108988.jpg"
228
+ },
229
+ "category": [
230
+ {
231
+ "term": "available now",
232
+ "content": "Available Now",
233
+ "scheme": "http://api.netflix.com/categories/queue_availability",
234
+ "label": "available now"
235
+ },
236
+ {
237
+ "term": "Blu-ray",
238
+ "scheme": "http://api.netflix.com/categories/title_formats",
239
+ "label": "Blu-ray"
240
+ },
241
+ {
242
+ "term": "PG",
243
+ "scheme": "http://api.netflix.com/categories/mpaa_ratings",
244
+ "label": "PG"
245
+ },
246
+ {
247
+ "term": "Sci-Fi & Fantasy",
248
+ "scheme": "http://api.netflix.com/categories/genres",
249
+ "label": "Sci-Fi & Fantasy"
250
+ },
251
+ {
252
+ "term": "Family Sci-Fi & Fantasy",
253
+ "scheme": "http://api.netflix.com/categories/genres",
254
+ "label": "Family Sci-Fi & Fantasy"
255
+ },
256
+ {
257
+ "term": "Book Characters",
258
+ "scheme": "http://api.netflix.com/categories/genres",
259
+ "label": "Book Characters"
260
+ }
261
+ ],
262
+ "updated": "1276959724",
263
+ "id": "http://api.netflix.com/users/nuid_one/queues/disc/available/3/70108988",
264
+ "link": [
265
+ {
266
+ "href": "http://api.netflix.com/users/nuid_one/queues/disc/available",
267
+ "rel": "http://schemas.netflix.com/queues.available",
268
+ "title": "available queue"
269
+ },
270
+ {
271
+ "href": "http://api.netflix.com/catalog/titles/movies/70108988",
272
+ "rel": "http://schemas.netflix.com/catalog/title",
273
+ "title": "Where the Wild Things Are"
274
+ },
275
+ {
276
+ "href": "http://api.netflix.com/catalog/titles/movies/70108988/synopsis",
277
+ "rel": "http://schemas.netflix.com/catalog/titles/synopsis",
278
+ "title": "synopsis"
279
+ },
280
+ {
281
+ "href": "http://api.netflix.com/catalog/titles/movies/70108988/cast",
282
+ "rel": "http://schemas.netflix.com/catalog/people.cast",
283
+ "title": "cast"
284
+ },
285
+ {
286
+ "href": "http://api.netflix.com/catalog/titles/movies/70108988/directors",
287
+ "rel": "http://schemas.netflix.com/catalog/people.directors",
288
+ "title": "directors"
289
+ },
290
+ {
291
+ "href": "http://api.netflix.com/catalog/titles/movies/70108988/format_availability",
292
+ "rel": "http://schemas.netflix.com/catalog/titles/format_availability",
293
+ "title": "formats"
294
+ },
295
+ {
296
+ "href": "http://api.netflix.com/catalog/titles/movies/70108988/screen_formats",
297
+ "rel": "http://schemas.netflix.com/catalog/titles/screen_formats",
298
+ "title": "screen formats"
299
+ },
300
+ {
301
+ "href": "http://api.netflix.com/catalog/titles/movies/70108988/languages_and_audio",
302
+ "rel": "http://schemas.netflix.com/catalog/titles/languages_and_audio",
303
+ "title": "languages and audio"
304
+ },
305
+ {
306
+ "href": "http://api.netflix.com/catalog/titles/movies/70108988/similars",
307
+ "rel": "http://schemas.netflix.com/catalog/titles.similars",
308
+ "title": "similars"
309
+ },
310
+ {
311
+ "href": "http://www.netflix.com/Movie/Where_the_Wild_Things_Are/70108988",
312
+ "rel": "alternate",
313
+ "title": "web page"
314
+ }
315
+ ],
316
+ "position": "3",
317
+ "runtime": "5640",
318
+ "title": {
319
+ "regular": "Where the Wild Things Are",
320
+ "short": "Where the Wild Things Are"
321
+ },
322
+ "release_year": "2009"
323
+ }
324
+ ]
325
+ }}
326
+ post:
327
+ body:
328
+ delete:
329
+ body: |
330
+ {"status": {
331
+ "message": "Title deleted from queue",
332
+ "status_code": 200
333
+ }}
334
+
335
+
336
+ nuid_sub1:
337
+ get:
338
+ body: |
339
+ {"queue": {
340
+ "link": [
341
+ {
342
+ "href": "http://api.netflix.com/users/nuid_sub1/queues/disc/available",
343
+ "rel": "http://schemas.netflix.com/queues.available",
344
+ "title": "available queue"
345
+ },
346
+ {
347
+ "href": "http://api.netflix.com/users/nuid_sub1/queues/disc/saved",
348
+ "rel": "http://schemas.netflix.com/queues.saved",
349
+ "title": "saved queue"
350
+ }
351
+ ],
352
+ "results_per_page": "3",
353
+ "url_template": "http://api.netflix.com/users/nuid_sub1/queues/disc?{-join|&|sort|start_index|max_results}",
354
+ "start_index": "0",
355
+ "etag": "115673854498",
356
+ "number_of_results": "3",
357
+ "queue_item": [
358
+ {
359
+ "average_rating": "3.7",
360
+ "box_art": {
361
+ "large": "http://cdn-3.nflximg.com/us/boxshots/large/70071613.jpg",
362
+ "small": "http://cdn-3.nflximg.com/us/boxshots/tiny/70071613.jpg",
363
+ "medium": "http://cdn-3.nflximg.com/us/boxshots/small/70071613.jpg"
364
+ },
365
+ "category": [
366
+ {
367
+ "term": "available now",
368
+ "content": "Available Now",
369
+ "scheme": "http://api.netflix.com/categories/queue_availability",
370
+ "label": "available now"
371
+ },
372
+ {
373
+ "term": "Blu-ray",
374
+ "scheme": "http://api.netflix.com/categories/title_formats",
375
+ "label": "Blu-ray"
376
+ },
377
+ {
378
+ "term": "R",
379
+ "scheme": "http://api.netflix.com/categories/mpaa_ratings",
380
+ "label": "R"
381
+ },
382
+ {
383
+ "term": "Thrillers",
384
+ "scheme": "http://api.netflix.com/categories/genres",
385
+ "label": "Thrillers"
386
+ },
387
+ {
388
+ "term": "Crime Thrillers",
389
+ "scheme": "http://api.netflix.com/categories/genres",
390
+ "label": "Crime Thrillers"
391
+ },
392
+ {
393
+ "term": "Suspense",
394
+ "scheme": "http://api.netflix.com/categories/genres",
395
+ "label": "Suspense"
396
+ },
397
+ {
398
+ "term": "Dramas Based on Contemporary Literature",
399
+ "scheme": "http://api.netflix.com/categories/genres",
400
+ "label": "Dramas Based on Contemporary Literature"
401
+ },
402
+ {
403
+ "term": "Dramas Based on the Book",
404
+ "scheme": "http://api.netflix.com/categories/genres",
405
+ "label": "Dramas Based on the Book"
406
+ }
407
+ ],
408
+ "updated": "1276960028",
409
+ "id": "http://api.netflix.com/users/nuid_sub1/queues/disc/available/1/70071613",
410
+ "link": [
411
+ {
412
+ "href": "http://api.netflix.com/users/nuid_sub1/queues/disc/available",
413
+ "rel": "http://schemas.netflix.com/queues.available",
414
+ "title": "available queue"
415
+ },
416
+ {
417
+ "href": "http://api.netflix.com/catalog/titles/movies/70071613",
418
+ "rel": "http://schemas.netflix.com/catalog/title",
419
+ "title": "No Country for Old Men"
420
+ },
421
+ {
422
+ "href": "http://api.netflix.com/catalog/titles/movies/70071613/synopsis",
423
+ "rel": "http://schemas.netflix.com/catalog/titles/synopsis",
424
+ "title": "synopsis"
425
+ },
426
+ {
427
+ "href": "http://api.netflix.com/catalog/titles/movies/70071613/cast",
428
+ "rel": "http://schemas.netflix.com/catalog/people.cast",
429
+ "title": "cast"
430
+ },
431
+ {
432
+ "href": "http://api.netflix.com/catalog/titles/movies/70071613/directors",
433
+ "rel": "http://schemas.netflix.com/catalog/people.directors",
434
+ "title": "directors"
435
+ },
436
+ {
437
+ "href": "http://api.netflix.com/catalog/titles/movies/70071613/format_availability",
438
+ "rel": "http://schemas.netflix.com/catalog/titles/format_availability",
439
+ "title": "formats"
440
+ },
441
+ {
442
+ "href": "http://api.netflix.com/catalog/titles/movies/70071613/awards",
443
+ "rel": "http://schemas.netflix.com/catalog/titles/awards",
444
+ "title": "awards"
445
+ },
446
+ {
447
+ "href": "http://api.netflix.com/catalog/titles/movies/70071613/screen_formats",
448
+ "rel": "http://schemas.netflix.com/catalog/titles/screen_formats",
449
+ "title": "screen formats"
450
+ },
451
+ {
452
+ "href": "http://api.netflix.com/catalog/titles/movies/70071613/languages_and_audio",
453
+ "rel": "http://schemas.netflix.com/catalog/titles/languages_and_audio",
454
+ "title": "languages and audio"
455
+ },
456
+ {
457
+ "href": "http://api.netflix.com/catalog/titles/movies/70071613/similars",
458
+ "rel": "http://schemas.netflix.com/catalog/titles.similars",
459
+ "title": "similars"
460
+ },
461
+ {
462
+ "href": "http://www.netflix.com/Movie/No_Country_for_Old_Men/70071613",
463
+ "rel": "alternate",
464
+ "title": "web page"
465
+ }
466
+ ],
467
+ "position": "1",
468
+ "runtime": "7320",
469
+ "title": {
470
+ "regular": "No Country for Old Men",
471
+ "short": "No Country for Old Men"
472
+ },
473
+ "release_year": "2007"
474
+ },
475
+ {
476
+ "average_rating": "3.1",
477
+ "box_art": {
478
+ "large": "http://cdn-6.nflximg.com/us/boxshots/large/70117306.jpg",
479
+ "small": "http://cdn-6.nflximg.com/us/boxshots/tiny/70117306.jpg",
480
+ "medium": "http://cdn-6.nflximg.com/us/boxshots/small/70117306.jpg"
481
+ },
482
+ "category": [
483
+ {
484
+ "term": "available now",
485
+ "content": "Available Now",
486
+ "scheme": "http://api.netflix.com/categories/queue_availability",
487
+ "label": "available now"
488
+ },
489
+ {
490
+ "term": "Blu-ray",
491
+ "scheme": "http://api.netflix.com/categories/title_formats",
492
+ "label": "Blu-ray"
493
+ },
494
+ {
495
+ "term": "R",
496
+ "scheme": "http://api.netflix.com/categories/mpaa_ratings",
497
+ "label": "R"
498
+ },
499
+ {
500
+ "term": "Comedy",
501
+ "scheme": "http://api.netflix.com/categories/genres",
502
+ "label": "Comedy"
503
+ },
504
+ {
505
+ "term": "Indie Comedies",
506
+ "scheme": "http://api.netflix.com/categories/genres",
507
+ "label": "Indie Comedies"
508
+ }
509
+ ],
510
+ "updated": "1279363706",
511
+ "id": "http://api.netflix.com/users/nuid_sub1/queues/disc/available/2/70117306",
512
+ "link": [
513
+ {
514
+ "href": "http://api.netflix.com/users/nuid_sub1/queues/disc/available",
515
+ "rel": "http://schemas.netflix.com/queues.available",
516
+ "title": "available queue"
517
+ },
518
+ {
519
+ "href": "http://api.netflix.com/catalog/titles/movies/70117306",
520
+ "rel": "http://schemas.netflix.com/catalog/title",
521
+ "title": "Extract"
522
+ },
523
+ {
524
+ "href": "http://api.netflix.com/catalog/titles/movies/70117306/synopsis",
525
+ "rel": "http://schemas.netflix.com/catalog/titles/synopsis",
526
+ "title": "synopsis"
527
+ },
528
+ {
529
+ "href": "http://api.netflix.com/catalog/titles/movies/70117306/cast",
530
+ "rel": "http://schemas.netflix.com/catalog/people.cast",
531
+ "title": "cast"
532
+ },
533
+ {
534
+ "href": "http://api.netflix.com/catalog/titles/movies/70117306/directors",
535
+ "rel": "http://schemas.netflix.com/catalog/people.directors",
536
+ "title": "directors"
537
+ },
538
+ {
539
+ "href": "http://api.netflix.com/catalog/titles/movies/70117306/format_availability",
540
+ "rel": "http://schemas.netflix.com/catalog/titles/format_availability",
541
+ "title": "formats"
542
+ },
543
+ {
544
+ "href": "http://api.netflix.com/catalog/titles/movies/70117306/screen_formats",
545
+ "rel": "http://schemas.netflix.com/catalog/titles/screen_formats",
546
+ "title": "screen formats"
547
+ },
548
+ {
549
+ "href": "http://api.netflix.com/catalog/titles/movies/70117306/languages_and_audio",
550
+ "rel": "http://schemas.netflix.com/catalog/titles/languages_and_audio",
551
+ "title": "languages and audio"
552
+ },
553
+ {
554
+ "href": "http://api.netflix.com/catalog/titles/movies/70117306/similars",
555
+ "rel": "http://schemas.netflix.com/catalog/titles.similars",
556
+ "title": "similars"
557
+ },
558
+ {
559
+ "href": "http://www.netflix.com/Movie/Extract/70117306",
560
+ "rel": "alternate",
561
+ "title": "web page"
562
+ }
563
+ ],
564
+ "position": "2",
565
+ "runtime": "5400",
566
+ "title": {
567
+ "regular": "Extract",
568
+ "short": "Extract"
569
+ },
570
+ "release_year": "2009"
571
+ },
572
+ {
573
+ "average_rating": "3.3",
574
+ "box_art": {
575
+ "large": "http://cdn-5.nflximg.com/us/boxshots/large/70105135.jpg",
576
+ "small": "http://cdn-5.nflximg.com/us/boxshots/tiny/70105135.jpg",
577
+ "medium": "http://cdn-5.nflximg.com/us/boxshots/small/70105135.jpg"
578
+ },
579
+ "category": [
580
+ {
581
+ "term": "available now",
582
+ "content": "Available Now",
583
+ "scheme": "http://api.netflix.com/categories/queue_availability",
584
+ "label": "available now"
585
+ },
586
+ {
587
+ "term": "Blu-ray",
588
+ "scheme": "http://api.netflix.com/categories/title_formats",
589
+ "label": "Blu-ray"
590
+ },
591
+ {
592
+ "term": "R",
593
+ "scheme": "http://api.netflix.com/categories/mpaa_ratings",
594
+ "label": "R"
595
+ },
596
+ {
597
+ "term": "Thrillers",
598
+ "scheme": "http://api.netflix.com/categories/genres",
599
+ "label": "Thrillers"
600
+ },
601
+ {
602
+ "term": "Suspense",
603
+ "scheme": "http://api.netflix.com/categories/genres",
604
+ "label": "Suspense"
605
+ },
606
+ {
607
+ "term": "Dramas Based on Contemporary Literature",
608
+ "scheme": "http://api.netflix.com/categories/genres",
609
+ "label": "Dramas Based on Contemporary Literature"
610
+ },
611
+ {
612
+ "term": "Dramas Based on the Book",
613
+ "scheme": "http://api.netflix.com/categories/genres",
614
+ "label": "Dramas Based on the Book"
615
+ }
616
+ ],
617
+ "updated": "1277009665",
618
+ "id": "http://api.netflix.com/users/nuid_sub1/queues/disc/available/3/70105135",
619
+ "link": [
620
+ {
621
+ "href": "http://api.netflix.com/users/nuid_sub1/queues/disc/available",
622
+ "rel": "http://schemas.netflix.com/queues.available",
623
+ "title": "available queue"
624
+ },
625
+ {
626
+ "href": "http://api.netflix.com/catalog/titles/movies/70105135",
627
+ "rel": "http://schemas.netflix.com/catalog/title",
628
+ "title": "The Road"
629
+ },
630
+ {
631
+ "href": "http://api.netflix.com/catalog/titles/movies/70105135/synopsis",
632
+ "rel": "http://schemas.netflix.com/catalog/titles/synopsis",
633
+ "title": "synopsis"
634
+ },
635
+ {
636
+ "href": "http://api.netflix.com/catalog/titles/movies/70105135/cast",
637
+ "rel": "http://schemas.netflix.com/catalog/people.cast",
638
+ "title": "cast"
639
+ },
640
+ {
641
+ "href": "http://api.netflix.com/catalog/titles/movies/70105135/directors",
642
+ "rel": "http://schemas.netflix.com/catalog/people.directors",
643
+ "title": "directors"
644
+ },
645
+ {
646
+ "href": "http://api.netflix.com/catalog/titles/movies/70105135/format_availability",
647
+ "rel": "http://schemas.netflix.com/catalog/titles/format_availability",
648
+ "title": "formats"
649
+ },
650
+ {
651
+ "href": "http://api.netflix.com/catalog/titles/movies/70105135/screen_formats",
652
+ "rel": "http://schemas.netflix.com/catalog/titles/screen_formats",
653
+ "title": "screen formats"
654
+ },
655
+ {
656
+ "href": "http://api.netflix.com/catalog/titles/movies/70105135/languages_and_audio",
657
+ "rel": "http://schemas.netflix.com/catalog/titles/languages_and_audio",
658
+ "title": "languages and audio"
659
+ },
660
+ {
661
+ "href": "http://api.netflix.com/catalog/titles/movies/70105135/similars",
662
+ "rel": "http://schemas.netflix.com/catalog/titles.similars",
663
+ "title": "similars"
664
+ },
665
+ {
666
+ "href": "http://www.netflix.com/Movie/The_Road/70105135",
667
+ "rel": "alternate",
668
+ "title": "web page"
669
+ }
670
+ ],
671
+ "position": "3",
672
+ "runtime": "6660",
673
+ "title": {
674
+ "regular": "The Road",
675
+ "short": "The Road"
676
+ },
677
+ "release_year": "2009"
678
+ }
679
+ ]
680
+ }}
681
+ post:
682
+ body: |
683
+ {"status": {
684
+ "resources_created": {"queue_item": {
685
+ "average_rating": "3.4",
686
+ "box_art": {
687
+ "large": "http://cdn-2.nflximg.com/us/boxshots/large/70167072.jpg",
688
+ "small": "http://cdn-2.nflximg.com/us/boxshots/tiny/70167072.jpg",
689
+ "medium": "http://cdn-2.nflximg.com/us/boxshots/small/70167072.jpg"
690
+ },
691
+ "category": [
692
+ {
693
+ "term": "available now",
694
+ "content": "Available Now",
695
+ "scheme": "http://api.netflix.com/categories/queue_availability",
696
+ "label": "available now"
697
+ },
698
+ {
699
+ "term": "Blu-ray",
700
+ "scheme": "http://api.netflix.com/categories/title_formats",
701
+ "label": "Blu-ray"
702
+ },
703
+ {
704
+ "term": "PG-13",
705
+ "scheme": "http://api.netflix.com/categories/mpaa_ratings",
706
+ "label": "PG-13"
707
+ },
708
+ {
709
+ "term": "Comedy",
710
+ "scheme": "http://api.netflix.com/categories/genres",
711
+ "label": "Comedy"
712
+ },
713
+ {
714
+ "term": "Romantic Comedies",
715
+ "scheme": "http://api.netflix.com/categories/genres",
716
+ "label": "Romantic Comedies"
717
+ }
718
+ ],
719
+ "updated": "1323539988",
720
+ "id": "http://api.netflix.com/users/nuid_sub1/queues/disc/available/1/70167072",
721
+ "link": [
722
+ {
723
+ "href": "http://api.netflix.com/users/nuid_sub1/queues/disc/available",
724
+ "rel": "http://schemas.netflix.com/queues.available",
725
+ "title": "available queue"
726
+ },
727
+ {
728
+ "href": "http://api.netflix.com/catalog/titles/movies/70167072",
729
+ "rel": "http://schemas.netflix.com/catalog/title",
730
+ "title": "Arthur"
731
+ },
732
+ {
733
+ "href": "http://api.netflix.com/catalog/titles/movies/70167072/synopsis",
734
+ "rel": "http://schemas.netflix.com/catalog/titles/synopsis",
735
+ "title": "synopsis"
736
+ },
737
+ {
738
+ "href": "http://api.netflix.com/catalog/titles/movies/70167072/cast",
739
+ "rel": "http://schemas.netflix.com/catalog/people.cast",
740
+ "title": "cast"
741
+ },
742
+ {
743
+ "href": "http://api.netflix.com/catalog/titles/movies/70167072/directors",
744
+ "rel": "http://schemas.netflix.com/catalog/people.directors",
745
+ "title": "directors"
746
+ },
747
+ {
748
+ "href": "http://api.netflix.com/catalog/titles/movies/70167072/format_availability",
749
+ "rel": "http://schemas.netflix.com/catalog/titles/format_availability",
750
+ "title": "formats"
751
+ },
752
+ {
753
+ "href": "http://api.netflix.com/catalog/titles/movies/70167072/screen_formats",
754
+ "rel": "http://schemas.netflix.com/catalog/titles/screen_formats",
755
+ "title": "screen formats"
756
+ },
757
+ {
758
+ "href": "http://api.netflix.com/catalog/titles/movies/70167072/languages_and_audio",
759
+ "rel": "http://schemas.netflix.com/catalog/titles/languages_and_audio",
760
+ "title": "languages and audio"
761
+ },
762
+ {
763
+ "href": "http://api.netflix.com/catalog/titles/movies/70167072/similars",
764
+ "rel": "http://schemas.netflix.com/catalog/titles.similars",
765
+ "title": "similars"
766
+ },
767
+ {
768
+ "href": "http://www.netflix.com/Movie/Arthur/70167072",
769
+ "rel": "alternate",
770
+ "title": "web page"
771
+ }
772
+ ],
773
+ "position": "1",
774
+ "runtime": "6600",
775
+ "title": {
776
+ "regular": "Arthur",
777
+ "short": "Arthur"
778
+ },
779
+ "release_year": "2011"
780
+ }},
781
+ "status_code": "201",
782
+ "message": "Move successful",
783
+ "etag": "82198468425"
784
+ }}
785
+ delete:
786
+ body:
787
+
788
+ nuid_sub2:
789
+ get:
790
+ body: |
791
+ {"queue": {
792
+ "link": [
793
+ {
794
+ "href": "http://api.netflix.com/users/nuid_sub2/queues/disc/available",
795
+ "rel": "http://schemas.netflix.com/queues.available",
796
+ "title": "available queue"
797
+ },
798
+ {
799
+ "href": "http://api.netflix.com/users/nuid_sub2/queues/disc/saved",
800
+ "rel": "http://schemas.netflix.com/queues.saved",
801
+ "title": "saved queue"
802
+ }
803
+ ],
804
+ "results_per_page": "3",
805
+ "url_template": "http://api.netflix.com/users/nuid_sub2/queues/disc?{-join|&|sort|start_index|max_results}",
806
+ "start_index": "0",
807
+ "etag": "115673854498",
808
+ "number_of_results": "3",
809
+ "queue_item": [
810
+ {
811
+ "average_rating": "3.7",
812
+ "box_art": {
813
+ "large": "http://cdn-3.nflximg.com/us/boxshots/large/1180113.jpg",
814
+ "small": "http://cdn-3.nflximg.com/us/boxshots/tiny/1180113.jpg",
815
+ "medium": "http://cdn-3.nflximg.com/us/boxshots/small/1180113.jpg"
816
+ },
817
+ "category": [
818
+ {
819
+ "term": "available now",
820
+ "content": "Available Now",
821
+ "scheme": "http://api.netflix.com/categories/queue_availability",
822
+ "label": "available now"
823
+ },
824
+ {
825
+ "term": "Blu-ray",
826
+ "scheme": "http://api.netflix.com/categories/title_formats",
827
+ "label": "Blu-ray"
828
+ },
829
+ {
830
+ "term": "PG-13",
831
+ "scheme": "http://api.netflix.com/categories/mpaa_ratings",
832
+ "label": "PG-13"
833
+ },
834
+ {
835
+ "term": "Sci-Fi & Fantasy",
836
+ "scheme": "http://api.netflix.com/categories/genres",
837
+ "label": "Sci-Fi & Fantasy"
838
+ },
839
+ {
840
+ "term": "Sci-Fi Dramas",
841
+ "scheme": "http://api.netflix.com/categories/genres",
842
+ "label": "Sci-Fi Dramas"
843
+ },
844
+ {
845
+ "term": "Sci-Fi Thrillers",
846
+ "scheme": "http://api.netflix.com/categories/genres",
847
+ "label": "Sci-Fi Thrillers"
848
+ }
849
+ ],
850
+ "updated": "1284627952",
851
+ "id": "http://api.netflix.com/users/nuid_sub2/queues/disc/available/1/1180113",
852
+ "link": [
853
+ {
854
+ "href": "http://api.netflix.com/users/nuid_sub2/queues/disc/available",
855
+ "rel": "http://schemas.netflix.com/queues.available",
856
+ "title": "available queue"
857
+ },
858
+ {
859
+ "href": "http://api.netflix.com/catalog/titles/movies/1180113",
860
+ "rel": "http://schemas.netflix.com/catalog/title",
861
+ "title": "Gattaca"
862
+ },
863
+ {
864
+ "href": "http://api.netflix.com/catalog/titles/movies/1180113/synopsis",
865
+ "rel": "http://schemas.netflix.com/catalog/titles/synopsis",
866
+ "title": "synopsis"
867
+ },
868
+ {
869
+ "href": "http://api.netflix.com/catalog/titles/movies/1180113/cast",
870
+ "rel": "http://schemas.netflix.com/catalog/people.cast",
871
+ "title": "cast"
872
+ },
873
+ {
874
+ "href": "http://api.netflix.com/catalog/titles/movies/1180113/directors",
875
+ "rel": "http://schemas.netflix.com/catalog/people.directors",
876
+ "title": "directors"
877
+ },
878
+ {
879
+ "href": "http://api.netflix.com/catalog/titles/movies/1180113/format_availability",
880
+ "rel": "http://schemas.netflix.com/catalog/titles/format_availability",
881
+ "title": "formats"
882
+ },
883
+ {
884
+ "href": "http://api.netflix.com/catalog/titles/movies/1180113/awards",
885
+ "rel": "http://schemas.netflix.com/catalog/titles/awards",
886
+ "title": "awards"
887
+ },
888
+ {
889
+ "href": "http://api.netflix.com/catalog/titles/movies/1180113/screen_formats",
890
+ "rel": "http://schemas.netflix.com/catalog/titles/screen_formats",
891
+ "title": "screen formats"
892
+ },
893
+ {
894
+ "href": "http://api.netflix.com/catalog/titles/movies/1180113/languages_and_audio",
895
+ "rel": "http://schemas.netflix.com/catalog/titles/languages_and_audio",
896
+ "title": "languages and audio"
897
+ },
898
+ {
899
+ "href": "http://api.netflix.com/catalog/titles/movies/1180113/similars",
900
+ "rel": "http://schemas.netflix.com/catalog/titles.similars",
901
+ "title": "similars"
902
+ },
903
+ {
904
+ "href": "http://www.spe.sony.com/Pictures/SonyMovies/movies/Gattaca/",
905
+ "rel": "http://schemas.netflix.com/catalog/titles/official_url",
906
+ "title": "official webpage"
907
+ },
908
+ {
909
+ "href": "http://www.netflix.com/Movie/Gattaca/1180113",
910
+ "rel": "alternate",
911
+ "title": "web page"
912
+ }
913
+ ],
914
+ "position": "1",
915
+ "runtime": "6360",
916
+ "title": {
917
+ "regular": "Gattaca",
918
+ "short": "Gattaca"
919
+ },
920
+ "release_year": "1997"
921
+ },
922
+ {
923
+ "average_rating": "3.4",
924
+ "box_art": {
925
+ "large": "http://cdn-9.nflximg.com/us/boxshots/large/60000209.jpg",
926
+ "small": "http://cdn-9.nflximg.com/us/boxshots/tiny/60000209.jpg",
927
+ "medium": "http://cdn-9.nflximg.com/us/boxshots/small/60000209.jpg"
928
+ },
929
+ "category": [
930
+ {
931
+ "term": "available now",
932
+ "content": "Available Now",
933
+ "scheme": "http://api.netflix.com/categories/queue_availability",
934
+ "label": "available now"
935
+ },
936
+ {
937
+ "term": "DVD",
938
+ "scheme": "http://api.netflix.com/categories/title_formats",
939
+ "label": "DVD"
940
+ },
941
+ {
942
+ "term": "R",
943
+ "scheme": "http://api.netflix.com/categories/mpaa_ratings",
944
+ "label": "R"
945
+ },
946
+ {
947
+ "term": "Thrillers",
948
+ "scheme": "http://api.netflix.com/categories/genres",
949
+ "label": "Thrillers"
950
+ },
951
+ {
952
+ "term": "Psychological Thrillers",
953
+ "scheme": "http://api.netflix.com/categories/genres",
954
+ "label": "Psychological Thrillers"
955
+ },
956
+ {
957
+ "term": "Dramas Based on the Book",
958
+ "scheme": "http://api.netflix.com/categories/genres",
959
+ "label": "Dramas Based on the Book"
960
+ },
961
+ {
962
+ "term": "Crime Thrillers",
963
+ "scheme": "http://api.netflix.com/categories/genres",
964
+ "label": "Crime Thrillers"
965
+ },
966
+ {
967
+ "term": "Dramas Based on Classic Literature",
968
+ "scheme": "http://api.netflix.com/categories/genres",
969
+ "label": "Dramas Based on Classic Literature"
970
+ },
971
+ {
972
+ "term": "Period Pieces",
973
+ "scheme": "http://api.netflix.com/categories/genres",
974
+ "label": "Period Pieces"
975
+ },
976
+ {
977
+ "term": "20th Century Period Pieces",
978
+ "scheme": "http://api.netflix.com/categories/genres",
979
+ "label": "20th Century Period Pieces"
980
+ }
981
+ ],
982
+ "updated": "1281864775",
983
+ "id": "http://api.netflix.com/users/nuid_sub2/queues/disc/available/2/60000209",
984
+ "link": [
985
+ {
986
+ "href": "http://api.netflix.com/users/nuid_sub2/queues/disc/available",
987
+ "rel": "http://schemas.netflix.com/queues.available",
988
+ "title": "available queue"
989
+ },
990
+ {
991
+ "href": "http://api.netflix.com/catalog/titles/movies/60000209",
992
+ "rel": "http://schemas.netflix.com/catalog/title",
993
+ "title": "The Talented Mr. Ripley"
994
+ },
995
+ {
996
+ "href": "http://api.netflix.com/catalog/titles/movies/60000209/synopsis",
997
+ "rel": "http://schemas.netflix.com/catalog/titles/synopsis",
998
+ "title": "synopsis"
999
+ },
1000
+ {
1001
+ "href": "http://api.netflix.com/catalog/titles/movies/60000209/cast",
1002
+ "rel": "http://schemas.netflix.com/catalog/people.cast",
1003
+ "title": "cast"
1004
+ },
1005
+ {
1006
+ "href": "http://api.netflix.com/catalog/titles/movies/60000209/directors",
1007
+ "rel": "http://schemas.netflix.com/catalog/people.directors",
1008
+ "title": "directors"
1009
+ },
1010
+ {
1011
+ "href": "http://api.netflix.com/catalog/titles/movies/60000209/format_availability",
1012
+ "rel": "http://schemas.netflix.com/catalog/titles/format_availability",
1013
+ "title": "formats"
1014
+ },
1015
+ {
1016
+ "href": "http://api.netflix.com/catalog/titles/movies/60000209/awards",
1017
+ "rel": "http://schemas.netflix.com/catalog/titles/awards",
1018
+ "title": "awards"
1019
+ },
1020
+ {
1021
+ "href": "http://api.netflix.com/catalog/titles/movies/60000209/screen_formats",
1022
+ "rel": "http://schemas.netflix.com/catalog/titles/screen_formats",
1023
+ "title": "screen formats"
1024
+ },
1025
+ {
1026
+ "href": "http://api.netflix.com/catalog/titles/movies/60000209/languages_and_audio",
1027
+ "rel": "http://schemas.netflix.com/catalog/titles/languages_and_audio",
1028
+ "title": "languages and audio"
1029
+ },
1030
+ {
1031
+ "href": "http://api.netflix.com/catalog/titles/movies/60000209/similars",
1032
+ "rel": "http://schemas.netflix.com/catalog/titles.similars",
1033
+ "title": "similars"
1034
+ },
1035
+ {
1036
+ "href": "http://www.talentedmrripley.com/",
1037
+ "rel": "http://schemas.netflix.com/catalog/titles/official_url",
1038
+ "title": "official webpage"
1039
+ },
1040
+ {
1041
+ "href": "http://www.netflix.com/Movie/The_Talented_Mr._Ripley/60000209",
1042
+ "rel": "alternate",
1043
+ "title": "web page"
1044
+ }
1045
+ ],
1046
+ "position": "2",
1047
+ "runtime": "8340",
1048
+ "title": {
1049
+ "regular": "The Talented Mr. Ripley",
1050
+ "short": "The Talented Mr. Ripley"
1051
+ },
1052
+ "release_year": "1999"
1053
+ },
1054
+ {
1055
+ "average_rating": "3.6",
1056
+ "box_art": {
1057
+ "large": "http://cdn-9.nflximg.com/us/boxshots/large/70075479.jpg",
1058
+ "small": "http://cdn-9.nflximg.com/us/boxshots/tiny/70075479.jpg",
1059
+ "medium": "http://cdn-9.nflximg.com/us/boxshots/small/70075479.jpg"
1060
+ },
1061
+ "category": [
1062
+ {
1063
+ "term": "available now",
1064
+ "content": "Available Now",
1065
+ "scheme": "http://api.netflix.com/categories/queue_availability",
1066
+ "label": "available now"
1067
+ },
1068
+ {
1069
+ "term": "Blu-ray",
1070
+ "scheme": "http://api.netflix.com/categories/title_formats",
1071
+ "label": "Blu-ray"
1072
+ },
1073
+ {
1074
+ "term": "R",
1075
+ "scheme": "http://api.netflix.com/categories/mpaa_ratings",
1076
+ "label": "R"
1077
+ },
1078
+ {
1079
+ "term": "Action & Adventure",
1080
+ "scheme": "http://api.netflix.com/categories/genres",
1081
+ "label": "Action & Adventure"
1082
+ },
1083
+ {
1084
+ "term": "Action Thrillers",
1085
+ "scheme": "http://api.netflix.com/categories/genres",
1086
+ "label": "Action Thrillers"
1087
+ },
1088
+ {
1089
+ "term": "Crime Action",
1090
+ "scheme": "http://api.netflix.com/categories/genres",
1091
+ "label": "Crime Action"
1092
+ },
1093
+ {
1094
+ "term": "Comic Books and Superheroes",
1095
+ "scheme": "http://api.netflix.com/categories/genres",
1096
+ "label": "Comic Books and Superheroes"
1097
+ }
1098
+ ],
1099
+ "updated": "1283193767",
1100
+ "id": "http://api.netflix.com/users/nuid_sub2/queues/disc/available/3/70075479",
1101
+ "link": [
1102
+ {
1103
+ "href": "http://api.netflix.com/users/nuid_sub2/queues/disc/available",
1104
+ "rel": "http://schemas.netflix.com/queues.available",
1105
+ "title": "available queue"
1106
+ },
1107
+ {
1108
+ "href": "http://api.netflix.com/catalog/titles/movies/70075479",
1109
+ "rel": "http://schemas.netflix.com/catalog/title",
1110
+ "title": "Wanted"
1111
+ },
1112
+ {
1113
+ "href": "http://api.netflix.com/catalog/titles/movies/70075479/synopsis",
1114
+ "rel": "http://schemas.netflix.com/catalog/titles/synopsis",
1115
+ "title": "synopsis"
1116
+ },
1117
+ {
1118
+ "href": "http://api.netflix.com/catalog/titles/movies/70075479/bonus_materials",
1119
+ "rel": "http://schemas.netflix.com/catalog/titles/bonus_materials",
1120
+ "title": "bonus materials"
1121
+ },
1122
+ {
1123
+ "href": "http://api.netflix.com/catalog/titles/movies/70075479/cast",
1124
+ "rel": "http://schemas.netflix.com/catalog/people.cast",
1125
+ "title": "cast"
1126
+ },
1127
+ {
1128
+ "href": "http://api.netflix.com/catalog/titles/movies/70075479/directors",
1129
+ "rel": "http://schemas.netflix.com/catalog/people.directors",
1130
+ "title": "directors"
1131
+ },
1132
+ {
1133
+ "href": "http://api.netflix.com/catalog/titles/movies/70075479/format_availability",
1134
+ "rel": "http://schemas.netflix.com/catalog/titles/format_availability",
1135
+ "title": "formats"
1136
+ },
1137
+ {
1138
+ "href": "http://api.netflix.com/catalog/titles/movies/70075479/screen_formats",
1139
+ "rel": "http://schemas.netflix.com/catalog/titles/screen_formats",
1140
+ "title": "screen formats"
1141
+ },
1142
+ {
1143
+ "href": "http://api.netflix.com/catalog/titles/movies/70075479/languages_and_audio",
1144
+ "rel": "http://schemas.netflix.com/catalog/titles/languages_and_audio",
1145
+ "title": "languages and audio"
1146
+ },
1147
+ {
1148
+ "href": "http://api.netflix.com/catalog/titles/movies/70075479/similars",
1149
+ "rel": "http://schemas.netflix.com/catalog/titles.similars",
1150
+ "title": "similars"
1151
+ },
1152
+ {
1153
+ "href": "http://www.netflix.com/Movie/Wanted/70075479",
1154
+ "rel": "alternate",
1155
+ "title": "web page"
1156
+ }
1157
+ ],
1158
+ "position": "3",
1159
+ "runtime": "6600",
1160
+ "title": {
1161
+ "regular": "Wanted",
1162
+ "short": "Wanted"
1163
+ },
1164
+ "release_year": "2008"
1165
+ }
1166
+ ]
1167
+ }}
1168
+ post:
1169
+ body:
1170
+ delete:
1171
+ body: