netflix 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/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: