xbox_leaders 2.0.0 → 3.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6868953a2d45dcfbd67dda2e228866ddadb45a37
4
- data.tar.gz: a748f44b54eb858144d9cfe2ed574aca48dce1bb
3
+ metadata.gz: 1b740e132b446eee3ff421dba622e7693fae9b39
4
+ data.tar.gz: cb69cd879ff95226903b49ab52d422dd800bbff1
5
5
  SHA512:
6
- metadata.gz: 521e1108cb88177414c261a799776100b37561017d4fff6c96be6692200e950b374c78d7fb8c59de3bb28ab02a52c9fe923c854b718057921724e3188352f683
7
- data.tar.gz: fddf8984fbee43178d41c63584ba7a7866ee2255bad798a8695e2ccc4ffd64139388b82f7b34fd80faa2191fea0a1ca63fb38257b08958c825d8bed7ca7acc9b
6
+ metadata.gz: bfed068489541bc6428e4a4a7a1eb5f30ec9044524e3124e0b6a3b94ce0a33c9626c66d45fc16d6825298f8e79fd3e22eb587560f014840ed333f4e2d6581fe6
7
+ data.tar.gz: 11272b80f4b4cf6be52722eccc70ef117fa4d122b6f005330e80e8dd0ac0c7e4527dae162dc292f39ada839e1881bf5c6d8bfcb0f332907760fa67a49e9ba662
@@ -1 +1 @@
1
- ruby-2.0.0-p0
1
+ ruby-2.1.1
data/Gemfile CHANGED
@@ -1,3 +1,3 @@
1
1
  source "https://rubygems.org"
2
- ruby '2.0.0'
2
+ ruby '2.1.1'
3
3
  gemspec
@@ -1,40 +1,44 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- xbox_leaders (2.0.0)
4
+ xbox_leaders (3.0.0)
5
5
  httparty
6
6
 
7
7
  GEM
8
8
  remote: https://rubygems.org/
9
9
  specs:
10
- coderay (1.0.9)
11
- diff-lcs (1.2.1)
12
- httparty (0.11.0)
13
- multi_json (~> 1.0)
10
+ coderay (1.1.0)
11
+ diff-lcs (1.2.5)
12
+ fakeweb (1.3.0)
13
+ httparty (0.13.1)
14
+ json (~> 1.8)
14
15
  multi_xml (>= 0.5.2)
15
- method_source (0.8.1)
16
- multi_json (1.8.0)
17
- multi_xml (0.5.3)
18
- pry (0.9.12)
19
- coderay (~> 1.0.5)
16
+ json (1.8.1)
17
+ method_source (0.8.2)
18
+ multi_xml (0.5.5)
19
+ pry (0.9.12.6)
20
+ coderay (~> 1.0)
20
21
  method_source (~> 0.8)
21
22
  slop (~> 3.4)
22
- rake (10.0.4)
23
- rspec (2.13.0)
24
- rspec-core (~> 2.13.0)
25
- rspec-expectations (~> 2.13.0)
26
- rspec-mocks (~> 2.13.0)
27
- rspec-core (2.13.1)
28
- rspec-expectations (2.13.0)
23
+ rake (10.3.1)
24
+ rspec (2.14.1)
25
+ rspec-core (~> 2.14.0)
26
+ rspec-expectations (~> 2.14.0)
27
+ rspec-mocks (~> 2.14.0)
28
+ rspec-core (2.14.8)
29
+ rspec-expectations (2.14.5)
29
30
  diff-lcs (>= 1.1.3, < 2.0)
30
- rspec-mocks (2.13.0)
31
- slop (3.4.4)
31
+ rspec-mocks (2.14.6)
32
+ slop (3.5.0)
33
+ vcr (2.9.0)
32
34
 
33
35
  PLATFORMS
34
36
  ruby
35
37
 
36
38
  DEPENDENCIES
39
+ fakeweb
37
40
  pry
38
41
  rake
39
42
  rspec
43
+ vcr
40
44
  xbox_leaders!
data/README.md CHANGED
@@ -2,6 +2,9 @@
2
2
 
3
3
  This is a wrapper around the Xbox Live API provided for free at [https://www.xboxleaders.com/](https://www.xboxleaders.com/).
4
4
 
5
+ __NOTE:__ The free Xbox Leaders API was scheduled to be shutdown on 4/30/2014. The source code remains available for download on
6
+ [Github](https://github.com/XboxLeaders/XboxLiveAPI). Using this client requires access to a live endpoint.
7
+
5
8
  ## Installation
6
9
 
7
10
  Add this line to your application's Gemfile:
@@ -20,8 +23,8 @@ Or install it yourself as:
20
23
 
21
24
  2.0.0p0 :001 > require 'xbox_leaders'
22
25
  => true
23
- 2.0.0p0 :002 > api = XboxLeaders::Api.new
24
- => #<XboxLeaders::Api:0x007fbba19adeb8 @timeout=6>
26
+ 2.0.0p0 :002 > api = XboxLeaders::Api.new('https://www.xboxleaders.com/api/2.0')
27
+ => #<XboxLeaders::Api:0x007fbba19adeb8 @api_url="https://www.xboxleaders.com/api/2.0", @timeout=6>
25
28
  2.0.0p0 :003 > api.fetch_profile('Major Nelson')
26
29
  => {"Tier"=>"gold", "IsValid"=>1, "IsCheater"=>0, "IsOnline"=>0, "OnlineStatus"=>"Offline", "XBLLaunchTeam"=>1, "NXELaunchTeam"=>1, "KinectLaunchTeam"=>1, "AvatarTile"=>"http://avatar.xboxlive.com/avatar/Major%20Nelson/avatarpic-l.png", "AvatarSmall"=>"http://avatar.xboxlive.com/avatar/Major%20Nelson/avatarpic-s.png", "AvatarLarge"=>"http://avatar.xboxlive.com/avatar/Major%20Nelson/avatarpic-l.png", "AvatarBody"=>"http://avatar.xboxlive.com/avatar/Major%20Nelson/avatar-body.png", "AvatarTileSSL"=>"https://avatar-ssl.xboxlive.com/avatar/Major%20Nelson/avatarpic-l.png", "AvatarSmallSSL"=>"https://avatar-ssl.xboxlive.com/avatar/Major%20Nelson/avatarpic-s.png", "AvatarLargeSSL"=>"https://avatar-ssl.xboxlive.com/avatar/Major%20Nelson/avatarpic-l.png", "AvatarBodySSL"=>"https://avatar-ssl.xboxlive.com/avatar/Major%20Nelson/avatar-body.png", "Gamertag"=>"Major Nelson", "GamerScore"=>63147, "Reputation"=>20, "Name"=>nil, "Motto"=>"", "Location"=>"", "Bio"=>nil}
27
30
 
@@ -1,14 +1,14 @@
1
1
  require 'httparty'
2
2
 
3
3
  class XboxLeaders::Api
4
-
5
4
  include HTTParty
6
- base_uri 'https://www.xboxleaders.com/api/2.0'
7
5
 
8
6
  attr_accessor :timeout
7
+ attr_reader :api_url
9
8
 
10
- def initialize(timeout = 6)
9
+ def initialize(api_url, timeout = 6)
11
10
  @timeout = timeout
11
+ @api_url = api_url.chomp('/')
12
12
  end
13
13
 
14
14
  def fetch_achievements(gamertag, game_id)
@@ -30,7 +30,7 @@ class XboxLeaders::Api
30
30
  private
31
31
 
32
32
  def get(path, query={})
33
- response = self.class.get(path + ".json", timeout: timeout, query: query).to_hash
33
+ response = self.class.get("#{api_url}#{path}.json", timeout: timeout, query: query).to_hash
34
34
 
35
35
  if response['status'] == 'error'
36
36
  raise ArgumentError, "#{response['data']['code']}: #{response['data']['message']}"
@@ -1,3 +1,3 @@
1
1
  module XboxLeaders
2
- VERSION = '2.0.0'
2
+ VERSION = '3.0.0'
3
3
  end
@@ -1,2 +1,9 @@
1
1
  $:.unshift File.expand_path('../../lib', __FILE__)
2
2
  require 'xbox_leaders'
3
+ require 'vcr'
4
+
5
+ VCR.configure do |c|
6
+ c.cassette_library_dir = File.expand_path('../support/vcr_cassettes', __FILE__)
7
+ c.hook_into :fakeweb
8
+ end
9
+
@@ -0,0 +1,1314 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://www.xboxleaders.com/api/2.0/achievements.json?gamertag=Major%20Nelson&gameid=1297287449
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers: {}
10
+ response:
11
+ status:
12
+ code: 301
13
+ message: Moved Permanently
14
+ headers:
15
+ date:
16
+ - Sat, 03 May 2014 02:00:40 GMT
17
+ server:
18
+ - Apache/2.2.22 (Ubuntu)
19
+ location:
20
+ - https://www.xboxleaders.com/api/achievements.json?gamertag=Major%20Nelson&gameid=1297287449
21
+ cache-control:
22
+ - max-age=0
23
+ expires:
24
+ - Sat, 03 May 2014 02:00:40 GMT
25
+ vary:
26
+ - Accept-Encoding
27
+ content-length:
28
+ - '389'
29
+ connection:
30
+ - close
31
+ content-type:
32
+ - text/html; charset=iso-8859-1
33
+ body:
34
+ encoding: UTF-8
35
+ string: |
36
+ <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
37
+ <html><head>
38
+ <title>301 Moved Permanently</title>
39
+ </head><body>
40
+ <h1>Moved Permanently</h1>
41
+ <p>The document has moved <a href="https://www.xboxleaders.com/api/achievements.json?gamertag=Major%20Nelson&amp;gameid=1297287449">here</a>.</p>
42
+ <hr>
43
+ <address>Apache/2.2.22 (Ubuntu) Server at www.xboxleaders.com Port 443</address>
44
+ </body></html>
45
+ http_version: '1.1'
46
+ recorded_at: Sat, 03 May 2014 02:00:40 GMT
47
+ - request:
48
+ method: get
49
+ uri: https://www.xboxleaders.com/api/achievements.json?gamertag=Major%20Nelson&gameid=1297287449
50
+ body:
51
+ encoding: US-ASCII
52
+ string: ''
53
+ headers: {}
54
+ response:
55
+ status:
56
+ code: 200
57
+ message: OK
58
+ headers:
59
+ date:
60
+ - Sat, 03 May 2014 02:00:40 GMT
61
+ server:
62
+ - Apache/2.2.22 (Ubuntu)
63
+ x-powered-by:
64
+ - PHP/5.4.27-1+deb.sury.org~precise+1
65
+ access-control-allow-origin:
66
+ - "*"
67
+ access-control-max-age:
68
+ - '3628800'
69
+ cache-control:
70
+ - no-cache, no-store, must-revalidate, max-age=0, proxy-revalidate, no-transform
71
+ expires:
72
+ - Sat, 03 May 2014 02:00:40 GMT
73
+ pragma:
74
+ - no-cache
75
+ connection:
76
+ - close
77
+ transfer-encoding:
78
+ - chunked
79
+ content-type:
80
+ - application/json; charset=utf-8
81
+ body:
82
+ encoding: UTF-8
83
+ string: |-
84
+ {
85
+ "status": "success",
86
+ "version": "2.0",
87
+ "data": {
88
+ "gamertag": "Major Nelson",
89
+ "game": "Halo 4",
90
+ "id": 1297287449,
91
+ "hid": "4d530919",
92
+ "gamerscore": {
93
+ "current": 845,
94
+ "total": 2000
95
+ },
96
+ "achievement": {
97
+ "current": 44,
98
+ "total": 86
99
+ },
100
+ "progress": 51,
101
+ "lastplayed": 1378527782,
102
+ "achievements": [
103
+ {
104
+ "id": 192,
105
+ "title": "Got it!",
106
+ "artwork": {
107
+ "locked": "https://live.xbox.com/tiles/oY/Tb/1Tc8P2NhbC8VCgVLBRxYWlA5L2FjaC8wLzEwYQAAAAFQUFD69IS8.jpg",
108
+ "unlocked": "https://image-ssl.xboxlive.com/global/t.4d530919/ach/0/10a"
109
+ },
110
+ "description": "In Bullseye DLC matchmaking, acquire the Rocket Launcher at the start of a match on Pitfall.",
111
+ "gamerscore": 20,
112
+ "secret": false,
113
+ "unlocked": true,
114
+ "unlockdate": 1377929443,
115
+ "unlockedoffline": false
116
+ },
117
+ {
118
+ "id": 155,
119
+ "title": "I Thrust at Thee",
120
+ "artwork": {
121
+ "locked": "https://live.xbox.com/tiles/nV/iw/0Tc8P2NhbC8XXhtUGltTWDE5L2FjaC8wL2RjAAAAAVBQUP6fWIE=.jpg",
122
+ "unlocked": "https://image-ssl.xboxlive.com/global/t.4d530919/ach/0/dc"
123
+ },
124
+ "description": "In Majestic DLC matchmaking, perform a melee kill right after using Thrust Pack.",
125
+ "gamerscore": 20,
126
+ "secret": false,
127
+ "unlocked": true,
128
+ "unlockdate": 1371709906,
129
+ "unlockedoffline": false
130
+ },
131
+ {
132
+ "id": 169,
133
+ "title": "Ashes to Ashes",
134
+ "artwork": {
135
+ "locked": "https://live.xbox.com/tiles/mD/im/0jc8P2NhbC9EXBtUGltTWDE5L2FjaC8wL2YwAAAAAVBQUP2JOIQ=.jpg",
136
+ "unlocked": "https://image-ssl.xboxlive.com/global/t.4d530919/ach/0/f0"
137
+ },
138
+ "description": "In Castle DLC matchmaking, disintegrate 6 enemies using Forerunner weapons.",
139
+ "gamerscore": 10,
140
+ "secret": false,
141
+ "unlocked": true,
142
+ "unlockdate": 1368077965,
143
+ "unlockedoffline": false
144
+ },
145
+ {
146
+ "id": 172,
147
+ "title": "Scrapyard",
148
+ "artwork": {
149
+ "locked": "https://live.xbox.com/tiles/LT/GH/0Dc8P2NhbC9HXBtUGltTWDE5L2FjaC8wL2YzAAAAAVBQUP+oMTE=.jpg",
150
+ "unlocked": "https://image-ssl.xboxlive.com/global/t.4d530919/ach/0/f3"
151
+ },
152
+ "description": "In Castle DLC matchmaking, destroy 2 vehicles during a single game.",
153
+ "gamerscore": 30,
154
+ "secret": false,
155
+ "unlocked": true,
156
+ "unlockdate": 1367104831,
157
+ "unlockedoffline": false
158
+ },
159
+ {
160
+ "id": 165,
161
+ "title": "What Is Yours Is Also Mine",
162
+ "artwork": {
163
+ "locked": "https://live.xbox.com/tiles/36/E-/1zc8P2NhbC8XXxtUGltTWDE5L2FjaC8wL2VjAAAAAVBQUPgQocM=.jpg",
164
+ "unlocked": "https://image-ssl.xboxlive.com/global/t.4d530919/ach/0/ec"
165
+ },
166
+ "description": "In Castle DLC matchmaking, disable a vehicle and then hijack it.",
167
+ "gamerscore": 40,
168
+ "secret": false,
169
+ "unlocked": true,
170
+ "unlockdate": 1365832633,
171
+ "unlockedoffline": false
172
+ },
173
+ {
174
+ "id": 171,
175
+ "title": "Sight Seeing",
176
+ "artwork": {
177
+ "locked": "https://live.xbox.com/tiles/vs/ln/0Tc8P2NhbC9GXBtUGltTWDE5L2FjaC8wL2YyAAAAAVBQUP5IyaI=.jpg",
178
+ "unlocked": "https://image-ssl.xboxlive.com/global/t.4d530919/ach/0/f2"
179
+ },
180
+ "description": "In Castle DLC matchmaking, complete a match in any mode for each Castle map.",
181
+ "gamerscore": 20,
182
+ "secret": false,
183
+ "unlocked": true,
184
+ "unlockdate": 1365483678,
185
+ "unlockedoffline": false
186
+ },
187
+ {
188
+ "id": 152,
189
+ "title": "Pigs Can Fly",
190
+ "artwork": {
191
+ "locked": "https://live.xbox.com/tiles/fe/o3/1zc8P2NhbC9AXxtUGltTWDE5L2FjaC8wL2U0AAAAAVBQUPgY6mE=.jpg",
192
+ "unlocked": "https://image-ssl.xboxlive.com/global/t.4d530919/ach/0/e4"
193
+ },
194
+ "description": "In Majestic DLC matchmaking, kill 3 enemies while they are using Jet Packs.",
195
+ "gamerscore": 30,
196
+ "secret": false,
197
+ "unlocked": true,
198
+ "unlockdate": 1363501188,
199
+ "unlockedoffline": false
200
+ },
201
+ {
202
+ "id": 154,
203
+ "title": "Callin&#039; in the Big Guns",
204
+ "artwork": {
205
+ "locked": "https://live.xbox.com/tiles/Dq/BQ/0Dc8P2NhbC8WXhtUGltTWDE5L2FjaC8wL2RiAAAAAVBQUP9-oBI=.jpg",
206
+ "unlocked": "https://image-ssl.xboxlive.com/global/t.4d530919/ach/0/d"
207
+ },
208
+ "description": "In Majestic DLC matchmaking, call in 3 ordnance drops during the same game.",
209
+ "gamerscore": 40,
210
+ "secret": false,
211
+ "unlocked": true,
212
+ "unlockdate": 1363148735,
213
+ "unlockedoffline": false
214
+ },
215
+ {
216
+ "id": 147,
217
+ "title": "Bullet Sponge",
218
+ "artwork": {
219
+ "locked": "https://live.xbox.com/tiles/Qk/LT/1zc8P2NhbC8SXhtUGltTWDE5L2FjaC8wL2RmAAAAAVBQUPj8Ql4=.jpg",
220
+ "unlocked": "https://image-ssl.xboxlive.com/global/t.4d530919/ach/0/df"
221
+ },
222
+ "description": "In Majestic DLC matchmaking, get the &#039;Close Call&#039; medal twice during one match.",
223
+ "gamerscore": 30,
224
+ "secret": false,
225
+ "unlocked": true,
226
+ "unlockdate": 1362120601,
227
+ "unlockedoffline": false
228
+ },
229
+ {
230
+ "id": 104,
231
+ "title": "The Challenger",
232
+ "artwork": {
233
+ "locked": "https://live.xbox.com/tiles/lJ/k+/0Dc8P2NhbC9HWBtUGltTWDE5L2FjaC8wL2IzAAAAAVBQUP8RmYg=.jpg",
234
+ "unlocked": "https://image-ssl.xboxlive.com/global/t.4d530919/ach/0/b3"
235
+ },
236
+ "description": "Complete 25 Challenges.",
237
+ "gamerscore": 20,
238
+ "secret": false,
239
+ "unlocked": true,
240
+ "unlockdate": 1359867386,
241
+ "unlockedoffline": false
242
+ },
243
+ {
244
+ "id": 96,
245
+ "title": "Dedicated to Crimson",
246
+ "artwork": {
247
+ "locked": "https://live.xbox.com/tiles/9f/Fm/1jc8P2NhbC8WWxtUGltTWDE5L2FjaC8wL2FiAAAAAVBQUPlJ8ek=.jpg",
248
+ "unlocked": "https://image-ssl.xboxlive.com/global/t.4d530919/ach/0/ab"
249
+ },
250
+ "description": "Complete all chapters in any 5 episodes of Spartan Ops on any difficulty.",
251
+ "gamerscore": 80,
252
+ "secret": false,
253
+ "unlocked": true,
254
+ "unlockdate": 1359253778,
255
+ "unlockedoffline": false
256
+ },
257
+ {
258
+ "id": 141,
259
+ "title": "Special Delivery",
260
+ "artwork": {
261
+ "locked": "https://live.xbox.com/tiles/ih/qZ/0zc8P2NhbC9DXhtUGltTWDE5L2FjaC8wL2Q3AAAAAVBQUPy2GpY=.jpg",
262
+ "unlocked": "https://image-ssl.xboxlive.com/global/t.4d530919/ach/0/d7"
263
+ },
264
+ "description": "In Crimson DLC matchmaking, kill an enemy with melee when landing from a Man Cannon.",
265
+ "gamerscore": 30,
266
+ "secret": false,
267
+ "unlocked": true,
268
+ "unlockdate": 1355641159,
269
+ "unlockedoffline": false
270
+ },
271
+ {
272
+ "id": 135,
273
+ "title": "ODST",
274
+ "artwork": {
275
+ "locked": "https://live.xbox.com/tiles/4A/nb/1zc8P2NhbC9FXhtUGltTWDE5L2FjaC8wL2QxAAAAAVBQUPj0Cfw=.jpg",
276
+ "unlocked": "https://image-ssl.xboxlive.com/global/t.4d530919/ach/0/d1"
277
+ },
278
+ "description": "In Crimson DLC matchmaking, kill a player while airborne from a Man Cannon.",
279
+ "gamerscore": 30,
280
+ "secret": false,
281
+ "unlocked": true,
282
+ "unlockdate": 1355641159,
283
+ "unlockedoffline": false
284
+ },
285
+ {
286
+ "id": 139,
287
+ "title": "Pump Yer Brakes",
288
+ "artwork": {
289
+ "locked": "https://live.xbox.com/tiles/rO/tY/0Dc8P2NhbC9BXhtUGltTWDE5L2FjaC8wL2Q1AAAAAVBQUP9367A=.jpg",
290
+ "unlocked": "https://image-ssl.xboxlive.com/global/t.4d530919/ach/0/d5"
291
+ },
292
+ "description": "In Crimson DLC matchmaking, score the killing blow on a Mantis.",
293
+ "gamerscore": 40,
294
+ "secret": false,
295
+ "unlocked": true,
296
+ "unlockdate": 1355614691,
297
+ "unlockedoffline": false
298
+ },
299
+ {
300
+ "id": 138,
301
+ "title": "David and Goliath",
302
+ "artwork": {
303
+ "locked": "https://live.xbox.com/tiles/Px/O4/0Tc8P2NhbC9AXhtUGltTWDE5L2FjaC8wL2Q0AAAAAVBQUP6XEyM=.jpg",
304
+ "unlocked": "https://image-ssl.xboxlive.com/global/t.4d530919/ach/0/d4"
305
+ },
306
+ "description": "In Crimson DLC matchmaking, board an enemy Mantis.",
307
+ "gamerscore": 20,
308
+ "secret": false,
309
+ "unlocked": true,
310
+ "unlockdate": 1355614684,
311
+ "unlockedoffline": false
312
+ },
313
+ {
314
+ "id": 77,
315
+ "title": "Bropocalypse",
316
+ "artwork": {
317
+ "locked": "https://live.xbox.com/tiles/Fh/wF/1zc8P2NhbC9MAxtUGltTWDE5L2FjaC8wLzk4AAAAAVBQUPgqHAo=.jpg",
318
+ "unlocked": "https://image-ssl.xboxlive.com/global/t.4d530919/ach/0/98"
319
+ },
320
+ "description": "Complete any Campaign mission cooperatively on Heroic or harder.",
321
+ "gamerscore": 10,
322
+ "secret": false,
323
+ "unlocked": true,
324
+ "unlockdate": 1354259015,
325
+ "unlockedoffline": false
326
+ },
327
+ {
328
+ "id": 97,
329
+ "title": "Crimson Alone",
330
+ "artwork": {
331
+ "locked": "https://live.xbox.com/tiles/Zg/mG/1zc8P2NhbC8XWxtUGltTWDE5L2FjaC8wL2FjAAAAAVBQUPipCXo=.jpg",
332
+ "unlocked": "https://image-ssl.xboxlive.com/global/t.4d530919/ach/0/ac"
333
+ },
334
+ "description": "Complete a Spartan Ops chapter solo on Legendary.",
335
+ "gamerscore": 20,
336
+ "secret": false,
337
+ "unlocked": true,
338
+ "unlockdate": 1354082496,
339
+ "unlockedoffline": false
340
+ },
341
+ {
342
+ "id": 100,
343
+ "title": "Knight in White Assassination",
344
+ "artwork": {
345
+ "locked": "https://live.xbox.com/tiles/uR/Pl/0Tc8P2NhbC8SWxtUGltTWDE5L2FjaC8wL2FmAAAAAVBQUP7KE6U=.jpg",
346
+ "unlocked": "https://image-ssl.xboxlive.com/global/t.4d530919/ach/0/af"
347
+ },
348
+ "description": "Assassinate a Knight in any Spartan Ops mission.",
349
+ "gamerscore": 20,
350
+ "secret": false,
351
+ "unlocked": true,
352
+ "unlockdate": 1352962034,
353
+ "unlockedoffline": false
354
+ },
355
+ {
356
+ "id": 99,
357
+ "title": "No One Left Behind",
358
+ "artwork": {
359
+ "locked": "https://live.xbox.com/tiles/DB/rE/0zc8P2NhbC8RWxtUGltTWDE5L2FjaC8wL2FlAAAAAVBQUPzrGhA=.jpg",
360
+ "unlocked": "https://image-ssl.xboxlive.com/global/t.4d530919/ach/0/ae"
361
+ },
362
+ "description": "Save at least one Marine in Chapter 3 of Episode 2 of Spartan Ops on Heroic or harder.",
363
+ "gamerscore": 20,
364
+ "secret": false,
365
+ "unlocked": true,
366
+ "unlockdate": 1352880114,
367
+ "unlockedoffline": false
368
+ },
369
+ {
370
+ "id": 80,
371
+ "title": "Digging up the Past",
372
+ "artwork": {
373
+ "locked": "https://live.xbox.com/tiles/D0/oL/1jc8P2NhbC8XAxtUGltTWDE5L2FjaC8wLzljAAAAAVBQUPkkShM=.jpg",
374
+ "unlocked": "https://image-ssl.xboxlive.com/global/t.4d530919/ach/0/9c"
375
+ },
376
+ "description": "In mission 1, find and access Chief&#039;s record.",
377
+ "gamerscore": 20,
378
+ "secret": false,
379
+ "unlocked": true,
380
+ "unlockdate": 1352622447,
381
+ "unlockedoffline": false
382
+ },
383
+ {
384
+ "id": 131,
385
+ "title": "Sharing is Caring",
386
+ "artwork": {
387
+ "locked": "https://live.xbox.com/tiles/zz/mU/1Tc8P2NhbC8XWBtUGltTWDE5L2FjaC8wL2JjAAAAAVBQUPq7OdM=.jpg",
388
+ "unlocked": "https://image-ssl.xboxlive.com/global/t.4d530919/ach/0/bc"
389
+ },
390
+ "description": "Upload a File to your File Share.",
391
+ "gamerscore": 5,
392
+ "secret": false,
393
+ "unlocked": true,
394
+ "unlockdate": 1352583604,
395
+ "unlockedoffline": false
396
+ },
397
+ {
398
+ "id": 95,
399
+ "title": "A Legendary Episode",
400
+ "artwork": {
401
+ "locked": "https://live.xbox.com/tiles/QP/hH/1Dc8P2NhbC8VWxtUGltTWDE5L2FjaC8wL2FhAAAAAVBQUPto+Fw=.jpg",
402
+ "unlocked": "https://image-ssl.xboxlive.com/global/t.4d530919/ach/0/aa"
403
+ },
404
+ "description": "Complete all chapters in Spartan Ops Episode 1 on Legendary difficulty.",
405
+ "gamerscore": 40,
406
+ "secret": false,
407
+ "unlocked": true,
408
+ "unlockdate": 1352353311,
409
+ "unlockedoffline": false
410
+ },
411
+ {
412
+ "id": 93,
413
+ "title": "Hanging on the Combat Deck",
414
+ "artwork": {
415
+ "locked": "https://live.xbox.com/tiles/f1/+I/1jc8P2NhbC9MWxtUGltTWDE5L2FjaC8wL2E4AAAAAVBQUPmnX2M=.jpg",
416
+ "unlocked": "https://image-ssl.xboxlive.com/global/t.4d530919/ach/0/a8"
417
+ },
418
+ "description": "Win 20 War Games matchmaking matches.",
419
+ "gamerscore": 30,
420
+ "secret": false,
421
+ "unlocked": true,
422
+ "unlockdate": 1352270753,
423
+ "unlockedoffline": false
424
+ },
425
+ {
426
+ "id": 91,
427
+ "title": "Movin&#039; On Up",
428
+ "artwork": {
429
+ "locked": "https://live.xbox.com/tiles/4r/NP/1Dc8P2NhbC9CWxtUGltTWDE5L2FjaC8wL2E2AAAAAVBQUPtgs-4=.jpg",
430
+ "unlocked": "https://image-ssl.xboxlive.com/global/t.4d530919/ach/0/a"
431
+ },
432
+ "description": "Rank up your Spartan-IV to SR-20.",
433
+ "gamerscore": 25,
434
+ "secret": false,
435
+ "unlocked": true,
436
+ "unlockdate": 1351924516,
437
+ "unlockedoffline": false
438
+ },
439
+ {
440
+ "id": 103,
441
+ "title": "The Challenged",
442
+ "artwork": {
443
+ "locked": "https://live.xbox.com/tiles/B2/He/0Tc8P2NhbC9GWBtUGltTWDE5L2FjaC8wL2IyAAAAAVBQUP7xYRs=.jpg",
444
+ "unlocked": "https://image-ssl.xboxlive.com/global/t.4d530919/ach/0/b2"
445
+ },
446
+ "description": "Complete a Challenge.",
447
+ "gamerscore": 10,
448
+ "secret": false,
449
+ "unlocked": true,
450
+ "unlockdate": 1351748708,
451
+ "unlockedoffline": false
452
+ },
453
+ {
454
+ "id": 108,
455
+ "title": "What a Poser!",
456
+ "artwork": {
457
+ "locked": "https://live.xbox.com/tiles/2H/u9/1zc8P2NhbC9DWBtUGltTWDE5L2FjaC8wL2I3AAAAAVBQUPiSe8Q=.jpg",
458
+ "unlocked": "https://image-ssl.xboxlive.com/global/t.4d530919/ach/0/b7"
459
+ },
460
+ "description": "Change your Spartan&#039;s pose in the Spartan ID card.",
461
+ "gamerscore": 5,
462
+ "secret": false,
463
+ "unlocked": true,
464
+ "unlockdate": 1351746196,
465
+ "unlockedoffline": false
466
+ },
467
+ {
468
+ "id": 92,
469
+ "title": "I &lt;3 Red vs Blue",
470
+ "artwork": {
471
+ "locked": "https://live.xbox.com/tiles/cU/uv/1Tc8P2NhbC9DWxtUGltTWDE5L2FjaC8wL2E3AAAAAVBQUPqAS20=.jpg",
472
+ "unlocked": "https://image-ssl.xboxlive.com/global/t.4d530919/ach/0/a7"
473
+ },
474
+ "description": "Win 5 War Games matchmaking matches.",
475
+ "gamerscore": 15,
476
+ "secret": false,
477
+ "unlocked": true,
478
+ "unlockdate": 1351743623,
479
+ "unlockedoffline": false
480
+ },
481
+ {
482
+ "id": 112,
483
+ "title": "The Director",
484
+ "artwork": {
485
+ "locked": "https://live.xbox.com/tiles/XM/F0/1Dc8P2NhbC8WWBtUGltTWDE5L2FjaC8wL2JiAAAAAVBQUPtbwUA=.jpg",
486
+ "unlocked": "https://image-ssl.xboxlive.com/global/t.4d530919/ach/0/bb"
487
+ },
488
+ "description": "Save a Film Clip from the Theater.",
489
+ "gamerscore": 5,
490
+ "secret": false,
491
+ "unlocked": true,
492
+ "unlockdate": 1351480595,
493
+ "unlockedoffline": false
494
+ },
495
+ {
496
+ "id": 111,
497
+ "title": "Snapshot!",
498
+ "artwork": {
499
+ "locked": "https://live.xbox.com/tiles/6c/hV/1jc8P2NhbC8VWBtUGltTWDE5L2FjaC8wL2JhAAAAAVBQUPl6yPU=.jpg",
500
+ "unlocked": "https://image-ssl.xboxlive.com/global/t.4d530919/ach/0/ba"
501
+ },
502
+ "description": "Save a Screenshot from the Theater.",
503
+ "gamerscore": 5,
504
+ "secret": false,
505
+ "unlocked": true,
506
+ "unlockdate": 1351480344,
507
+ "unlockedoffline": false
508
+ },
509
+ {
510
+ "id": 105,
511
+ "title": "Armorer",
512
+ "artwork": {
513
+ "locked": "https://live.xbox.com/tiles/bX/Kc/1Tc8P2NhbC9AWBtUGltTWDE5L2FjaC8wL2I0AAAAAVBQUPqzcnE=.jpg",
514
+ "unlocked": "https://image-ssl.xboxlive.com/global/t.4d530919/ach/0/b4"
515
+ },
516
+ "description": "Change your Spartan&#039;s armor in the Spartan Armor card.",
517
+ "gamerscore": 5,
518
+ "secret": false,
519
+ "unlocked": true,
520
+ "unlockdate": 1351479107,
521
+ "unlockedoffline": false
522
+ },
523
+ {
524
+ "id": 94,
525
+ "title": "Operation Completion",
526
+ "artwork": {
527
+ "locked": "https://live.xbox.com/tiles/7K/do/1zc8P2NhbC9NWxtUGltTWDE5L2FjaC8wL2E5AAAAAVBQUPhHp-A=.jpg",
528
+ "unlocked": "https://image-ssl.xboxlive.com/global/t.4d530919/ach/0/a"
529
+ },
530
+ "description": "Complete a Spartan Ops Mission on any difficulty.",
531
+ "gamerscore": 15,
532
+ "secret": false,
533
+ "unlocked": true,
534
+ "unlockdate": 1351463233,
535
+ "unlockedoffline": false
536
+ },
537
+ {
538
+ "id": 72,
539
+ "title": "Wake Up, John",
540
+ "artwork": {
541
+ "locked": "https://live.xbox.com/tiles/VO/qh/0zc8P2NhbC9HAxtUGltTWDE5L2FjaC8wLzkzAAAAAVBQUPyO6kg=.jpg",
542
+ "unlocked": "https://image-ssl.xboxlive.com/global/t.4d530919/ach/0/93"
543
+ },
544
+ "description": "Complete the Campaign on Normal or harder.",
545
+ "gamerscore": 20,
546
+ "secret": false,
547
+ "unlocked": true,
548
+ "unlockdate": 1351408284,
549
+ "unlockedoffline": false
550
+ },
551
+ {
552
+ "id": 71,
553
+ "title": "Midnight",
554
+ "artwork": {
555
+ "locked": "https://live.xbox.com/tiles/xx/JB/0jc8P2NhbC9GAxtUGltTWDE5L2FjaC8wLzkyAAAAAVBQUP1uEts=.jpg",
556
+ "unlocked": "https://image-ssl.xboxlive.com/global/t.4d530919/ach/0/92"
557
+ },
558
+ "description": "Complete mission 8 on any difficulty.",
559
+ "gamerscore": 10,
560
+ "secret": false,
561
+ "unlocked": true,
562
+ "unlockdate": 1351408284,
563
+ "unlockedoffline": false
564
+ },
565
+ {
566
+ "id": 70,
567
+ "title": "Composer",
568
+ "artwork": {
569
+ "locked": "https://live.xbox.com/tiles/ch/tg/0Dc8P2NhbC9FAxtUGltTWDE5L2FjaC8wLzkxAAAAAVBQUP9PG24=.jpg",
570
+ "unlocked": "https://image-ssl.xboxlive.com/global/t.4d530919/ach/0/91"
571
+ },
572
+ "description": "Complete mission 7 on any difficulty.",
573
+ "gamerscore": 10,
574
+ "secret": false,
575
+ "unlocked": true,
576
+ "unlockdate": 1351400839,
577
+ "unlockedoffline": false
578
+ },
579
+ {
580
+ "id": 69,
581
+ "title": "Shutdown",
582
+ "artwork": {
583
+ "locked": "https://live.xbox.com/tiles/4e/OA/0Tc8P2NhbC9EAxtUGltTWDE5L2FjaC8wLzkwAAAAAVBQUP6v4-0=.jpg",
584
+ "unlocked": "https://image-ssl.xboxlive.com/global/t.4d530919/ach/0/9"
585
+ },
586
+ "description": "Complete mission 6 on any difficulty.",
587
+ "gamerscore": 10,
588
+ "secret": false,
589
+ "unlocked": true,
590
+ "unlockdate": 1351393778,
591
+ "unlockedoffline": false
592
+ },
593
+ {
594
+ "id": 68,
595
+ "title": "Reclaimer",
596
+ "artwork": {
597
+ "locked": "https://live.xbox.com/tiles/kq/nn/1jc8P2NhbC8SAhtUGltTWDE5L2FjaC8wLzhmAAAAAVBQUPnIqY4=.jpg",
598
+ "unlocked": "https://image-ssl.xboxlive.com/global/t.4d530919/ach/0/8f"
599
+ },
600
+ "description": "Complete mission 5 on any difficulty.",
601
+ "gamerscore": 10,
602
+ "secret": false,
603
+ "unlocked": true,
604
+ "unlockdate": 1351370571,
605
+ "unlockedoffline": false
606
+ },
607
+ {
608
+ "id": 67,
609
+ "title": "Infinity",
610
+ "artwork": {
611
+ "locked": "https://live.xbox.com/tiles/J6/DG/1Dc8P2NhbC8RAhtUGltTWDE5L2FjaC8wLzhlAAAAAVBQUPvpoDs=.jpg",
612
+ "unlocked": "https://image-ssl.xboxlive.com/global/t.4d530919/ach/0/8e"
613
+ },
614
+ "description": "Complete mission 4 on any difficulty.",
615
+ "gamerscore": 10,
616
+ "secret": false,
617
+ "unlocked": true,
618
+ "unlockdate": 1351320725,
619
+ "unlockedoffline": false
620
+ },
621
+ {
622
+ "id": 66,
623
+ "title": "Forerunner",
624
+ "artwork": {
625
+ "locked": "https://live.xbox.com/tiles/tF/gm/1Tc8P2NhbC8QAhtUGltTWDE5L2FjaC8wLzhkAAAAAVBQUPoJWKg=.jpg",
626
+ "unlocked": "https://image-ssl.xboxlive.com/global/t.4d530919/ach/0/8d"
627
+ },
628
+ "description": "Complete mission 3 on any difficulty.",
629
+ "gamerscore": 10,
630
+ "secret": false,
631
+ "unlocked": true,
632
+ "unlockdate": 1351316351,
633
+ "unlockedoffline": false
634
+ },
635
+ {
636
+ "id": 78,
637
+ "title": "Contact the Domain",
638
+ "artwork": {
639
+ "locked": "https://live.xbox.com/tiles/Kb/vK/1Tc8P2NhbC8VAxtUGltTWDE5L2FjaC8wLzlhAAAAAVBQUPrluzU=.jpg",
640
+ "unlocked": "https://image-ssl.xboxlive.com/global/t.4d530919/ach/0/9a"
641
+ },
642
+ "description": "Find a Terminal in the Campaign.",
643
+ "gamerscore": 10,
644
+ "secret": false,
645
+ "unlocked": true,
646
+ "unlockdate": 1351230028,
647
+ "unlockedoffline": false
648
+ },
649
+ {
650
+ "id": 90,
651
+ "title": "Not Some Recruit Anymore",
652
+ "artwork": {
653
+ "locked": "https://live.xbox.com/tiles/V7/pu/1jc8P2NhbC9BWxtUGltTWDE5L2FjaC8wL2E1AAAAAVBQUPlBuks=.jpg",
654
+ "unlocked": "https://image-ssl.xboxlive.com/global/t.4d530919/ach/0/a5"
655
+ },
656
+ "description": "Rank up your Spartan-IV to SR-5.",
657
+ "gamerscore": 15,
658
+ "secret": false,
659
+ "unlocked": true,
660
+ "unlockdate": 1351139209,
661
+ "unlockedoffline": false
662
+ },
663
+ {
664
+ "id": 65,
665
+ "title": "Requiem",
666
+ "artwork": {
667
+ "locked": "https://live.xbox.com/tiles/Tb/OE/0Dc8P2NhbC8XAhtUGltTWDE5L2FjaC8wLzhjAAAAAVBQUP+rs1E=.jpg",
668
+ "unlocked": "https://image-ssl.xboxlive.com/global/t.4d530919/ach/0/8c"
669
+ },
670
+ "description": "Complete mission 2 on any difficulty.",
671
+ "gamerscore": 10,
672
+ "secret": false,
673
+ "unlocked": true,
674
+ "unlockdate": 1351137891,
675
+ "unlockedoffline": false
676
+ },
677
+ {
678
+ "id": 106,
679
+ "title": "Badge",
680
+ "artwork": {
681
+ "locked": "https://live.xbox.com/tiles/-o/p8/1Dc8P2NhbC9BWBtUGltTWDE5L2FjaC8wL2I1AAAAAVBQUPtTiuI=.jpg",
682
+ "unlocked": "https://image-ssl.xboxlive.com/global/t.4d530919/ach/0/b5"
683
+ },
684
+ "description": "Change your Emblem in the Spartan ID card.",
685
+ "gamerscore": 5,
686
+ "secret": false,
687
+ "unlocked": true,
688
+ "unlockdate": 1351059125,
689
+ "unlockedoffline": false
690
+ },
691
+ {
692
+ "id": 107,
693
+ "title": "PWND",
694
+ "artwork": {
695
+ "locked": "https://live.xbox.com/tiles/S4/Nd/1jc8P2NhbC9CWBtUGltTWDE5L2FjaC8wL2I2AAAAAVBQUPlyg1c=.jpg",
696
+ "unlocked": "https://image-ssl.xboxlive.com/global/t.4d530919/ach/0/b6"
697
+ },
698
+ "description": "Change your Service Tag in the Spartan ID card.",
699
+ "gamerscore": 5,
700
+ "secret": false,
701
+ "unlocked": true,
702
+ "unlockdate": 1351059068,
703
+ "unlockedoffline": false
704
+ },
705
+ {
706
+ "id": 64,
707
+ "title": "Dawn",
708
+ "artwork": {
709
+ "locked": "https://live.xbox.com/tiles/3k/tk/0Tc8P2NhbC8WAhtUGltTWDE5L2FjaC8wLzhiAAAAAVBQUP5LS8I=.jpg",
710
+ "unlocked": "https://image-ssl.xboxlive.com/global/t.4d530919/ach/0/8b"
711
+ },
712
+ "description": "Complete mission 1 on any difficulty.",
713
+ "gamerscore": 10,
714
+ "secret": false,
715
+ "unlocked": true,
716
+ "unlockdate": 1351055985,
717
+ "unlockedoffline": false
718
+ },
719
+ {
720
+ "id": 73,
721
+ "title": "I Need a Hero",
722
+ "artwork": {
723
+ "locked": "https://live.xbox.com/tiles/rQ/ED/1jc8P2NhbC9AAxtUGltTWDE5L2FjaC8wLzk0AAAAAVBQUPksAbE=.jpg",
724
+ "unlocked": "https://image-ssl.xboxlive.com/global/t.4d530919/ach/0/94"
725
+ },
726
+ "description": "Complete the Campaign on Heroic or harder.",
727
+ "gamerscore": 40,
728
+ "secret": false,
729
+ "unlocked": false,
730
+ "unlockdate": null,
731
+ "unlockedoffline": null
732
+ },
733
+ {
734
+ "id": 74,
735
+ "title": "The Legend of 117",
736
+ "artwork": {
737
+ "locked": "https://live.xbox.com/tiles/Pv/nj/1zc8P2NhbC9BAxtUGltTWDE5L2FjaC8wLzk1AAAAAVBQUPjM+SI=.jpg",
738
+ "unlocked": "https://image-ssl.xboxlive.com/global/t.4d530919/ach/0/95"
739
+ },
740
+ "description": "Complete the Campaign on Legendary difficulty.",
741
+ "gamerscore": 70,
742
+ "secret": false,
743
+ "unlocked": false,
744
+ "unlockdate": null,
745
+ "unlockedoffline": null
746
+ },
747
+ {
748
+ "id": 75,
749
+ "title": "Lone Wolf Legend",
750
+ "artwork": {
751
+ "locked": "https://live.xbox.com/tiles/i-/DC/1Tc8P2NhbC9CAxtUGltTWDE5L2FjaC8wLzk2AAAAAVBQUPrt8Jc=.jpg",
752
+ "unlocked": "https://image-ssl.xboxlive.com/global/t.4d530919/ach/0/96"
753
+ },
754
+ "description": "Complete the Campaign solo on Legendary difficulty.",
755
+ "gamerscore": 90,
756
+ "secret": false,
757
+ "unlocked": false,
758
+ "unlockdate": null,
759
+ "unlockedoffline": null
760
+ },
761
+ {
762
+ "id": 76,
763
+ "title": "Skullduggery",
764
+ "artwork": {
765
+ "locked": "https://live.xbox.com/tiles/GA/gi/1Dc8P2NhbC9DAxtUGltTWDE5L2FjaC8wLzk3AAAAAVBQUPsNCAQ=.jpg",
766
+ "unlocked": "https://image-ssl.xboxlive.com/global/t.4d530919/ach/0/97"
767
+ },
768
+ "description": "Complete any Campaign mission with 3 or more Skulls on Heroic or harder.",
769
+ "gamerscore": 15,
770
+ "secret": false,
771
+ "unlocked": false,
772
+ "unlockdate": null,
773
+ "unlockedoffline": null
774
+ },
775
+ {
776
+ "id": 79,
777
+ "title": "Terminus",
778
+ "artwork": {
779
+ "locked": "https://live.xbox.com/tiles/nL/Lr/1zc8P2NhbC8WAxtUGltTWDE5L2FjaC8wLzliAAAAAVBQUPjEsoA=.jpg",
780
+ "unlocked": "https://image-ssl.xboxlive.com/global/t.4d530919/ach/0/9b"
781
+ },
782
+ "description": "Find all of the Terminals in the Campaign.",
783
+ "gamerscore": 50,
784
+ "secret": false,
785
+ "unlocked": false,
786
+ "unlockdate": null,
787
+ "unlockedoffline": null
788
+ },
789
+ {
790
+ "id": 81,
791
+ "title": "Midnight Launch",
792
+ "artwork": {
793
+ "locked": "https://live.xbox.com/tiles/9q/Gp/0zc8P2NhbC8QAxtUGltTWDE5L2FjaC8wLzlkAAAAAVBQUPyGoeo=.jpg",
794
+ "unlocked": "https://image-ssl.xboxlive.com/global/t.4d530919/ach/0/9d"
795
+ },
796
+ "description": "In mission 2, get significant air in the Warthog at midnight.",
797
+ "gamerscore": 20,
798
+ "secret": false,
799
+ "unlocked": false,
800
+ "unlockdate": null,
801
+ "unlockedoffline": null
802
+ },
803
+ {
804
+ "id": 82,
805
+ "title": "This is my Rifle, This is my Gun",
806
+ "artwork": {
807
+ "locked": "https://live.xbox.com/tiles/ZV/lJ/0jc8P2NhbC8RAxtUGltTWDE5L2FjaC8wLzllAAAAAVBQUP1mWXk=.jpg",
808
+ "unlocked": "https://image-ssl.xboxlive.com/global/t.4d530919/ach/0/9e"
809
+ },
810
+ "description": "In mission 3, carry a UNSC weapon all the way through on Heroic or harder.",
811
+ "gamerscore": 20,
812
+ "secret": false,
813
+ "unlocked": false,
814
+ "unlockdate": null,
815
+ "unlockedoffline": null
816
+ },
817
+ {
818
+ "id": 83,
819
+ "title": "Bros to the Close",
820
+ "artwork": {
821
+ "locked": "https://live.xbox.com/tiles/0F/Bo/0Dc8P2NhbC8SAxtUGltTWDE5L2FjaC8wLzlmAAAAAVBQUP9HUMw=.jpg",
822
+ "unlocked": "https://image-ssl.xboxlive.com/global/t.4d530919/ach/0/9f"
823
+ },
824
+ "description": "Complete mission 4 without one preventable Marine death on Heroic or harder.",
825
+ "gamerscore": 20,
826
+ "secret": false,
827
+ "unlocked": false,
828
+ "unlockdate": null,
829
+ "unlockedoffline": null
830
+ },
831
+ {
832
+ "id": 84,
833
+ "title": "Mortardom",
834
+ "artwork": {
835
+ "locked": "https://live.xbox.com/tiles/iK/AN/0Dc8P2NhbC9EWxtUGltTWDE5L2FjaC8wL2EwAAAAAVBQUP8ioJQ=.jpg",
836
+ "unlocked": "https://image-ssl.xboxlive.com/global/t.4d530919/ach/0/a0"
837
+ },
838
+ "description": "In mission 5, steal a Wraith and use it to kill at least four enemy Wraiths on Heroic or harder.",
839
+ "gamerscore": 20,
840
+ "secret": false,
841
+ "unlocked": false,
842
+ "unlockdate": null,
843
+ "unlockedoffline": null
844
+ },
845
+ {
846
+ "id": 86,
847
+ "title": "Explore the Floor",
848
+ "artwork": {
849
+ "locked": "https://live.xbox.com/tiles/rl/HM/0zc8P2NhbC9GWxtUGltTWDE5L2FjaC8wL2EyAAAAAVBQUPzjUbI=.jpg",
850
+ "unlocked": "https://image-ssl.xboxlive.com/global/t.4d530919/ach/0/a2"
851
+ },
852
+ "description": "In mission 6, trick or force a Hunter to fall to his demise.",
853
+ "gamerscore": 20,
854
+ "secret": false,
855
+ "unlocked": false,
856
+ "unlockdate": null,
857
+ "unlockedoffline": null
858
+ },
859
+ {
860
+ "id": 88,
861
+ "title": "Give Him the Stick",
862
+ "artwork": {
863
+ "locked": "https://live.xbox.com/tiles/Pa/ks/0jc8P2NhbC9HWxtUGltTWDE5L2FjaC8wL2EzAAAAAVBQUP0DqSE=.jpg",
864
+ "unlocked": "https://image-ssl.xboxlive.com/global/t.4d530919/ach/0/a3"
865
+ },
866
+ "description": "In Mission 7, in solo Campaign, take out both Hunters using only the Sticky Detonator.",
867
+ "gamerscore": 20,
868
+ "secret": false,
869
+ "unlocked": false,
870
+ "unlockdate": null,
871
+ "unlockedoffline": null
872
+ },
873
+ {
874
+ "id": 89,
875
+ "title": "Chief, Smash!",
876
+ "artwork": {
877
+ "locked": "https://live.xbox.com/tiles/xE/KO/1zc8P2NhbC9AWxtUGltTWDE5L2FjaC8wL2E0AAAAAVBQUPihQtg=.jpg",
878
+ "unlocked": "https://image-ssl.xboxlive.com/global/t.4d530919/ach/0/a4"
879
+ },
880
+ "description": "In mission 8, kill 3 Crawlers in one hit with the Gravity Hammer.",
881
+ "gamerscore": 20,
882
+ "secret": false,
883
+ "unlocked": false,
884
+ "unlockdate": null,
885
+ "unlockedoffline": null
886
+ },
887
+ {
888
+ "id": 98,
889
+ "title": "Roses vs Violets",
890
+ "artwork": {
891
+ "locked": "https://live.xbox.com/tiles/n+/Ik/0jc8P2NhbC8QWxtUGltTWDE5L2FjaC8wL2FkAAAAAVBQUP0L4oM=.jpg",
892
+ "unlocked": "https://image-ssl.xboxlive.com/global/t.4d530919/ach/0/ad"
893
+ },
894
+ "description": "Find one of the RvB Easter Eggs in Episodes 1 to 5 of Spartan Ops.",
895
+ "gamerscore": 20,
896
+ "secret": false,
897
+ "unlocked": false,
898
+ "unlockdate": null,
899
+ "unlockedoffline": null
900
+ },
901
+ {
902
+ "id": 101,
903
+ "title": "What Power Outage?",
904
+ "artwork": {
905
+ "locked": "https://live.xbox.com/tiles/IZ/Af/0jc8P2NhbC9EWBtUGltTWDE5L2FjaC8wL2IwAAAAAVBQUP0wkD0=.jpg",
906
+ "unlocked": "https://image-ssl.xboxlive.com/global/t.4d530919/ach/0/b0"
907
+ },
908
+ "description": "Complete Chapter 4, Episode 5 of Spartan Ops without losing a generator on Heroic or harder.",
909
+ "gamerscore": 20,
910
+ "secret": false,
911
+ "unlocked": false,
912
+ "unlockdate": null,
913
+ "unlockedoffline": null
914
+ },
915
+ {
916
+ "id": 102,
917
+ "title": "No Easy Way Out",
918
+ "artwork": {
919
+ "locked": "https://live.xbox.com/tiles/sm/j-/0zc8P2NhbC9FWBtUGltTWDE5L2FjaC8wL2IxAAAAAVBQUPzQaK4=.jpg",
920
+ "unlocked": "https://image-ssl.xboxlive.com/global/t.4d530919/ach/0/b1"
921
+ },
922
+ "description": "In Ch 1, Ep 5 of Spartan Ops survive the enemy assault during the defense on Normal or harder.",
923
+ "gamerscore": 20,
924
+ "secret": false,
925
+ "unlocked": false,
926
+ "unlockdate": null,
927
+ "unlockedoffline": null
928
+ },
929
+ {
930
+ "id": 109,
931
+ "title": "The Cartographer",
932
+ "artwork": {
933
+ "locked": "https://live.xbox.com/tiles/1m/+a/1Dc8P2NhbC9MWBtUGltTWDE5L2FjaC8wL2I4AAAAAVBQUPu1b8o=.jpg",
934
+ "unlocked": "https://image-ssl.xboxlive.com/global/t.4d530919/ach/0/b8"
935
+ },
936
+ "description": "Create and save a Custom Map in Forge.",
937
+ "gamerscore": 5,
938
+ "secret": false,
939
+ "unlocked": false,
940
+ "unlockdate": null,
941
+ "unlockedoffline": null
942
+ },
943
+ {
944
+ "id": 110,
945
+ "title": "Game Changer",
946
+ "artwork": {
947
+ "locked": "https://live.xbox.com/tiles/RZ/d6/1Tc8P2NhbC9NWBtUGltTWDE5L2FjaC8wL2I5AAAAAVBQUPpVl1k=.jpg",
948
+ "unlocked": "https://image-ssl.xboxlive.com/global/t.4d530919/ach/0/b9"
949
+ },
950
+ "description": "Create and save a Custom Game type in War Games.",
951
+ "gamerscore": 5,
952
+ "secret": false,
953
+ "unlocked": false,
954
+ "unlockdate": null,
955
+ "unlockedoffline": null
956
+ },
957
+ {
958
+ "id": 132,
959
+ "title": "Bromageddon",
960
+ "artwork": {
961
+ "locked": "https://live.xbox.com/tiles/he/Tl/1jc8P2NhbC9NAxtUGltTWDE5L2FjaC8wLzk5AAAAAVBQUPnK5Jk=.jpg",
962
+ "unlocked": "https://image-ssl.xboxlive.com/global/t.4d530919/ach/0/99"
963
+ },
964
+ "description": "Complete the Campaign cooperatively on Heroic or harder.",
965
+ "gamerscore": 40,
966
+ "secret": false,
967
+ "unlocked": false,
968
+ "unlockdate": null,
969
+ "unlockedoffline": null
970
+ },
971
+ {
972
+ "id": 133,
973
+ "title": "Now they Fly?",
974
+ "artwork": {
975
+ "locked": "https://live.xbox.com/tiles/Ut/p4/1Tc8P2NhbC8SWRtUGltTWDE5L2FjaC8wL2NmAAAAAVBQUPpX2k4=.jpg",
976
+ "unlocked": "https://image-ssl.xboxlive.com/global/t.4d530919/ach/0/cf"
977
+ },
978
+ "description": "In Crimson DLC matchmaking, get a kill while airborne in a Warthog.",
979
+ "gamerscore": 50,
980
+ "secret": false,
981
+ "unlocked": false,
982
+ "unlockdate": null,
983
+ "unlockedoffline": null
984
+ },
985
+ {
986
+ "id": 134,
987
+ "title": "Size is Everything",
988
+ "artwork": {
989
+ "locked": "https://live.xbox.com/tiles/c-/E7/1jc8P2NhbC9EXhtUGltTWDE5L2FjaC8wL2QwAAAAAVBQUPkU8W8=.jpg",
990
+ "unlocked": "https://image-ssl.xboxlive.com/global/t.4d530919/ach/0/d0"
991
+ },
992
+ "description": "In Crimson DLC matchmaking, kill 20 enemies with a detached Machine Gun Turret.",
993
+ "gamerscore": 20,
994
+ "secret": false,
995
+ "unlocked": false,
996
+ "unlockdate": null,
997
+ "unlockedoffline": null
998
+ },
999
+ {
1000
+ "id": 137,
1001
+ "title": "Bigfoot",
1002
+ "artwork": {
1003
+ "locked": "https://live.xbox.com/tiles/xv/ga/1Dc8P2NhbC9HXhtUGltTWDE5L2FjaC8wL2QzAAAAAVBQUPs1+No=.jpg",
1004
+ "unlocked": "https://image-ssl.xboxlive.com/global/t.4d530919/ach/0/d3"
1005
+ },
1006
+ "description": "In Crimson DLC matchmaking, kill 20 enemies using the Mantis&#039; stomp attack.",
1007
+ "gamerscore": 20,
1008
+ "secret": false,
1009
+ "unlocked": false,
1010
+ "unlockdate": null,
1011
+ "unlockedoffline": null
1012
+ },
1013
+ {
1014
+ "id": 140,
1015
+ "title": "Clay Pigeon",
1016
+ "artwork": {
1017
+ "locked": "https://live.xbox.com/tiles/Ge/J5/0jc8P2NhbC9CXhtUGltTWDE5L2FjaC8wL2Q2AAAAAVBQUP1W4gU=.jpg",
1018
+ "unlocked": "https://image-ssl.xboxlive.com/global/t.4d530919/ach/0/d6"
1019
+ },
1020
+ "description": "In Crimson DLC matchmaking, shoot an enemy who&rsquo;s airborne from a Man Cannon.",
1021
+ "gamerscore": 40,
1022
+ "secret": false,
1023
+ "unlocked": false,
1024
+ "unlockdate": null,
1025
+ "unlockedoffline": null
1026
+ },
1027
+ {
1028
+ "id": 143,
1029
+ "title": "Didn&#039;t See It Comin&#039;",
1030
+ "artwork": {
1031
+ "locked": "https://live.xbox.com/tiles/ZL/MS/1Dc8P2NhbC8QXhtUGltTWDE5L2FjaC8wL2RkAAAAAVBQUPs9s3g=.jpg",
1032
+ "unlocked": "https://image-ssl.xboxlive.com/global/t.4d530919/ach/0/dd"
1033
+ },
1034
+ "description": "In Majestic DLC matchmaking, assassinate an enemy who&#039;s in zoom mode.",
1035
+ "gamerscore": 10,
1036
+ "secret": false,
1037
+ "unlocked": false,
1038
+ "unlockdate": null,
1039
+ "unlockedoffline": null
1040
+ },
1041
+ {
1042
+ "id": 146,
1043
+ "title": "Bird of Prey",
1044
+ "artwork": {
1045
+ "locked": "https://live.xbox.com/tiles/90/vy/1Tc8P2NhbC8RXhtUGltTWDE5L2FjaC8wL2RlAAAAAVBQUPrdS+s=.jpg",
1046
+ "unlocked": "https://image-ssl.xboxlive.com/global/t.4d530919/ach/0/de"
1047
+ },
1048
+ "description": "In Majestic DLC matchmaking, perform 5 &#039;airsassinations.&#039;",
1049
+ "gamerscore": 50,
1050
+ "secret": false,
1051
+ "unlocked": false,
1052
+ "unlockdate": null,
1053
+ "unlockedoffline": null
1054
+ },
1055
+ {
1056
+ "id": 148,
1057
+ "title": "I See You!",
1058
+ "artwork": {
1059
+ "locked": "https://live.xbox.com/tiles/MQ/i0/0Dc8P2NhbC9EXxtUGltTWDE5L2FjaC8wL2UwAAAAAVBQUP+bCC0=.jpg",
1060
+ "unlocked": "https://image-ssl.xboxlive.com/global/t.4d530919/ach/0/e0"
1061
+ },
1062
+ "description": "In Majestic DLC matchmaking, kill 5 enemies while Promethean Vision is active.",
1063
+ "gamerscore": 10,
1064
+ "secret": false,
1065
+ "unlocked": false,
1066
+ "unlockdate": null,
1067
+ "unlockedoffline": null
1068
+ },
1069
+ {
1070
+ "id": 149,
1071
+ "title": "Clever Girl",
1072
+ "artwork": {
1073
+ "locked": "https://live.xbox.com/tiles/ov/BU/0Tc8P2NhbC9FXxtUGltTWDE5L2FjaC8wL2UxAAAAAVBQUP578L4=.jpg",
1074
+ "unlocked": "https://image-ssl.xboxlive.com/global/t.4d530919/ach/0/e1"
1075
+ },
1076
+ "description": "In Majestic DLC matchmaking, kill 5 enemies while Active Camo is active.",
1077
+ "gamerscore": 10,
1078
+ "secret": false,
1079
+ "unlocked": false,
1080
+ "unlockdate": null,
1081
+ "unlockedoffline": null
1082
+ },
1083
+ {
1084
+ "id": 150,
1085
+ "title": "Flash of Light",
1086
+ "artwork": {
1087
+ "locked": "https://live.xbox.com/tiles/F-/l1/0zc8P2NhbC9GXxtUGltTWDE5L2FjaC8wL2UyAAAAAVBQUPxa+Qs=.jpg",
1088
+ "unlocked": "https://image-ssl.xboxlive.com/global/t.4d530919/ach/0/e2"
1089
+ },
1090
+ "description": "In Majestic DLC matchmaking, get a Double Kill or higher with one Pulse Grenade.",
1091
+ "gamerscore": 30,
1092
+ "secret": false,
1093
+ "unlocked": false,
1094
+ "unlockdate": null,
1095
+ "unlockedoffline": null
1096
+ },
1097
+ {
1098
+ "id": 151,
1099
+ "title": "Last Man Grinning",
1100
+ "artwork": {
1101
+ "locked": "https://live.xbox.com/tiles/hA/GV/0jc8P2NhbC9HXxtUGltTWDE5L2FjaC8wL2UzAAAAAVBQUP26AZg=.jpg",
1102
+ "unlocked": "https://image-ssl.xboxlive.com/global/t.4d530919/ach/0/e3"
1103
+ },
1104
+ "description": "In Majestic DLC matchmaking, get 4 kills using the SAW without dying.",
1105
+ "gamerscore": 20,
1106
+ "secret": false,
1107
+ "unlocked": false,
1108
+ "unlockdate": null,
1109
+ "unlockedoffline": null
1110
+ },
1111
+ {
1112
+ "id": 166,
1113
+ "title": "Dodge This!",
1114
+ "artwork": {
1115
+ "locked": "https://live.xbox.com/tiles/Jk/qd/0jc8P2NhbC8QXxtUGltTWDE5L2FjaC8wL2VkAAAAAVBQUP2ySjo=.jpg",
1116
+ "unlocked": "https://image-ssl.xboxlive.com/global/t.4d530919/ach/0/ed"
1117
+ },
1118
+ "description": "In Castle DLC matchmaking, get two direct Spartan Laser kills in one match.",
1119
+ "gamerscore": 20,
1120
+ "secret": false,
1121
+ "unlocked": false,
1122
+ "unlockdate": null,
1123
+ "unlockedoffline": null
1124
+ },
1125
+ {
1126
+ "id": 167,
1127
+ "title": "Hello Nurse!",
1128
+ "artwork": {
1129
+ "locked": "https://live.xbox.com/tiles/tb/J9/0zc8P2NhbC8RXxtUGltTWDE5L2FjaC8wL2VlAAAAAVBQUPxSsqk=.jpg",
1130
+ "unlocked": "https://image-ssl.xboxlive.com/global/t.4d530919/ach/0/ee"
1131
+ },
1132
+ "description": "In Castle DLC matchmaking, heal a near-death teammate with Regen Field 5 times.",
1133
+ "gamerscore": 30,
1134
+ "secret": false,
1135
+ "unlocked": false,
1136
+ "unlockdate": null,
1137
+ "unlockedoffline": null
1138
+ },
1139
+ {
1140
+ "id": 168,
1141
+ "title": "That Won&#039;t Save You",
1142
+ "artwork": {
1143
+ "locked": "https://live.xbox.com/tiles/AL/tc/0Tc8P2NhbC8SXxtUGltTWDE5L2FjaC8wL2VmAAAAAVBQUP5zuxw=.jpg",
1144
+ "unlocked": "https://image-ssl.xboxlive.com/global/t.4d530919/ach/0/ef"
1145
+ },
1146
+ "description": "In Castle DLC matchmaking, assassinate an enemy who is using a Hardlight Shield.",
1147
+ "gamerscore": 30,
1148
+ "secret": false,
1149
+ "unlocked": false,
1150
+ "unlockdate": null,
1151
+ "unlockedoffline": null
1152
+ },
1153
+ {
1154
+ "id": 170,
1155
+ "title": "Beating Up the Beat",
1156
+ "artwork": {
1157
+ "locked": "https://live.xbox.com/tiles/C8/BG/0zc8P2NhbC9FXBtUGltTWDE5L2FjaC8wL2YxAAAAAVBQUPxpwBc=.jpg",
1158
+ "unlocked": "https://image-ssl.xboxlive.com/global/t.4d530919/ach/0/f1"
1159
+ },
1160
+ "description": "In Castle DLC matchmaking, perform 5 melee kills in a single match.",
1161
+ "gamerscore": 30,
1162
+ "secret": false,
1163
+ "unlocked": false,
1164
+ "unlockdate": null,
1165
+ "unlockedoffline": null
1166
+ },
1167
+ {
1168
+ "id": 173,
1169
+ "title": "Outta My Way!",
1170
+ "artwork": {
1171
+ "locked": "https://live.xbox.com/tiles/1N/ol/1Tc8P2NhbC9AXBtUGltTWDE5L2FjaC8wL2Y0AAAAAVBQUPoK2sg=.jpg",
1172
+ "unlocked": "https://image-ssl.xboxlive.com/global/t.4d530919/ach/0/f4"
1173
+ },
1174
+ "description": "In Castle DLC matchmaking, kill 5 enemies during a match by running them over.",
1175
+ "gamerscore": 40,
1176
+ "secret": false,
1177
+ "unlocked": false,
1178
+ "unlockdate": null,
1179
+ "unlockedoffline": null
1180
+ },
1181
+ {
1182
+ "id": 183,
1183
+ "title": "Protect This House",
1184
+ "artwork": {
1185
+ "locked": "https://live.xbox.com/tiles/+i/Rx/0Dc8P2NhbC9FCgVLBRxYWlA5L2FjaC8wLzEwMQAAAAFQUFD-XiTn.jpg",
1186
+ "unlocked": "https://image-ssl.xboxlive.com/global/t.4d530919/ach/0/10"
1187
+ },
1188
+ "description": "In matchmaking, assassinate the ball carrier within five meters of your own goal in Ricochet.",
1189
+ "gamerscore": 30,
1190
+ "secret": false,
1191
+ "unlocked": false,
1192
+ "unlockdate": null,
1193
+ "unlockedoffline": null
1194
+ },
1195
+ {
1196
+ "id": 184,
1197
+ "title": "Hat Trick",
1198
+ "artwork": {
1199
+ "locked": "https://live.xbox.com/tiles/Ty/1Q/0jc8P2NhbC9GCgVLBRxYWlA5L2FjaC8wLzEwMgAAAAFQUFD9fy1S.jpg",
1200
+ "unlocked": "https://image-ssl.xboxlive.com/global/t.4d530919/ach/0/102"
1201
+ },
1202
+ "description": "In matchmaking, score three times in one round of Ricochet.",
1203
+ "gamerscore": 33,
1204
+ "secret": false,
1205
+ "unlocked": false,
1206
+ "unlockdate": null,
1207
+ "unlockedoffline": null
1208
+ },
1209
+ {
1210
+ "id": 185,
1211
+ "title": "From Downtown",
1212
+ "artwork": {
1213
+ "locked": "https://live.xbox.com/tiles/3N/Ww/0zc8P2NhbC9HCgVLBRxYWlA5L2FjaC8wLzEwMwAAAAFQUFD8n9XB.jpg",
1214
+ "unlocked": "https://image-ssl.xboxlive.com/global/t.4d530919/ach/0/103"
1215
+ },
1216
+ "description": "In matchmaking, score by throwing the ball from 30 meters in Ricochet.",
1217
+ "gamerscore": 25,
1218
+ "secret": false,
1219
+ "unlocked": false,
1220
+ "unlockdate": null,
1221
+ "unlockedoffline": null
1222
+ },
1223
+ {
1224
+ "id": 186,
1225
+ "title": "Repeat Survivor",
1226
+ "artwork": {
1227
+ "locked": "https://live.xbox.com/tiles/JT/4S/1jc8P2NhbC9ACgVLBRxYWlA5L2FjaC8wLzEwNAAAAAFQUFD5PT44.jpg",
1228
+ "unlocked": "https://image-ssl.xboxlive.com/global/t.4d530919/ach/0/104"
1229
+ },
1230
+ "description": "In matchmaking, survive three vehicle explosions in a row with the Survivor package.",
1231
+ "gamerscore": 25,
1232
+ "secret": false,
1233
+ "unlocked": false,
1234
+ "unlockdate": null,
1235
+ "unlockedoffline": null
1236
+ },
1237
+ {
1238
+ "id": 187,
1239
+ "title": "Can&rsquo;t Catch Me",
1240
+ "artwork": {
1241
+ "locked": "https://live.xbox.com/tiles/ts/by/1zc8P2NhbC9BCgVLBRxYWlA5L2FjaC8wLzEwNQAAAAFQUFD43car.jpg",
1242
+ "unlocked": "https://image-ssl.xboxlive.com/global/t.4d530919/ach/0/105"
1243
+ },
1244
+ "description": "In matchmaking, score a goal in Ricochet while taking damage with the Resistor active.",
1245
+ "gamerscore": 20,
1246
+ "secret": false,
1247
+ "unlocked": false,
1248
+ "unlockdate": null,
1249
+ "unlockedoffline": null
1250
+ },
1251
+ {
1252
+ "id": 188,
1253
+ "title": "Just a Scratch",
1254
+ "artwork": {
1255
+ "locked": "https://live.xbox.com/tiles/A8/-T/1Tc8P2NhbC9CCgVLBRxYWlA5L2FjaC8wLzEwNgAAAAFQUFD6-M8e.jpg",
1256
+ "unlocked": "https://image-ssl.xboxlive.com/global/t.4d530919/ach/0/10"
1257
+ },
1258
+ "description": "In matchmaking, recover full shields from low health with both Resistor and Recharge active.",
1259
+ "gamerscore": 20,
1260
+ "secret": false,
1261
+ "unlocked": false,
1262
+ "unlockdate": null,
1263
+ "unlockedoffline": null
1264
+ },
1265
+ {
1266
+ "id": 189,
1267
+ "title": "Pitchin&#039; a Tent",
1268
+ "artwork": {
1269
+ "locked": "https://live.xbox.com/tiles/kD/cz/1Dc8P2NhbC9DCgVLBRxYWlA5L2FjaC8wLzEwNwAAAAFQUFD7HDeN.jpg",
1270
+ "unlocked": "https://image-ssl.xboxlive.com/global/t.4d530919/ach/0/107"
1271
+ },
1272
+ "description": "In matchmaking, effectively camp one location without dying for a full 60 seconds.",
1273
+ "gamerscore": 40,
1274
+ "secret": false,
1275
+ "unlocked": false,
1276
+ "unlockdate": null,
1277
+ "unlockedoffline": null
1278
+ },
1279
+ {
1280
+ "id": 190,
1281
+ "title": "One Man Army",
1282
+ "artwork": {
1283
+ "locked": "https://live.xbox.com/tiles/ni/MU/1zc8P2NhbC9MCgVLBRxYWlA5L2FjaC8wLzEwOAAAAAFQUFD4OyOD.jpg",
1284
+ "unlocked": "https://image-ssl.xboxlive.com/global/t.4d530919/ach/0/108"
1285
+ },
1286
+ "description": "In matchmaking, get four consecutive kills with the Rocket Launcher without dying.",
1287
+ "gamerscore": 27,
1288
+ "secret": false,
1289
+ "unlocked": false,
1290
+ "unlockdate": null,
1291
+ "unlockedoffline": null
1292
+ },
1293
+ {
1294
+ "id": 191,
1295
+ "title": "Shocking",
1296
+ "artwork": {
1297
+ "locked": "https://live.xbox.com/tiles/Dd/v0/1jc8P2NhbC9NCgVLBRxYWlA5L2FjaC8wLzEwOQAAAAFQUFD529sQ.jpg",
1298
+ "unlocked": "https://image-ssl.xboxlive.com/global/t.4d530919/ach/0/109"
1299
+ },
1300
+ "description": "In Bullseye DLC matchmaking, activate both electrical surge systems during a match on Vertigo.",
1301
+ "gamerscore": 10,
1302
+ "secret": false,
1303
+ "unlocked": false,
1304
+ "unlockdate": null,
1305
+ "unlockedoffline": null
1306
+ }
1307
+ ],
1308
+ "freshness": "new"
1309
+ },
1310
+ "runtime": 3.38
1311
+ }
1312
+ http_version: '1.1'
1313
+ recorded_at: Sat, 03 May 2014 02:00:44 GMT
1314
+ recorded_with: VCR 2.9.0