From f80e1fffb6f675636b7a4a15be681287c1f467b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sonee=CC=81=20John?= Date: Sun, 30 Jun 2019 07:36:46 -0400 Subject: [PATCH 01/14] Log script and regular expressions when there is no `signatureFunction` --- XCDYouTubeKit/XCDYouTubePlayerScript.m | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/XCDYouTubeKit/XCDYouTubePlayerScript.m b/XCDYouTubeKit/XCDYouTubePlayerScript.m index 431704828..cbcc7e1b9 100644 --- a/XCDYouTubeKit/XCDYouTubePlayerScript.m +++ b/XCDYouTubeKit/XCDYouTubePlayerScript.m @@ -118,7 +118,7 @@ - (instancetype) initWithString:(NSString *)string } if (!_signatureFunction) - XCDYouTubeLogWarning(@"No signature function in player script"); + XCDYouTubeLogWarning(@"No signature function in player script: \n%@. Regular Expressions: \n%@", script, validRegularExpressions); return self; } From 67e0a8fe5c5f2a9060c177c8f63d5a456ee312af Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sonee=CC=81=20John?= Date: Sun, 30 Jun 2019 07:55:15 -0400 Subject: [PATCH 02/14] Add another player script regular expression #438 https://github.com/ytdl-org/youtube-dl/commit/31ce6e996666e7512990da01ef58785933dcb2be?diff=unified --- XCDYouTubeKit/XCDYouTubePlayerScript.m | 1 + 1 file changed, 1 insertion(+) diff --git a/XCDYouTubeKit/XCDYouTubePlayerScript.m b/XCDYouTubeKit/XCDYouTubePlayerScript.m index cbcc7e1b9..623683c77 100644 --- a/XCDYouTubeKit/XCDYouTubePlayerScript.m +++ b/XCDYouTubeKit/XCDYouTubePlayerScript.m @@ -76,6 +76,7 @@ - (instancetype) initWithString:(NSString *)string //See list of regex patterns here https://github.com/rg3/youtube-dl/blob/master/youtube_dl/extractor/youtube.py#L1179 NSArray*patterns = @[@"\\b[cs]\\s*&&\\s*[adf]\\.set\\([^,]+\\s*,\\s*encodeURIComponent\\s*\\(\\s*([a-zA-Z0-9$]+)\\(", @"\\b[a-zA-Z0-9]+\\s*&&\\s*[a-zA-Z0-9]+\\.set\\([^,]+\\s*,\\s*encodeURIComponent\\s*\\(\\s*([a-zA-Z0-9$]+)\\(", + @"([a-zA-Z0-9$]+)\\s*=\\s*function\\(\\s*a\\s*\\)\\s*\\{\\s*a\\s*=\\s*a\\.split\\(\\s*\"\"\\s*\\)", @"([\"\\\'])signature\\1\\s*,\\s*([a-zA-Z0-9$]+)\\(", @"\\.sig\\|\\|([a-zA-Z0-9$]+)\\(", @"yt\\.akamaized\\.net/\\)\\s*\\|\\|\\s*.*?\\s*[cs]\\s*&&\\s*[adf]\\.set\\([^,]+\\s*,\\s*(?:encodeURIComponent\\s*\\()?\\s*([a-zA-Z0-9$]+)\\(", From 2388d8f2a4620cf44be411840d2ca5670a65c9a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sonee=CC=81=20John?= Date: Sun, 30 Jun 2019 07:56:53 -0400 Subject: [PATCH 03/14] Line up patterns --- XCDYouTubeKit/XCDYouTubePlayerScript.m | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/XCDYouTubeKit/XCDYouTubePlayerScript.m b/XCDYouTubeKit/XCDYouTubePlayerScript.m index 623683c77..cf67f2c85 100644 --- a/XCDYouTubeKit/XCDYouTubePlayerScript.m +++ b/XCDYouTubeKit/XCDYouTubePlayerScript.m @@ -79,7 +79,7 @@ - (instancetype) initWithString:(NSString *)string @"([a-zA-Z0-9$]+)\\s*=\\s*function\\(\\s*a\\s*\\)\\s*\\{\\s*a\\s*=\\s*a\\.split\\(\\s*\"\"\\s*\\)", @"([\"\\\'])signature\\1\\s*,\\s*([a-zA-Z0-9$]+)\\(", @"\\.sig\\|\\|([a-zA-Z0-9$]+)\\(", - @"yt\\.akamaized\\.net/\\)\\s*\\|\\|\\s*.*?\\s*[cs]\\s*&&\\s*[adf]\\.set\\([^,]+\\s*,\\s*(?:encodeURIComponent\\s*\\()?\\s*([a-zA-Z0-9$]+)\\(", + @"yt\\.akamaized\\.net/\\)\\s*\\|\\|\\s*.*?\\s*[cs]\\s*&&\\s*[adf]\\.set\\([^,]+\\s*,\\s*(?:encodeURIComponent\\s*\\()?\\s*([a-zA-Z0-9$]+)\\(", @"\\b[cs]\\s*&&\\s*[adf]\\.set\\([^,]+\\s*,\\s*([a-zA-Z0-9$]+)\\(", @"\\b[a-zA-Z0-9]+\\s*&&\\s*[a-zA-Z0-9]+\\.set\\([^,]+\\s*,\\s*([a-zA-Z0-9$]+)\\(", @"\\bc\\s*&&\\s*a\\.set\\([^,]+\\s*,\\s*\\([^)]*\\)\\s*\\(\\s*([a-zA-Z0-9$]+)\\(", From b8eba936ac04844d8e37a9a80c55090cc789d04e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sonee=CC=81=20John?= Date: Mon, 1 Jul 2019 12:14:38 -0400 Subject: [PATCH 04/14] Add cookie support to VCRURLConnection --- .../VCRURLConnection/VCRURLConnection/VCR.h | 3 +++ .../VCRURLConnection/VCRURLConnection/VCR.m | 14 ++++++++++++++ .../VCRURLConnection/VCRRecordingURLProtocol.m | 3 +++ 3 files changed, 20 insertions(+) diff --git a/XCDYouTubeKit Tests/VCRURLConnection/VCRURLConnection/VCR.h b/XCDYouTubeKit Tests/VCRURLConnection/VCRURLConnection/VCR.h index 653d99290..a00f7de40 100644 --- a/XCDYouTubeKit Tests/VCRURLConnection/VCRURLConnection/VCR.h +++ b/XCDYouTubeKit Tests/VCRURLConnection/VCRURLConnection/VCR.h @@ -108,4 +108,7 @@ */ + (void)save:(NSString *)path; ++ (NSArray*)cookies; ++ (void)setCookies:(NSArray*)cookies; + @end diff --git a/XCDYouTubeKit Tests/VCRURLConnection/VCRURLConnection/VCR.m b/XCDYouTubeKit Tests/VCRURLConnection/VCRURLConnection/VCR.m index 6d18fe2cd..88281e3ff 100644 --- a/XCDYouTubeKit Tests/VCRURLConnection/VCRURLConnection/VCR.m +++ b/XCDYouTubeKit Tests/VCRURLConnection/VCRURLConnection/VCR.m @@ -31,6 +31,7 @@ static BOOL _VCRIsRecording; static BOOL _VCRIsReplaying; +static NSArray *_VCRCookies; @implementation VCR @@ -76,6 +77,9 @@ + (void)start { } + (void)stop { + for (NSHTTPCookie *cookie in _VCRCookies) { + [[NSHTTPCookieStorage sharedHTTPCookieStorage]deleteCookie:cookie]; + } [self setRecording:NO]; [self setReplaying:NO]; } @@ -84,6 +88,16 @@ + (void)save:(NSString *)path { return [[VCRCassetteManager defaultManager] save:path]; } ++ (NSArray *)cookies { + return _VCRCookies; +} + ++ (void)setCookies:(NSArray *)cookies { + if (_VCRCookies != cookies) { + _VCRCookies = cookies; + } +} + @end diff --git a/XCDYouTubeKit Tests/VCRURLConnection/VCRURLConnection/VCRRecordingURLProtocol.m b/XCDYouTubeKit Tests/VCRURLConnection/VCRURLConnection/VCRRecordingURLProtocol.m index 68132601b..fc032a617 100644 --- a/XCDYouTubeKit Tests/VCRURLConnection/VCRURLConnection/VCRRecordingURLProtocol.m +++ b/XCDYouTubeKit Tests/VCRURLConnection/VCRURLConnection/VCRRecordingURLProtocol.m @@ -42,6 +42,9 @@ + (BOOL)canInitWithRequest:(NSURLRequest *)request { } + (NSURLRequest *)canonicalRequestForRequest:(NSURLRequest *)request { + for (NSHTTPCookie *cookie in [VCR cookies]) { + [[NSHTTPCookieStorage sharedHTTPCookieStorage]setCookie:cookie]; + } return request; } From efc1cd2c59baa8e17d19e077fdac3cf484ce1263 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sonee=CC=81=20John?= Date: Mon, 1 Jul 2019 12:22:46 -0400 Subject: [PATCH 05/14] Delete minor user test and cookies --- .../Cookies/minorUserCookieData | Bin 7440 -> 0 bytes .../XCDYouTubeProtectedVideosTestCase.m | 107 ------------------ 2 files changed, 107 deletions(-) delete mode 100644 XCDYouTubeKit Tests/Cookies/minorUserCookieData diff --git a/XCDYouTubeKit Tests/Cookies/minorUserCookieData b/XCDYouTubeKit Tests/Cookies/minorUserCookieData deleted file mode 100644 index 13f38f0d9e7fe96e0cc3f955c160ef730cfb0ee5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7440 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 XCDYouTubeProtectedVideosAdultUserCookies(void); -extern NSArray * XCDYouTubeProtectedVideosMinorUserCookies(void); @end @implementation XCDYouTubeProtectedVideosTestCase -NSArray * XCDYouTubeProtectedVideosMinorUserCookies() -{ - NSURL *cookieURL = [[NSBundle bundleForClass:[XCDYouTubeProtectedVideosTestCase class]]URLForResource:@"minorUserCookieData" withExtension:nil subdirectory:@"Cookies"]; - - NSCAssert(cookieURL != nil, @"Cookie data could not be found!"); - NSData *cookieData = [NSData dataWithContentsOfURL:cookieURL]; - NSCAssert(cookieData != nil, @"Cookie data could not be found!"); - NSKeyedUnarchiver *unArchiver = [[NSKeyedUnarchiver alloc]initForReadingFromData:cookieData error:nil]; - unArchiver.requiresSecureCoding = NO; - NSSet *codingClasses = [NSSet setWithArray:@[ [NSArray classForCoder],[NSHTTPCookie classForCoder] ]]; - NSArray *cookies = [unArchiver decodeObjectOfClasses:codingClasses forKey:NSKeyedArchiveRootObjectKey]; - NSCAssert(cookies.count != 0, @"No cookies found!"); - return cookies; -} - NSArray * XCDYouTubeProtectedVideosAdultUserCookies() { NSURL *cookieURL = [[NSBundle bundleForClass:[XCDYouTubeProtectedVideosTestCase class]]URLForResource:@"adultUserCookieData" withExtension:nil subdirectory:@"Cookies"]; @@ -90,52 +74,6 @@ - (void) testAgeRestrictedVideoThatRequiresCookiesWithAdultUserCookiesIsPlayable [self waitForExpectationsWithTimeout:30 handler:nil]; } -- (void) testAgeRestrictedVideoThatRequiresCookiesWithMinorUserCookies_online -{ - __weak XCTestExpectation *expectation = [self expectationWithDescription:@""]; - [[XCDYouTubeClient defaultClient] getVideoWithIdentifier:@"vhG9_yBJmVE" cookies:XCDYouTubeProtectedVideosMinorUserCookies() completionHandler:^(XCDYouTubeVideo *video, NSError *error) - { - XCTAssertNil(error); - XCTAssertNotNil(video.title); - XCTAssertNotNil(video.expirationDate); - XCTAssertNotNil(video.thumbnailURL); - XCTAssertTrue(video.streamURLs.count > 0); - XCTAssertTrue(video.duration > 0); - [video.streamURLs enumerateKeysAndObjectsUsingBlock:^(NSNumber *key, NSURL *streamURL, BOOL *stop) - { - XCTAssertTrue([streamURL.query rangeOfString:@"signature="].location != NSNotFound || [streamURL.query rangeOfString:@"sig="].location != NSNotFound); - }]; - [expectation fulfill]; - }]; - - [self waitForExpectationsWithTimeout:30 handler:nil]; -} - -- (void) testAgeRestrictedVideoThatRequiresCookiesWithMinortUserCookiesIsPlayable_online -{ - __weak XCTestExpectation *expectation = [self expectationWithDescription:@""]; - [[XCDYouTubeClient defaultClient] getVideoWithIdentifier:@"vhG9_yBJmVE" cookies:XCDYouTubeProtectedVideosMinorUserCookies() completionHandler:^(XCDYouTubeVideo *video, NSError *error) - { - XCTAssertNil(error); - XCTAssertNotNil(video.title); - XCTAssertNotNil(video.expirationDate); - XCTAssertNotNil(video.thumbnailURL); - XCTAssertTrue(video.streamURLs.count > 0); - XCTAssertTrue(video.duration > 0); - NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:video.streamURLs[@(XCDYouTubeVideoQualityMedium360)]]; - request.HTTPMethod = @"HEAD"; - NSURLSessionDataTask *dataTask = [[NSURLSession sharedSession] dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *connectionError) - { - XCTAssertEqual([(NSHTTPURLResponse *)response statusCode], 200); - [expectation fulfill]; - }]; - - [dataTask resume]; - }]; - - [self waitForExpectationsWithTimeout:30 handler:nil]; -} - - (void) testAgeRestrictedVideoThatRequiresCookiesWithoutCookies { __weak XCTestExpectation *expectation = [self expectationWithDescription:@""]; @@ -337,51 +275,6 @@ - (void) testAgeRestrictedVEVOVideoWithAdultUserCookiesIsPlayable_online [self waitForExpectationsWithTimeout:30 handler:nil]; } -- (void) testAgeRestrictedVEVOVideoWithMinorUserCookies_online -{ - __weak XCTestExpectation *expectation = [self expectationWithDescription:@""]; - [[XCDYouTubeClient defaultClient] getVideoWithIdentifier:@"07FYdnEawAQ" cookies:XCDYouTubeProtectedVideosMinorUserCookies() completionHandler:^(XCDYouTubeVideo *video, NSError *error) - { - XCTAssertNil(error); - XCTAssertNotNil(video.title); - XCTAssertNotNil(video.expirationDate); - XCTAssertNotNil(video.thumbnailURL); - XCTAssertTrue(video.streamURLs.count > 0); - XCTAssertTrue(video.duration > 0); - [video.streamURLs enumerateKeysAndObjectsUsingBlock:^(NSNumber *key, NSURL *streamURL, BOOL *stop) - { - XCTAssertTrue([streamURL.query rangeOfString:@"signature="].location != NSNotFound || [streamURL.query rangeOfString:@"sig="].location != NSNotFound); - }]; - [expectation fulfill]; - }]; - - [self waitForExpectationsWithTimeout:30 handler:nil]; -} - -- (void) testAgeRestrictedVEVOVideoWithMinorUserCookiesIsPlayable_online -{ - __weak XCTestExpectation *expectation = [self expectationWithDescription:@""]; - [[XCDYouTubeClient defaultClient] getVideoWithIdentifier:@"07FYdnEawAQ" cookies:XCDYouTubeProtectedVideosMinorUserCookies() completionHandler:^(XCDYouTubeVideo *video, NSError *error) - { - XCTAssertNil(error); - XCTAssertNotNil(video.title); - XCTAssertNotNil(video.expirationDate); - XCTAssertNotNil(video.thumbnailURL); - XCTAssertTrue(video.streamURLs.count > 0); - XCTAssertTrue(video.duration > 0); - NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:video.streamURLs[@(XCDYouTubeVideoQualityMedium360)]]; - request.HTTPMethod = @"HEAD"; - NSURLSessionDataTask *dataTask = [[NSURLSession sharedSession] dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *connectionError) - { - XCTAssertEqual([(NSHTTPURLResponse *)response statusCode], 200); - [expectation fulfill]; - }]; - - [dataTask resume]; - }]; - - [self waitForExpectationsWithTimeout:30 handler:nil]; -} // With Charles // * Enable SSL proxying for *.youtube.com From 42bf8183dc4830b0c7c1880429c5e37b88d3bcbf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sonee=CC=81=20John?= Date: Mon, 1 Jul 2019 12:39:46 -0400 Subject: [PATCH 06/14] =?UTF-8?q?Utilize=20VCRURLConnection=E2=80=99s=20ne?= =?UTF-8?q?w=20cookie=20ability=20in=20unit=20tests?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...AgeRestrictedVEVOVideoWithUserCookies.json | 91 +++++++++++++++ ...tedVEVOVideoWithUserCookiesIsPlayable.json | 109 ++++++++++++++++++ .../testAgeRestrictedVideo.json | 4 +- ...resCookiesWithAdultUserCookies_online.json | 95 +++++++++++++++ ...deoThatRequiresCookiesWithUserCookies.json | 91 +++++++++++++++ ...uiresCookiesWithUserCookiesIsPlayable.json | 109 ++++++++++++++++++ ...ideoThatRequiresCookiesWithoutCookies.json | 88 ++++++-------- XCDYouTubeKit Tests/Cookies/.DS_Store | Bin 0 -> 6148 bytes .../{adultUserCookieData => UserCookieData} | Bin XCDYouTubeKit Tests/XCDYouTubeKitTestCase.h | 2 + XCDYouTubeKit Tests/XCDYouTubeKitTestCase.m | 1 + .../XCDYouTubeProtectedVideosTestCase.m | 45 +++++--- 12 files changed, 566 insertions(+), 69 deletions(-) create mode 100644 XCDYouTubeKit Tests/Cassettes/XCDYouTubeProtectedVideosTestCase/testAgeRestrictedVEVOVideoWithUserCookies.json create mode 100644 XCDYouTubeKit Tests/Cassettes/XCDYouTubeProtectedVideosTestCase/testAgeRestrictedVEVOVideoWithUserCookiesIsPlayable.json create mode 100644 XCDYouTubeKit Tests/Cassettes/XCDYouTubeProtectedVideosTestCase/testAgeRestrictedVideoThatRequiresCookiesWithAdultUserCookies_online.json create mode 100644 XCDYouTubeKit Tests/Cassettes/XCDYouTubeProtectedVideosTestCase/testAgeRestrictedVideoThatRequiresCookiesWithUserCookies.json create mode 100644 XCDYouTubeKit Tests/Cassettes/XCDYouTubeProtectedVideosTestCase/testAgeRestrictedVideoThatRequiresCookiesWithUserCookiesIsPlayable.json create mode 100644 XCDYouTubeKit Tests/Cookies/.DS_Store rename XCDYouTubeKit Tests/Cookies/{adultUserCookieData => UserCookieData} (100%) diff --git a/XCDYouTubeKit Tests/Cassettes/XCDYouTubeProtectedVideosTestCase/testAgeRestrictedVEVOVideoWithUserCookies.json b/XCDYouTubeKit Tests/Cassettes/XCDYouTubeProtectedVideosTestCase/testAgeRestrictedVEVOVideoWithUserCookies.json new file mode 100644 index 000000000..f0f8e0fb6 --- /dev/null +++ b/XCDYouTubeKit Tests/Cassettes/XCDYouTubeProtectedVideosTestCase/testAgeRestrictedVEVOVideoWithUserCookies.json @@ -0,0 +1,91 @@ +[ + { + "body" : "fmt_list=18%2F640x360&innertube_api_version=v1&video_id=07FYdnEawAQ&gapi_hint_params=m%3B%2F_%2Fscs%2Fabc-static%2F_%2Fjs%2Fk%3Dgapi.gapi.en.6Hr6HfhQmkw.O%2Fd%3D1%2Frs%3DAHpOoo_002wlh5Kwm-a9Vn_hwBzXlB2L_A%2Fm%3D__features__&watermark=%2Chttps%3A%2F%2Fs.ytimg.com%2Fyts%2Fimg%2Fwatermark%2Fyoutube_watermark-vflHX6b6E.png%2Chttps%3A%2F%2Fs.ytimg.com%2Fyts%2Fimg%2Fwatermark%2Fyoutube_hd_watermark-vflAzLcD6.png&fexp=23727261%2C23744176%2C23745074%2C23751747%2C23751767%2C23757412%2C23780337%2C23788840%2C23793834%2C23804281%2C23805410%2C23811378%2C23813346%2C23813548%2C23817149%2C23818122%2C23818585%2C23821688%2C23822933%2C23823217%2C9449243%2C9471239&title=Justin+Timberlake+-+Tunnel+Vision+%28Official+Music+Video%29+%28Explicit%29&status=ok&innertube_context_client_version=1.20190627&hl=en_US&length_seconds=419&url_encoded_fmt_stream_map=url%3Dhttps%253A%252F%252Fr2---sn-4avf-cbpe.googlevideo.com%252Fvideoplayback%253Fexpire%253D1562020547%2526ei%253DYzYaXaP7AYSXkAONor2YDg%2526ip%253D199.16.56.92%2526id%253Do-AGxmlsUs3OgcvsJAsJwj13ADLvD9Aiu4jB07WN4X1bNN%2526itag%253D18%2526source%253Dyoutube%2526requiressl%253Dyes%2526mm%253D31%25252C29%2526mn%253Dsn-4avf-cbpe%25252Csn-ab5sznly%2526ms%253Dau%25252Crdu%2526mv%253Dm%2526pcm2cms%253Dyes%2526pl%253D24%2526initcwndbps%253D423750%2526mime%253Dvideo%25252Fmp4%2526gir%253Dyes%2526clen%253D25211906%2526ratebypass%253Dyes%2526dur%253D418.934%2526lmt%253D1540922702610116%2526mt%253D1561998791%2526fvip%253D4%2526c%253DWEB%2526txp%253D5431432%2526sparams%253Dexpire%25252Cei%25252Cip%25252Cid%25252Citag%25252Csource%25252Crequiressl%25252Cmime%25252Cgir%25252Cclen%25252Cratebypass%25252Cdur%25252Clmt%2526lsparams%253Dmm%25252Cmn%25252Cms%25252Cmv%25252Cpcm2cms%25252Cpl%25252Cinitcwndbps%2526lsig%253DAHylml4wRQIgegmUfvxJgKcjrSGKoFWicE4LKZwUOIaG-scUU2SWaHgCIQDUKDWUZdeTimVgvi-tES5THIspINfQzvkLGdeslv3npQ%25253D%25253D%26sp%3Dsig%26s%3DY%253Dw%253D%253DwLO%253DWPD3bzjfKrxzGHcvRLFC6fvJwNm8d6MGBx-g9R0AiAtAKmmgh7klhQeqmqPoYIt4tIdmeK-TtLN1CTUlc98JLAAIQRww2IxgLhLU%26itag%3D18%26type%3Dvideo%252Fmp4%253B%2Bcodecs%253D%2522avc1.42001E%252C%2Bmp4a.40.2%2522%26quality%3Dmedium&cr=US&watch_ajax_token=QUFFLUhqa1RqUjdNMFJYN1FWX2NjbkVMZjItNnhYLWVGd3xBQ3Jtc0trSVRNTXRqUHViNFBIRnFVbm9xcDB1NUZ0STVJYlNpRU5UZWtPOW5pNWQ0Wnp3bzhPWnVDV21KRmNVSW92eHZIY1dTNnB0N1lxZmd3Z3JCMFF3NTFTaFBPSXotU3RMeXQtME5yZUM4REVoODNxcVhIaw%3D%3D&ucid=UCsXfDf1CDgU3SCt0gxJNXGg&rvs=endscreen_autoplay_session_data%3Dautonav%253D1%2526itct%253DMgxyZWxhdGVkLWF1dG9IhIDriOeO1tjTAQ%25253D%25253D%2526playnext%253D1%26iurlmq%3Dhttps%253A%252F%252Fi.ytimg.com%252Fvi%252FzwT6DZCQi9k%252Fhqdefault.jpg%253Fsqp%253D-oaymwEjCNACELwBSFryq4qpAxUIARUAAAAAGAElAADIQj0AgKJDeAE%253D%2526rs%253DAOn4CLCPpWu9_Ghs8w5Rt2R50E3DaCZUsQ%26title%3DRobin%2BThicke%2B-%2BBlurred%2BLines%2Bft.%2BT.I.%2B%2526%2BPharrell%2B%2528Unrated%2BVersion%2529%26short_view_count_text%3D61M%2Bviews%26length_seconds%3D272%26id%3DzwT6DZCQi9k%26session_data%3Ditct%253DMgllbmRzY3JlZW5IhIDriOeO1tjTAQ%25253D%25253D%26iurlhq%3Dhttps%253A%252F%252Fi.ytimg.com%252Fvi%252FzwT6DZCQi9k%252Fhqdefault.jpg%253Fsqp%253D-oaymwEjCNACELwBSFryq4qpAxUIARUAAAAAGAElAADIQj0AgKJDeAE%253D%2526rs%253DAOn4CLCPpWu9_Ghs8w5Rt2R50E3DaCZUsQ%26author%3DRobinThickeVEVO%2Cthumbnail_ids%3DQUuKvHHt8Sk%26video_id%3DQUuKvHHt8Sk%26list%3DRD07FYdnEawAQ%26playlist_iurlmq%3Dhttps%253A%252F%252Fi.ytimg.com%252Fvi%252F07FYdnEawAQ%252Fmqdefault.jpg%26playlist_length%3D0%26playlist_iurlhq%3Dhttps%253A%252F%252Fi.ytimg.com%252Fvi%252F07FYdnEawAQ%252Fhqdefault.jpg%26playlist_title%3DMix%2B-%2BJustin%2BTimberlake%2B-%2BTunnel%2BVision%2B%2528Official%2BMusic%2BVideo%2529%2B%2528Explicit%2529%26session_data%3Ditct%253DMgllbmRzY3JlZW5IhIDriOeO1tjTAQ%25253D%25253D%2Ciurlmq%3Dhttps%253A%252F%252Fi.ytimg.com%252Fvi%252FuuZE_IRwLNI%252Fhqdefault.jpg%253Fsqp%253D-oaymwEjCNACELwBSFryq4qpAxUIARUAAAAAGAElAADIQj0AgKJDeAE%253D%2526rs%253DAOn4CLDFNPtyRQm_mLDjoz8pAVZ4F0pPKQ%26title%3DJustin%2BTimberlake%2B-%2BMirrors%2B%2528Official%2BMusic%2BVideo%2529%26short_view_count_text%3D563M%2Bviews%26length_seconds%3D501%26id%3DuuZE_IRwLNI%26session_data%3Ditct%253DMgllbmRzY3JlZW5IhIDriOeO1tjTAQ%25253D%25253D%26iurlhq%3Dhttps%253A%252F%252Fi.ytimg.com%252Fvi%252FuuZE_IRwLNI%252Fhqdefault.jpg%253Fsqp%253D-oaymwEjCNACELwBSFryq4qpAxUIARUAAAAAGAElAADIQj0AgKJDeAE%253D%2526rs%253DAOn4CLDFNPtyRQm_mLDjoz8pAVZ4F0pPKQ%26author%3DjustintimberlakeVEVO%2Ciurlmq%3Dhttps%253A%252F%252Fi.ytimg.com%252Fvi%252FIC8qPpnD0uE%252Fhqdefault.jpg%253Fsqp%253D-oaymwEjCNACELwBSFryq4qpAxUIARUAAAAAGAElAADIQj0AgKJDeAE%253D%2526rs%253DAOn4CLAVrN6FXIeM7KNECkCrI-WqBJanIQ%26title%3DJustin%2BTimberlake%2B-%2BWhat%2BGoes%2BAround...Comes%2BAround%2B%2528Short%2BVersion%2529%26short_view_count_text%3D21M%2Bviews%26length_seconds%3D341%26id%3DIC8qPpnD0uE%26session_data%3Ditct%253DMgllbmRzY3JlZW5IhIDriOeO1tjTAQ%25253D%25253D%26iurlhq%3Dhttps%253A%252F%252Fi.ytimg.com%252Fvi%252FIC8qPpnD0uE%252Fhqdefault.jpg%253Fsqp%253D-oaymwEjCNACELwBSFryq4qpAxUIARUAAAAAGAElAADIQj0AgKJDeAE%253D%2526rs%253DAOn4CLAVrN6FXIeM7KNECkCrI-WqBJanIQ%26author%3DjustintimberlakeVEVO%2Ciurlmq%3Dhttps%253A%252F%252Fi.ytimg.com%252Fvi%252FTYR_7CeO39E%252Fhqdefault.jpg%253Fsqp%253D-oaymwEjCNACELwBSFryq4qpAxUIARUAAAAAGAElAADIQj0AgKJDeAE%253D%2526rs%253DAOn4CLDFp3tDYNVRjsiyVIc6TAcyBzCgtQ%26title%3DSexiest%2BMale%2BVocalist%2BRiff-Off%2Bw%252F%2BUsher%2B%2526%2BLuke%2BEvans%26short_view_count_text%3D13M%2Bviews%26length_seconds%3D797%26id%3DTYR_7CeO39E%26session_data%3Ditct%253DMgllbmRzY3JlZW5IhIDriOeO1tjTAQ%25253D%25253D%26iurlhq%3Dhttps%253A%252F%252Fi.ytimg.com%252Fvi%252FTYR_7CeO39E%252Fhqdefault.jpg%253Fsqp%253D-oaymwEjCNACELwBSFryq4qpAxUIARUAAAAAGAElAADIQj0AgKJDeAE%253D%2526rs%253DAOn4CLDFp3tDYNVRjsiyVIc6TAcyBzCgtQ%26author%3DThe%2BLate%2BLate%2BShow%2Bwith%2BJames%2BCorden%2Cthumbnail_ids%3Dru0K8uYEZWw%26video_id%3Dru0K8uYEZWw%26list%3DPLBAHmVTbbf934roMy0-hw5PD2RiOTOg9y%26playlist_iurlmq%3Dhttps%253A%252F%252Fi.ytimg.com%252Fvi%252Fru0K8uYEZWw%252Fmqdefault.jpg%26playlist_length%3D140%26playlist_iurlhq%3Dhttps%253A%252F%252Fi.ytimg.com%252Fvi%252Fru0K8uYEZWw%252Fhqdefault.jpg%26playlist_title%3DTop%2BTracks%2B-%2BJustin%2BTimberlake%26session_data%3Ditct%253DMgllbmRzY3JlZW5IhIDriOeO1tjTAQ%25253D%25253D%2Ciurlmq%3Dhttps%253A%252F%252Fi.ytimg.com%252Fvi%252Fk4EK7Hj32hs%252Fhqdefault.jpg%253Fsqp%253D-oaymwEjCNACELwBSFryq4qpAxUIARUAAAAAGAElAADIQj0AgKJDeAE%253D%2526rs%253DAOn4CLBcxJWiQrr6SQkw6IqoUIPTFws17A%26title%3DSade%2BGreatest%2BHits%2BFull%2BAlbum%2B-%2BThe%2BBest%2Bof%2BSade%26short_view_count_text%3D1.5M%2Bviews%26length_seconds%3D7571%26id%3Dk4EK7Hj32hs%26session_data%3Ditct%253DMgllbmRzY3JlZW5IhIDriOeO1tjTAQ%25253D%25253D%26iurlhq%3Dhttps%253A%252F%252Fi.ytimg.com%252Fvi%252Fk4EK7Hj32hs%252Fhqdefault.jpg%253Fsqp%253D-oaymwEjCNACELwBSFryq4qpAxUIARUAAAAAGAElAADIQj0AgKJDeAE%253D%2526rs%253DAOn4CLBcxJWiQrr6SQkw6IqoUIPTFws17A%26author%3DMusic%2BCollection%2Ciurlmq%3Dhttps%253A%252F%252Fi.ytimg.com%252Fvi%252FJPJjwHAIny4%252Fhqdefault.jpg%253Fsqp%253D-oaymwEjCNACELwBSFryq4qpAxUIARUAAAAAGAElAADIQj0AgKJDeAE%253D%2526rs%253DAOn4CLCdM08Qsrp90roV2eOSzkq5AZUUhA%26title%3DLady%2BGaga%252C%2BBradley%2BCooper%2B-%2BShallow%2B%2528From%2BA%2BStar%2BIs%2BBorn%252FLive%2BFrom%2BThe%2BOscars%2529%26short_view_count_text%3D141M%2Bviews%26length_seconds%3D238%26id%3DJPJjwHAIny4%26session_data%3Ditct%253DMgllbmRzY3JlZW5IhIDriOeO1tjTAQ%25253D%25253D%26iurlhq%3Dhttps%253A%252F%252Fi.ytimg.com%252Fvi%252FJPJjwHAIny4%252Fhqdefault.jpg%253Fsqp%253D-oaymwEjCNACELwBSFryq4qpAxUIARUAAAAAGAElAADIQj0AgKJDeAE%253D%2526rs%253DAOn4CLCdM08Qsrp90roV2eOSzkq5AZUUhA%26author%3DLadyGagaVEVO%2Ciurlmq%3Dhttps%253A%252F%252Fi.ytimg.com%252Fvi%252FrJYcmq__nDM%252Fhqdefault.jpg%253Fsqp%253D-oaymwEjCNACELwBSFryq4qpAxUIARUAAAAAGAElAADIQj0AgKJDeAE%253D%2526rs%253DAOn4CLCq2Lzp_JNBih_ARszfumfhiK_FWA%26title%3DRihanna%2B-%2BRehab%2Bft.%2BJustin%2BTimberlake%26short_view_count_text%3D320M%2Bviews%26length_seconds%3D279%26id%3DrJYcmq__nDM%26session_data%3Ditct%253DMgllbmRzY3JlZW5IhIDriOeO1tjTAQ%25253D%25253D%26iurlhq%3Dhttps%253A%252F%252Fi.ytimg.com%252Fvi%252FrJYcmq__nDM%252Fhqdefault.jpg%253Fsqp%253D-oaymwEjCNACELwBSFryq4qpAxUIARUAAAAAGAElAADIQj0AgKJDeAE%253D%2526rs%253DAOn4CLCq2Lzp_JNBih_ARszfumfhiK_FWA%26author%3DRihannaVEVO%2Ciurlmq%3Dhttps%253A%252F%252Fi.ytimg.com%252Fvi%252FI2b-wEsHEEA%252Fhqdefault.jpg%253Fsqp%253D-oaymwEjCNACELwBSFryq4qpAxUIARUAAAAAGAElAADIQj0AgKJDeAE%253D%2526rs%253DAOn4CLAehiT86FNLnjqLiWj2LkbuMQC_bQ%26title%3DMaroon%2B5%252C%2BEd%2BSheeran%252C%2BTaylor%2BSwift%252C%2BAdele%252C%2BAva%2BMax%252C%2BShawn%2BMendes%2B%257C%2BBest%2BPop%2BSongs%2BPlaylist%2B2019%26short_view_count_text%3D2.3M%2Bviews%26length_seconds%3D3813%26id%3DI2b-wEsHEEA%26session_data%3Ditct%253DMgllbmRzY3JlZW5IhIDriOeO1tjTAQ%25253D%25253D%26iurlhq%3Dhttps%253A%252F%252Fi.ytimg.com%252Fvi%252FI2b-wEsHEEA%252Fhqdefault.jpg%253Fsqp%253D-oaymwEjCNACELwBSFryq4qpAxUIARUAAAAAGAElAADIQj0AgKJDeAE%253D%2526rs%253DAOn4CLAehiT86FNLnjqLiWj2LkbuMQC_bQ%26author%3DLove%2BMusic%2Ciurlmq%3Dhttps%253A%252F%252Fi.ytimg.com%252Fvi%252F1-7ABIM2qjU%252Fhqdefault.jpg%253Fsqp%253D-oaymwEjCNACELwBSFryq4qpAxUIARUAAAAAGAElAADIQj0AgKJDeAE%253D%2526rs%253DAOn4CLCWR18XmKr2I4YscafqrBVI24V_1Q%26title%3DMichael%2BJackson%2B-%2BYou%2BRock%2BMy%2BWorld%2B%2528Official%2BVideo%2529%26short_view_count_text%3D147M%2Bviews%26length_seconds%3D813%26id%3D1-7ABIM2qjU%26session_data%3Ditct%253DMgllbmRzY3JlZW5IhIDriOeO1tjTAQ%25253D%25253D%26iurlhq%3Dhttps%253A%252F%252Fi.ytimg.com%252Fvi%252F1-7ABIM2qjU%252Fhqdefault.jpg%253Fsqp%253D-oaymwEjCNACELwBSFryq4qpAxUIARUAAAAAGAElAADIQj0AgKJDeAE%253D%2526rs%253DAOn4CLCWR18XmKr2I4YscafqrBVI24V_1Q%26author%3DmichaeljacksonVEVO%2Ciurlmq%3Dhttps%253A%252F%252Fi.ytimg.com%252Fvi%252F7Nbv3reNErw%252Fhqdefault.jpg%253Fsqp%253D-oaymwEjCNACELwBSFryq4qpAxUIARUAAAAAGAElAADIQj0AgKJDeAE%253D%2526rs%253DAOn4CLBCwpNB87iy-H5GRwGcNuqWGq0Nlg%26title%3DDaniLeigh%2B-%2BEasy%2B%2528Remix%2529%2Bft.%2BChris%2BBrown%26short_view_count_text%3D18M%2Bviews%26length_seconds%3D225%26id%3D7Nbv3reNErw%26session_data%3Ditct%253DMgllbmRzY3JlZW5IhIDriOeO1tjTAQ%25253D%25253D%26iurlhq%3Dhttps%253A%252F%252Fi.ytimg.com%252Fvi%252F7Nbv3reNErw%252Fhqdefault.jpg%253Fsqp%253D-oaymwEjCNACELwBSFryq4qpAxUIARUAAAAAGAElAADIQj0AgKJDeAE%253D%2526rs%253DAOn4CLBCwpNB87iy-H5GRwGcNuqWGq0Nlg%26author%3DDaniLeighVEVO&cver=1.20190627&author=justintimberlakeVEVO&csi_page_type=watch×tamp=1561998947&ssl=1&host_language=en&player_response=%7B%22playabilityStatus%22%3A%7B%22status%22%3A%22OK%22%2C%22playableInEmbed%22%3Atrue%7D%2C%22streamingData%22%3A%7B%22expiresInSeconds%22%3A%2221540%22%7D%2C%22playbackTracking%22%3A%7B%22videostatsPlaybackUrl%22%3A%7B%22baseUrl%22%3A%22https%3A%2F%2Fs.youtube.com%2Fapi%2Fstats%2Fplayback%3Fcl%3D254673106%5Cu0026docid%3D07FYdnEawAQ%5Cu0026ei%3DYzYaXaP7AYSXkAONor2YDg%5Cu0026fexp%3D23811378%252C23818585%252C23780337%252C23745074%252C23823217%252C23817149%252C23818122%252C23805410%252C23822933%252C23804281%252C1714240%252C23757412%5Cu0026ns%3Dyt%5Cu0026plid%3DAAWMoThjMs_Y8na0%5Cu0026referrer%3Dhttps%253A%252F%252Fyoutube.com%252Fwatch%253Fv%253D07FYdnEawAQ%5Cu0026sdetail%3Drv%253A07FYdnEawAQ%5Cu0026sourceid%3Dyw%5Cu0026el%3Ddetailpage%5Cu0026len%3D419%5Cu0026of%3DpQ7IvyQo1TWrdmZMwm5NIw%5Cu0026uga%3D20%5Cu0026vm%3DCAIQABgB%22%7D%2C%22videostatsDelayplayUrl%22%3A%7B%22baseUrl%22%3A%22https%3A%2F%2Fs.youtube.com%2Fapi%2Fstats%2Fdelayplay%3Fcl%3D254673106%5Cu0026docid%3D07FYdnEawAQ%5Cu0026ei%3DYzYaXaP7AYSXkAONor2YDg%5Cu0026fexp%3D23811378%252C23818585%252C23780337%252C23745074%252C23823217%252C23817149%252C23818122%252C23805410%252C23822933%252C23804281%252C1714240%252C23757412%5Cu0026ns%3Dyt%5Cu0026plid%3DAAWMoThjMs_Y8na0%5Cu0026referrer%3Dhttps%253A%252F%252Fyoutube.com%252Fwatch%253Fv%253D07FYdnEawAQ%5Cu0026sdetail%3Drv%253A07FYdnEawAQ%5Cu0026sourceid%3Dyw%5Cu0026el%3Ddetailpage%5Cu0026len%3D419%5Cu0026of%3DpQ7IvyQo1TWrdmZMwm5NIw%5Cu0026uga%3D20%5Cu0026vm%3DCAIQABgB%22%7D%2C%22videostatsWatchtimeUrl%22%3A%7B%22baseUrl%22%3A%22https%3A%2F%2Fs.youtube.com%2Fapi%2Fstats%2Fwatchtime%3Fcl%3D254673106%5Cu0026docid%3D07FYdnEawAQ%5Cu0026ei%3DYzYaXaP7AYSXkAONor2YDg%5Cu0026fexp%3D23811378%252C23818585%252C23780337%252C23745074%252C23823217%252C23817149%252C23818122%252C23805410%252C23822933%252C23804281%252C1714240%252C23757412%5Cu0026ns%3Dyt%5Cu0026plid%3DAAWMoThjMs_Y8na0%5Cu0026referrer%3Dhttps%253A%252F%252Fyoutube.com%252Fwatch%253Fv%253D07FYdnEawAQ%5Cu0026sdetail%3Drv%253A07FYdnEawAQ%5Cu0026sourceid%3Dyw%5Cu0026el%3Ddetailpage%5Cu0026len%3D419%5Cu0026of%3DpQ7IvyQo1TWrdmZMwm5NIw%5Cu0026uga%3D20%5Cu0026vm%3DCAIQABgB%22%7D%2C%22ptrackingUrl%22%3A%7B%22baseUrl%22%3A%22https%3A%2F%2Fwww.youtube.com%2Fptracking%3Fei%3DYzYaXaP7AYSXkAONor2YDg%5Cu0026oid%3DyZJtHRi2SvzOOKZfbA-GRA%5Cu0026plid%3DAAWMoThjMs_Y8na0%5Cu0026pltype%3Dcontent%5Cu0026ptchn%3DsXfDf1CDgU3SCt0gxJNXGg%5Cu0026ptk%3Dyoutube_single%5Cu0026video_id%3D07FYdnEawAQ%22%7D%2C%22qoeUrl%22%3A%7B%22baseUrl%22%3A%22https%3A%2F%2Fs.youtube.com%2Fapi%2Fstats%2Fqoe%3Fcl%3D254673106%5Cu0026docid%3D07FYdnEawAQ%5Cu0026ei%3DYzYaXaP7AYSXkAONor2YDg%5Cu0026event%3Dstreamingstats%5Cu0026fexp%3D23811378%252C23818585%252C23780337%252C23745074%252C23823217%252C23817149%252C23818122%252C23805410%252C23822933%252C23804281%252C1714240%252C23757412%5Cu0026ns%3Dyt%5Cu0026plid%3DAAWMoThjMs_Y8na0%5Cu0026referrer%3Dhttps%253A%252F%252Fyoutube.com%252Fwatch%253Fv%253D07FYdnEawAQ%5Cu0026sdetail%3Drv%253A07FYdnEawAQ%5Cu0026sourceid%3Dyw%22%7D%2C%22setAwesomeUrl%22%3A%7B%22baseUrl%22%3A%22https%3A%2F%2Fwww.youtube.com%2Fset_awesome%3Fei%3DYzYaXaP7AYSXkAONor2YDg%5Cu0026plid%3DAAWMoThjMs_Y8na0%5Cu0026video_id%3D07FYdnEawAQ%22%2C%22elapsedMediaTimeSeconds%22%3A120%7D%2C%22atrUrl%22%3A%7B%22baseUrl%22%3A%22https%3A%2F%2Fs.youtube.com%2Fapi%2Fstats%2Fatr%3Fdocid%3D07FYdnEawAQ%5Cu0026ei%3DYzYaXaP7AYSXkAONor2YDg%5Cu0026len%3D419%5Cu0026ns%3Dyt%5Cu0026plid%3DAAWMoThjMs_Y8na0%5Cu0026ver%3D2%22%2C%22elapsedMediaTimeSeconds%22%3A5%7D%2C%22youtubeRemarketingUrl%22%3A%7B%22baseUrl%22%3A%22https%3A%2F%2Fwww.youtube.com%2Fpagead%2Fviewthroughconversion%2F962985656%2F%3Fbackend%3Dinnertube%5Cu0026cname%3D1%5Cu0026cver%3D1_20190624%5Cu0026foc_id%3DsXfDf1CDgU3SCt0gxJNXGg%5Cu0026label%3Dfollowon_view%5Cu0026ptype%3Dno_rmkt%5Cu0026random%3D1047083737%22%2C%22elapsedMediaTimeSeconds%22%3A0%7D%2C%22googleRemarketingUrl%22%3A%7B%22baseUrl%22%3A%22https%3A%2F%2Fwww.google.com%2Fpagead%2F1p-user-list%2F962985656%2F%3Fbackend%3Dinnertube%5Cu0026cdct%3D2%5Cu0026cname%3D1%5Cu0026cver%3D1_20190624%5Cu0026data%3Dbackend%253Dinnertube%253Bcname%253D1%253Bcver%253D1_20190624%253Bm%253D1%253Bpresence_score%253D0.000000%253Bptype%253Df_view%253Btype%253Dview%253Butuid%253DsXfDf1CDgU3SCt0gxJNXGg%253Butvid%253D07FYdnEawAQ%253Bw%253D1%5Cu0026is_vtc%3D0%5Cu0026ptype%3Df_view%5Cu0026random%3D648332373%5Cu0026utuid%3DsXfDf1CDgU3SCt0gxJNXGg%22%2C%22elapsedMediaTimeSeconds%22%3A0%7D%7D%2C%22videoDetails%22%3A%7B%22videoId%22%3A%2207FYdnEawAQ%22%2C%22title%22%3A%22Justin+Timberlake+-+Tunnel+Vision+%28Official+Music+Video%29+%28Explicit%29%22%2C%22lengthSeconds%22%3A%22419%22%2C%22keywords%22%3A%5B%22Justin+Timberlake%22%2C%22Tunnel+Vision%22%2C%22new+song%22%2C%22new+video%22%2C%22official+video%22%2C%22official%22%2C%22new%22%2C%22JT%22%2C%2220%2F20+Experience%22%2C%22blurred+lines%22%2C%22nsfw%22%2C%22Justin+Timberlake+Vevo%22%2C%22Vevo+Music%22%2C%22Pop+Music%22%2C%22Top+40%22%5D%2C%22channelId%22%3A%22UCsXfDf1CDgU3SCt0gxJNXGg%22%2C%22isOwnerViewing%22%3Afalse%2C%22shortDescription%22%3A%22Executive+Producer%3A+Jeff+Nicholas+%5CnProduced+by+Jonathan+Craven+and+Nathan+Scherrer+%5CnDirected+by+Jonathan+Craven%2C+Simon+McLoughlin+and+Jeff+Nicholas+for+The+Uprising+Creative+%28http%3A%2F%2Ftheuprisingcreative.com%29+%5CnDirector+Of+Photography%3A+Sing+Howe+Yam+%5CnEditor%3A+Jacqueline+London%5Cn%5CnOfficial+music+video+by+Justin+Timberlake+performing+Tunnel+Vision+%28Explicit%29.+%28C%29+2013+RCA+Records%2C+a+division+of+Sony+Music+Entertainment%5Cn%5Cn%23JustinTimberlake+%23TunnelVision+%23Vevo+%23Pop+%23OfficialMuiscVideo%22%2C%22isCrawlable%22%3Atrue%2C%22thumbnail%22%3A%7B%22thumbnails%22%3A%5B%7B%22url%22%3A%22https%3A%2F%2Fi.ytimg.com%2Fvi%2F07FYdnEawAQ%2Fhqdefault.jpg%3Fsqp%3D-oaymwEiCKgBEF5IWvKriqkDFQgBFQAAAAAYASUAAMhCPQCAokN4AQ%3D%3D%5Cu0026rs%3DAOn4CLBS5jl_820CTEk94WX2KXZRPCEcpA%22%2C%22width%22%3A168%2C%22height%22%3A94%7D%2C%7B%22url%22%3A%22https%3A%2F%2Fi.ytimg.com%2Fvi%2F07FYdnEawAQ%2Fhqdefault.jpg%3Fsqp%3D-oaymwEiCMQBEG5IWvKriqkDFQgBFQAAAAAYASUAAMhCPQCAokN4AQ%3D%3D%5Cu0026rs%3DAOn4CLCaeepU7pTLb8k6VVnOh_Xii4BPGQ%22%2C%22width%22%3A196%2C%22height%22%3A110%7D%2C%7B%22url%22%3A%22https%3A%2F%2Fi.ytimg.com%2Fvi%2F07FYdnEawAQ%2Fhqdefault.jpg%3Fsqp%3D-oaymwEjCPYBEIoBSFryq4qpAxUIARUAAAAAGAElAADIQj0AgKJDeAE%3D%5Cu0026rs%3DAOn4CLDETi44X_Fn5EtYAM9GG81_175vmA%22%2C%22width%22%3A246%2C%22height%22%3A138%7D%2C%7B%22url%22%3A%22https%3A%2F%2Fi.ytimg.com%2Fvi%2F07FYdnEawAQ%2Fhqdefault.jpg%3Fsqp%3D-oaymwEjCNACELwBSFryq4qpAxUIARUAAAAAGAElAADIQj0AgKJDeAE%3D%5Cu0026rs%3DAOn4CLBe4qh0OfKEXhzHZZPwNdcmN4zxPw%22%2C%22width%22%3A336%2C%22height%22%3A188%7D%5D%7D%2C%22useCipher%22%3Atrue%2C%22averageRating%22%3A4.7448697%2C%22allowRatings%22%3Atrue%2C%22viewCount%22%3A%2216091126%22%2C%22author%22%3A%22justintimberlakeVEVO%22%2C%22isPrivate%22%3Afalse%2C%22isUnpluggedCorpus%22%3Afalse%2C%22isLiveContent%22%3Afalse%7D%2C%22annotations%22%3A%5B%7B%22playerAnnotationsUrlsRenderer%22%3A%7B%22invideoUrl%22%3A%22%2F%2Fwww.youtube.com%2Fannotations_invideo%3Fcap_hist%3D1%5Cu0026video_id%3D07FYdnEawAQ%5Cu0026client%3D1%22%2C%22loadPolicy%22%3A%22ALWAYS%22%2C%22allowInPlaceSwitch%22%3Afalse%7D%7D%5D%2C%22playerConfig%22%3A%7B%22audioConfig%22%3A%7B%22loudnessDb%22%3A-7.0389996%2C%22perceptualLoudnessDb%22%3A-28.039%7D%2C%22streamSelectionConfig%22%3A%7B%22maxBitrate%22%3A%223390000%22%7D%2C%22mediaCommonConfig%22%3A%7B%22dynamicReadaheadConfig%22%3A%7B%22maxReadAheadMediaTimeMs%22%3A120000%2C%22minReadAheadMediaTimeMs%22%3A15000%2C%22readAheadGrowthRateMs%22%3A1000%7D%7D%7D%2C%22storyboards%22%3A%7B%22playerStoryboardSpecRenderer%22%3A%7B%22spec%22%3A%22https%3A%2F%2Fi9.ytimg.com%2Fsb%2F07FYdnEawAQ%2Fstoryboard3_L%24L%2F%24N.jpg%3Fsqp%3DovOX_wMGCLin0Y4F%7C48%2327%23100%2310%2310%230%23default%23rs%24AOn4CLBollO7cAuT90LU0QvOGvY8q4kIYQ%7C80%2345%2385%2310%2310%235000%23M%24M%23rs%24AOn4CLBcnN_Csw70CPrlNI-QzBLZwWTNkQ%7C160%2390%2385%235%235%235000%23M%24M%23rs%24AOn4CLBduiS_NeQK03efxfd-7sJ40Fx5hg%22%7D%7D%2C%22attestation%22%3A%7B%22playerAttestationRenderer%22%3A%7B%22challenge%22%3A%22a%3D4%5Cu0026b%3DBCPf-2KTUiaaHAFBIOvO_ETl8_s%5Cu0026c%3D1561998947%5Cu0026d%3D1%5Cu0026e%3D07FYdnEawAQ%5Cu0026c3a%3D28%5Cu0026c1a%3D1%5Cu0026c6a%3D1%5Cu0026hh%3DaY4Qe3J9m3dyOyitfkIdXWV5L8cfIxfn6NRSdYZMsYc%22%7D%7D%2C%22endscreen%22%3A%7B%22endscreenUrlRenderer%22%3A%7B%22url%22%3A%22%2F%2Fwww.youtube.com%2Fget_endscreen%3Fclient%3D1%5Cu0026ei%3DYzYaXaP7AYSXkAONor2YDg%5Cu0026v%3D07FYdnEawAQ%22%7D%7D%2C%22adSafetyReason%22%3A%7B%22apmUserPreference%22%3A%7B%22adsPersonalizationOptout%22%3Afalse%2C%22allowGaiaTargetingOnThirdPartyProperties%22%3A%22OPTED_IN%22%7D%2C%22isRemarketingEnabled%22%3Atrue%2C%22isFocEnabled%22%3Atrue%7D%7D&enablecsi=1&innertube_api_key=AIzaSyAO_FJ2SlqU8Q4STEHLGCilw_Y9_11qcW8&enabled_engage_types=3%2C6%2C4%2C5%2C17%2C1&account_playback_token=QUFFLUhqbjZ6OE9IOWdhcHZVZVJBTWRMNEFIM01ld3M4UXxBQ3Jtc0ttUWk2N3BjelBRdnlLdHVlaVdKRlVrLUMyX0piYTYwWEhoV3hVMUZXSGxMSDAxelBwQ3dKWnpxeVlSdDFlV3VxR1dfeXhXak1QVTlCR3FTcUJ4dWFQdjEzZGhNXzMwN043bW5wTUtqT0RENFVDblFwbw%3D%3D&fflags=bulleit_mimic_ima_player_api_calls%3Dtrue%26html5_no_audio_append_cap%3Dtrue%26html5_live_abr_head_miss_fraction%3D0.0%26html5_disable_liveonly_seeks%3Dtrue%26html5_live_abr_repredict_fraction%3D0.0%26postroll_notify_time_seconds%3D5%26use_new_skip_icon%3Dtrue%26show_interstitial_for_3s%3Dtrue%26kevlar_miniplayer_button%3Dtrue%26html5_av1_thresh_lcc%3D360%26html5_enable_4k_hq_enc%3Dtrue%26html5_index_range_auth%3Dtrue%26hide_preskip%3Dtrue%26html5_live_low_latency_bandwidth_window%3D0.0%26unplugged_tvhtml5_botguard_attestation%3Dtrue%26enable_static_font_size_on_text_only_preview%3Dtrue%26enable_prefetch_for_postrolls%3Dtrue%26html5_desktop_vr180_allow_panning%3Dtrue%26enable_composite_ad_player_presentation_for_bulleit%3Dtrue%26html5_ignore_updates_before_initial_ping%3Dtrue%26enable_simple_preview_for_postrolls_html5%3Dtrue%26html5_av1_thresh_hcc%3D720%26bulleit_send_engage_ping_on_companion_click%3Dtrue%26html5_dynamic_readahead_growth_rate%3D0.0%26web_player_api_logging_fraction%3D0.01%26html5_hls_min_video_height%3D0%26html5_hack_gapless_init%3Dtrue%26html5_streaming_xhr_progress_includes_latest%3Dtrue%26html5_stop_start_seconds%3Dtrue%26forced_brand_precap_duration_ms%3D2000%26enable_on_skip_command_for_bulleit_living_room%3Dtrue%26enable_client_monitoring_for_bulleit_adplacement_schedule%3Dtrue%26android_attestation_flow%3Dyt_player%26bulleit_web_dim_skip_using_css%3Dtrue%26html5_qoe_bearer%3Dtrue%26provide_default_wta_reasons%3Dtrue%26visibility_error_html_dump_sample_rate%3D0.01%26html5_prefer_server_bwe3%3Dtrue%26html5_use_streaming_xhr_abort_support%3Dtrue%26enable_text_ad_overlay_link_fix%3Dtrue%26enable_mute_ad_endpoint_resolution_on_bulleit%3Dtrue%26ad_to_video_use_gel%3Dtrue%26html5_manifestless_request_prediction%3Dtrue%26html5_adjust_effective_request_size%3Dtrue%26html5_gapless_no_requests_after_lock%3Dtrue%26kevlar_miniplayer%3Dtrue%26html5_shrink_live_timestamps%3Dtrue%26send_html5_api_stats_ads_abandon%3Dtrue%26doubleclick_gpt_retagging%3Dtrue%26set_interstitial_advertisers_question_text%3Dtrue%26html5_sticky_reduces_discount_by%3D0.0%26html5_release_mediakey_after_load%3Dtrue%26kevlar_allow_multistep_video_init%3Dtrue%26mweb_muted_autoplay%3Dtrue%26turn_down_serialized_player_request_for_bulleit_living_room%3Dtrue%26html5_decode_to_texture_cap%3Dtrue%26bulleit_use_cue_video_to_reset_on_stop_ad%3Dtrue%26html5_df_downgrade_thresh%3D0.2%26html5_frame_accurate_seek_limit%3D3%26html5_manifestless_synchronized%3Dtrue%26html5_creativeless_vast_on_ima%3Dtrue%26enable_website_actions_on_mweb%3Dtrue%26html5_ad_stats_bearer%3Dtrue%26html5_allowable_liveness_drift_chunks%3D2%26disable_organic_cta_on_ad_playback%3Dtrue%26html5_manifestless_captions%3Dtrue%26web_player_response_ypc_parsing%3Dtrue%26defer_playability_status_fillers%3Dtrue%26html5_subsegment_readahead_timeout_secs%3D2.0%26html5_ad_timeout_ms%3D0%26allow_poltergust_autoplay%3Dtrue%26html5_request_sizing_multiplier%3D0.8%26html5_streaming_xhr_buffer_mdat%3Dtrue%26enable_html5_midroll_tsla_update%3Dtrue%26external_fullscreen_with_edu%3Dtrue%26html5_variability_full_discount_thresh%3D3.0%26html5_probe_live_using_range%3Dtrue%26preskip_button_style_ads_backend%3Dcountdown_next_to_thumbnail%26html5_live_quality_cap%3D0%26enable_ypc_clickwrap_on_living_room%3Dtrue%26html5_ignore_bad_bitrates%3Dtrue%26use_survey_skip_in_0s%3Dtrue%26html5_gapless_preloading%3Dtrue%26html5_reason_reporting_migration%3Dtrue%26html5_seeking_buffering_only_playing%3Dtrue%26html5_probe_primary_delay_base_ms%3D0%26html5_gapless_disable_preload_at_finish%3Dtrue%26html5_widevine_robustness_strings%3Dtrue%26web_player_response_fairplay_config_killswitch%3Dtrue%26max_resolution_for_white_noise%3D360%26html5_probe_secondary_during_timeout_miss_count%3D2%26html5_enable_embedded_player_visibility_signals%3Dtrue%26mweb_cougar%3Dtrue%26html5_max_headm_for_streaming_xhr%3D0%26html5_probe_media_capabilities%3Dtrue%26html5_manifestless_interpolate%3Dtrue%26segment_volume_reporting%3Dtrue%26embed_enable_playlist_ui%3Dtrue%26enable_kevlar_action_companion_cleanup%3Dtrue%26html5_get_video_info_timeout_ms%3D30000%26show_thumbnail_on_standard%3Dtrue%26enable_ad_pod_specific_ui%3Dtrue%26html5_waiting_before_ended%3Dtrue%26enable_live_premieres_vss_live_type_lp%3Dtrue%26html5_tight_max_buffer_allowed_impaired_time%3D0.0%26html5_readahead_ratelimit%3D3000%26display_endscreen_heartbeat%3Dtrue%26html5_pipeline_ultra_low_latency%3Dtrue%26html5_gapless_error_check_killswitch%3Dtrue%26stop_using_ima_sdk_gpt_request_activity%3Dtrue%26html5_progress_fix_fix%3Dtrue%26low_engagement_player_quality_cap%3D360%26html5_manifestless_no_redundant_seek_to_head%3Dtrue%26tvhtml5_min_readbehind_secs%3D20%26desktop_companion_wta_support%3Dtrue%26delay_bulleit_media_load_timer%3Dtrue%26html5_disable_preserve_reference%3Dtrue%26html5_gapless_ad_byterate_multiplier%3D1.6%26html5_progressive_fallback%3Dtrue%26html5_incremental_parser_buffer_duration_secs%3D1.5%26html5_skip_widevine_innertube_drm_heartbeats%3Dtrue%26html5_disable_extra_update_resource%3Dtrue%26use_new_style%3Dtrue%26html5_default_quality_cap%3D0%26html5_max_readahead_bandwidth_cap%3D0%26set_default_wta_if_missing_for_externs%3Dtrue%26embed_new_info_bar%3Dtrue%26html5_full_gapless_content_resume%3Dtrue%26youtubei_for_web%3Dtrue%26lasr_captions_holdback_counterfactual_id%3D0%26enable_wta_for_tv_html5_unplugged%3Dtrue%26html5_manifestless_always_redux%3Dtrue%26show_thumbnail_behind_ypc_offer_module%3Dtrue%26html5_playbackmanager_enable_notify_new_drm_info%3Dtrue%26html5_serverside_call_server_on_biscotti_timeout%3Dtrue%26html5_aspect_from_adaptive_format%3Dtrue%26html5_tv_bearer%3Dtrue%26html5_qoe_intercept%3D%26enable_instream_companion_on_mweb%3Dtrue%26disable_web_watchlater_during_ads%3Dtrue%26html5_bulleit_handle_gained_ended_state%3Dtrue%26html5_gapless_skip_remove%3Dtrue%26bulleit_publish_external_playback_events%3Dtrue%26html5_hls_pair_distinct_audio%3Dtrue%26html5_new_queueing%3Dtrue%26html5_bandwidth_window_size%3D0%26html5_minimum_readahead_seconds%3D0.0%26html5_ignore_public_setPlaybackQuality%3Dtrue%26bulleit_get_midroll_info_timeout_ms%3D8000%26html5_maximum_readahead_seconds%3D0.0%26html5_background_cap_idle_secs%3D60%26desktop_cleanup_companion_on_instream_begin%3Dtrue%26html5_autonav_quality_cap%3D0%26dash_manifest_version%3D5%26show_countdown_on_bumper%3Dtrue%26html5_gapless%3Dtrue%26interaction_screen_on_gel_web%3Dtrue%26video_to_ad_use_gel%3Dtrue%26mweb_playsinline_webview%3Dtrue%26web_logging_max_batch%3D100%26html5_new_seeking%3Dtrue%26variable_buffer_timeout_living_room_ms%3D0%26add_border_to_bulleit_mweb_skip%3Dtrue%26disable_annotations_cache_if_owner%3Dtrue%26html5_no_shadow_env_data_redux%3Dtrue%26html5_simple_buffered_bytes%3Dtrue%26html5_vis_upgrades_are_resizes%3Dtrue%26html5_min_secs_between_format_selections%3D8.0%26release_player_on_abandon_for_bulleit_lr_ads_frontend%3Dtrue%26live_fresca_v2%3Dtrue%26desktop_videowall_companion_wta_support%3Dtrue%26html5_gapless_allow_late_transitions%3Dtrue%26desktop_action_companion_wta_support%3Dtrue%26render_enhanced_overlays_as_ctas_for_desktop_style%3Dunset%26html5_deadzone_multiplier%3D1.0%26html5_no_placeholder_rollbacks%3Dtrue%26use_fast_fade_in_0s%3Dtrue%26delay_ads_gvi_call_on_bulleit_living_room_ms%3D0%26enable_bulleit_mweb_remix_ui%3Dtrue%26playready_on_borg%3Dtrue%26enable_brand_companion_on_mweb%3Dtrue%26allow_live_autoplay%3Dtrue%26html5_disable_vod_timestamp_rewriting%3Dtrue%26web_player_response_playback_tracking_parsing%3Dtrue%26midroll_notify_time_seconds%3D5%26html5_firefox_ambisonic_opus%3Dtrue%26html5_disable_move_pssh_to_moov%3Dtrue%26fixed_padding_skip_button%3Dtrue%26html5_subsegment_readahead_min_buffer_health_secs_on_timeout%3D0.1%26html5_min_readbehind_secs%3D0%26web_player_attestation_auth_headers%3Dtrue%26html5_vss_live_mode_killswitch%3Dtrue%26ensure_only_one_ads_termination_ping_for_bulleit%3Dtrue%26html5_parse_inline_fallback_host%3Dtrue%26autoplay_time%3D8000%26html5_gapless_ended_transition_buffer_ms%3D200%26enable_bulleit_mweb_gaming_ui%3Dtrue%26html5_exile_broken_instances%3Dtrue%26html5_ultra_low_latency_streaming_responses%3Dtrue%26html5_subsegment_readahead_min_load_speed%3D1.5%26html5_reuse_loader%3Dtrue%26mweb_playsinline%3Dtrue%26html5_fallbacks_delay_primary_probes%3Dtrue%26html5_vp9_live_whitelist%3Dtrue%26android_early_fetch_for_autoplay%3Dtrue%26html5_vp9_live_blacklist_edge%3Dtrue%26html5_fludd_suspend%3Dtrue%26bulleit_update_tsla_cookie%3Dtrue%26variable_buffer_timeout_ms%3D0%26use_always_dimmed_skip_in_bulleit_web%3Dtrue%26lightweight_watch_video_swf%3Dtrue%26html5_default_ad_gain%3D0.5%26www_for_videostats%3Dtrue%26html5_use_adaptive_live_readahead%3Dtrue%26sdk_ad_prefetch_time_seconds%3D-1%26tv_html5_bulleit_unify_adinfo%3Dtrue%26debug_dapper_trace_id%3D%26enable_html5_conversion_ve_reporting%3Dtrue%26bulleit_use_touch_events_for_skip%3Dtrue%26html5_use_media_capabilities%3Dtrue%26mweb_enable_instream_ui_refresh%3Dtrue%26html5_post_interrupt_readahead%3D20%26html5_gapless_encrypted_to_clear%3Dtrue%26html5_unrewrite_timestamps%3Dtrue%26html5_serverside_call_server_on_biscotti_error%3Dtrue%26persist_text_on_preview_button%3Dtrue%26html5_jumbo_mobile_subsegment_readahead_target%3D3.0%26vss_dni_delayping%3D0%26html5_max_av_sync_drift%3D50%26html5_hls_initial_bitrate%3D0%26interaction_click_on_gel_web%3Dtrue%26html5_av1_thresh_arm%3D240%26html5_log_hls_video_height_change_as_format_change%3Dtrue%26playready_first_play_expiration%3D-1%26html5_max_buffer_duration%3D120%26enable_bulleit_ve_single_clickthrough%3Dtrue%26web_player_response_overlay_parsing%3Dfalse%26use_local_interactions_library%3Dtrue%26html5_suspend_manifest_on_pause%3Dtrue%26html5_streaming_xhr_optimize_lengthless_mp4%3Dtrue%26html5_restrict_streaming_xhr_on_sqless_requests%3Dtrue%26web_player_kaios_autoplay%3Dtrue%26call_release_video_in_bulleit%3Dtrue%26use_touch_events_for_bulleit_mweb%3Dtrue%26bulleit_use_video_ad_div_as_overlay_container%3Dtrue%26html5_delay_initial_loading%3Dtrue%26mweb_cougar_big_controls%3Dtrue%26html5_pseudo_gapless%3Dtrue%26hfr_dropped_framerate_fallback_threshold%3D0%26use_forced_linebreak_preskip_text%3Dtrue%26html5_manifestless_accurate_sliceinfo%3Dtrue%26html5_enable_widevine_key_rotation%3Dtrue%26html5_get_video_info_promiseajax%3Dtrue%26html5_request_size_min_secs%3D0.0%26mweb_add_ad_info_button_on_fullscreen_only_devices%3Dtrue%26html5_playback_data_migration%3Dtrue%26html5_serverside_biscotti_id_wait_ms%3D1000%26enable_live_premiere_web_player_indicator%3Dtrue%26desktop_player_button_tooltip_with_shortcut%3Dtrue%26html5_prefer_low_quality_audio%3Dtrue%26bulleit_use_http_get_by_default_for_get_midroll_info%3Dtrue%26show_interstitial_white%3Dtrue%26enable_cc_button_for_lasr%3Dtrue%26enable_bulleit_lidar_integration%3Dtrue%26process_extensions_in_vast_wrappers_for_survey_ads%3Dtrue%26html5_show_stats_nerds_debug_info%3Dtrue%26html5_bmffparser_use_fast_read_string%3Dtrue%26html5_min_upgrade_health%3D0%26use_refreshed_overlay_buttons%3Dtrue%26skip_ad_pod_to_end_ads_quality%3Dtrue%26align_ad_to_video_player_lifecycle_for_bulleit%3Dtrue%26sdk_wrapper_levels_allowed%3D0%26log_playback_associated_web%3Dtrue%26skip_restore_on_abandon_in_bulleit%3Dtrue%26disable_client_side_midroll_freq_capping_nonpc%3Dtrue%26html5_min_buffer_to_resume%3D6%26html5_new_vis_fullscreen_and_airplay%3Dtrue%26html5_inline_video_quality_survey%3Dtrue%26html5_optimality_migration%3Dtrue%26html5_use_hasAdvanced_for_pbs%3Dtrue%26mpu_visible_threshold_count%3D2%26html5_video_tbd_min_kb%3D0%26html5_quality_cap_min_age_secs%3D0%26html5_expire_preloaded_players%3Dtrue%26ad_to_ad_use_gel%3Dtrue%26dynamic_ad_break_seek_threshold_sec%3D0%26enable_bulleit_for_mweb%3Dtrue%26html5_variability_no_discount_thresh%3D1.0%26embed_api_deprecation%3Dtrue%26html5_disable_non_contiguous%3Dtrue%26html5_hfr_quality_cap%3D0%26html5_bulleit_handle_gained_paused_state%3Dtrue%26html5_request_size_max_secs%3D31%26html5_ad_no_buffer_abort_after_skippable%3Dtrue%26live_chunk_readahead%3D3%26html5_pause_video_fix%3Dtrue%26allow_midrolls_on_watch_resume_in_bulleit%3Dtrue%26html5_manifestless_shrink_timestamps%3Dtrue%26html5_log_playback_rate_change_killswitch%3Dtrue%26fast_autonav_in_background%3Dtrue%26king_crimson_player_redux%3Dtrue%26html5_limit_adaptation_requests%3Dtrue%26bulleit_terminate_ad_when_ending_with_commands%3Dtrue%26html5_non_zero_gapless%3Dtrue%26html5_subsegment_readahead_seek_latency_fudge%3D0.5%26enforce_cuerange_priority_on_web%3Dtrue%26html5_gapless_min_duration_ms%3D0%26tvhtml5_yongle_quality_cap%3D0%26website_actions_throttle_percentage%3D1.0%26html5_elbow_tracking_tweaks%3Dtrue%26enable_eviction_protection_for_bulleit%3Dtrue%26mweb_autonav%3Dtrue%26html5_tight_max_buffer_allowed_bandwidth_stddevs%3D0.0%26attach_child_on_gel_web%3Dtrue%26tvhtml5_disable_live_prefetch%3Dtrue%26html5_live_disable_dg_pacing%3Dtrue%26html5_store_xhr_headers_readable%3Dtrue%26html5_stop_video_in_cancel_playback%3Dtrue%26html5_disable_subscribe_new_vis%3Dtrue%26html5_incremental_parser_buffer_extra_bytes%3D16384%26html5_live_4k_more_buffer%3Dtrue%26live_readahead_seconds_multiplier%3D0.8%26html5_gaplesstransition_error_new_elem%3Dtrue%26desktop_shopping_companion_wta_support%3Dtrue%26html5_pipeline_manifestless%3Dtrue%26dynamic_ad_break_pause_threshold_sec%3D0%26html5_cut_vss_on_visibility%3Dtrue%26html5_media_fullscreen%3Dtrue%26html5_av1_tv_killswitch%3Dtrue%26html5_suspend_loader%3Dtrue%26web_gel_debounce_ms%3D10000%26disable_new_pause_state3%3Dtrue%26html5_av1_ads%3Dtrue%26html5_min_readbehind_cap_secs%3D60%26skip_ad_button_with_thumbnail%3Dtrue%26player_unified_fullscreen_transitions%3Dtrue%26mweb_muted_autoplay_animation%3Dshrink%26html5_drm_output_restriction_retry_logic%3Dtrue%26html5_disable_manifestless_sqless_sync%3Dtrue%26html5_enable_fairplay_key_rotation%3Dtrue%26uniplayer_dbp%3Dtrue%26ima_video_ad_with_overlay_class_logging_percentage%3D0.01%26enable_overlays_wta%3Dtrue%26bulleit_use_video_end_cuerange_for_completion%3Dtrue%26spacecast_uniplayer_decorate_manifest%3Dtrue%26html5_platform_minimum_readahead_seconds%3D0.0%26enable_embed_autoplay_delay%3Dtrue%26bulleit_extract_delayed_mpu_on_all_placement_init%3Dtrue%26html5_jumbo_ull_subsegment_readahead_target%3D1.3%26html5_preload_media%3Dtrue%26variable_load_timeout_ms%3D0%26desktop_image_companion_wta_support%3Dtrue%26player_destroy_old_version%3Dtrue%26html5_live_ultra_low_latency_bandwidth_window%3D0.0%26html5_turn_down_slates%3Dtrue%26ad_video_end_renderer_duration_milliseconds%3D7000%26html5_samsung_vp9_live%3Dtrue%26html5_repredict_interval_secs%3D0.0%26ad_pod_disable_companion_persist_ads_quality%3Dtrue%26html5_peak_shave%3Dtrue%26set_interstitial_start_button%3Dtrue%26html5_disable_audio_slicing%3Dtrue%26bulleit_remove_client_side_midroll_reactivation%3Dtrue%26fix_bulleit_cue_range_seek%3Dtrue%26html5_subsegment_readahead_target_buffer_health_secs%3D0.5%26html5_msi_error_fallback%3Dtrue%26html5_connect_timeout_secs%3D7.0%26html5_disable_vp8_only_browsers%3Dtrue%26html5_live_normal_latency_bandwidth_window%3D0.0%26html5_player_autonav_logging%3Dtrue%26legacy_autoplay_flag%3Dtrue%26html5_variability_discount%3D0.5%26vmap_enabled_living_room%3Dtrue%26html5_live_no_streaming_impedance_mismatch%3Dtrue%26web_player_music_visualizer_treatment%3Dfake%26html5_live_pin_to_tail%3Dtrue%26unplugged_tvhtml5_video_preload_on_focus_delay_ms%3D0%26html5_max_live_dvr_window_plus_margin_secs%3D46800.0%26html5_stale_dash_manifest_retry_factor%3D1.0%26html5_subsegment_readahead_min_buffer_health_secs%3D0.25%26disable_client_side_midroll_freq_capping%3Dtrue%26bulleit_register_placements_in_order%3Dtrue%26enable_vss_type_post%3Dtrue%26enable_afv_div_reset_in_kevlar%3Dtrue%26web_player_assume_format3_available%3Dtrue%26html5_log_rebuffer_events%3D0%26html5_background_quality_cap%3D360%26html5_av1_thresh%3D720%26ensure_only_one_resolved_midroll_response_on_web%3Dtrue%26use_full_timing_library%3Dtrue%26ima_disable_reset_active_media_load_timeout%3Dtrue%26html5_remove_pause%3Dfalse%26html5_license_constraint_delay%3D5000%26bulleit_round_up_tsla%3Dtrue%26fix_gpt_pos_params%3Dtrue%26preskip_countdown_font_size%3D%26ad_duration_threshold_for_showing_endcap_seconds%3D15%26use_ima_media_selection_in_bulleit%3Dtrue%26bulleit_block_player_pause_until_ad_start%3Dtrue%26html5_min_has_advanced%3Dtrue%26html5_jumbo_ull_nonstreaming_mffa_ms%3D4000%26flex_theater_mode%3Dtrue%26html5_dont_predict_end_time_in_past%3Dtrue%26html5_gapless_max_played_ranges%3D12%26html5_subsegment_readahead_load_speed_check_interval%3D0.5%26html5_request_size_padding_secs%3D3.0%26html5_adaptation_fix%3Dtrue%26web_player_sentinel_is_uniplayer%3Dtrue&c=WEB&adaptive_fmts=s%3D5kE%253DkEz8%253DR1IoOqf6rUBBL04xzTYqu_nRhz-wC73b1CD1K4_EiAALCp7TILbhhFPslctVcYylQ8d18SBoj-NvkNN16nMaJAAIgRww2IxgLhLA%26bitrate%3D3767435%26lmt%3D1540921613322133%26type%3Dvideo%252Fmp4%253B%2Bcodecs%253D%2522avc1.640028%2522%26fps%3D24%26quality_label%3D1080p%26projection_type%3D1%26url%3Dhttps%253A%252F%252Fr2---sn-4avf-cbpe.googlevideo.com%252Fvideoplayback%253Fexpire%253D1562020547%2526ei%253DYzYaXaP7AYSXkAONor2YDg%2526ip%253D199.16.56.92%2526id%253Do-AGxmlsUs3OgcvsJAsJwj13ADLvD9Aiu4jB07WN4X1bNN%2526itag%253D137%2526aitags%253D133%25252C134%25252C135%25252C136%25252C137%25252C160%25252C242%25252C243%25252C244%25252C247%25252C248%25252C278%2526source%253Dyoutube%2526requiressl%253Dyes%2526mm%253D31%25252C29%2526mn%253Dsn-4avf-cbpe%25252Csn-ab5sznly%2526ms%253Dau%25252Crdu%2526mv%253Dm%2526pcm2cms%253Dyes%2526pl%253D24%2526initcwndbps%253D423750%2526mime%253Dvideo%25252Fmp4%2526gir%253Dyes%2526clen%253D85238638%2526dur%253D418.873%2526lmt%253D1540921613322133%2526mt%253D1561998791%2526fvip%253D4%2526keepalive%253Dyes%2526c%253DWEB%2526txp%253D5432432%2526sparams%253Dexpire%25252Cei%25252Cip%25252Cid%25252Caitags%25252Csource%25252Crequiressl%25252Cmime%25252Cgir%25252Cclen%25252Cdur%25252Clmt%2526lsparams%253Dmm%25252Cmn%25252Cms%25252Cmv%25252Cpcm2cms%25252Cpl%25252Cinitcwndbps%2526lsig%253DAHylml4wRQIgegmUfvxJgKcjrSGKoFWicE4LKZwUOIaG-scUU2SWaHgCIQDUKDWUZdeTimVgvi-tES5THIspINfQzvkLGdeslv3npQ%25253D%25253D%26sp%3Dsig%26init%3D0-714%26itag%3D137%26clen%3D85238638%26index%3D715-1742%26size%3D1920x1080%26xtags%3D%2Cs%3Dp%253Dg%253D%253DgmM%253DQc227CxEkJaa1TI40CtULd117xC-CyoHP0lHeNPCQICUMw0I05AwgvLKod_JrOBIIs-cMlrbjWAZx5wO2ddbNLAIQRww2IxgLgLU%26bitrate%3D2451436%26eotf%3Dbt709%26lmt%3D1540922703206771%26type%3Dvideo%252Fwebm%253B%2Bcodecs%253D%2522vp9%2522%26fps%3D24%26quality_label%3D1080p%26projection_type%3D1%26url%3Dhttps%253A%252F%252Fr2---sn-4avf-cbpe.googlevideo.com%252Fvideoplayback%253Fexpire%253D1562020547%2526ei%253DYzYaXaP7AYSXkAONor2YDg%2526ip%253D199.16.56.92%2526id%253Do-AGxmlsUs3OgcvsJAsJwj13ADLvD9Aiu4jB07WN4X1bNN%2526itag%253D248%2526aitags%253D133%25252C134%25252C135%25252C136%25252C137%25252C160%25252C242%25252C243%25252C244%25252C247%25252C248%25252C278%2526source%253Dyoutube%2526requiressl%253Dyes%2526mm%253D31%25252C29%2526mn%253Dsn-4avf-cbpe%25252Csn-ab5sznly%2526ms%253Dau%25252Crdu%2526mv%253Dm%2526pcm2cms%253Dyes%2526pl%253D24%2526initcwndbps%253D423750%2526mime%253Dvideo%25252Fwebm%2526gir%253Dyes%2526clen%253D64263855%2526dur%253D418.873%2526lmt%253D1540922703206771%2526mt%253D1561998791%2526fvip%253D4%2526keepalive%253Dyes%2526c%253DWEB%2526txp%253D5432432%2526sparams%253Dexpire%25252Cei%25252Cip%25252Cid%25252Caitags%25252Csource%25252Crequiressl%25252Cmime%25252Cgir%25252Cclen%25252Cdur%25252Clmt%2526lsparams%253Dmm%25252Cmn%25252Cms%25252Cmv%25252Cpcm2cms%25252Cpl%25252Cinitcwndbps%2526lsig%253DAHylml4wRQIgegmUfvxJgKcjrSGKoFWicE4LKZwUOIaG-scUU2SWaHgCIQDUKDWUZdeTimVgvi-tES5THIspINfQzvkLGdeslv3npQ%25253D%25253D%26sp%3Dsig%26init%3D0-219%26itag%3D248%26clen%3D64263855%26primaries%3Dbt709%26index%3D220-1675%26size%3D1920x1080%26xtags%3D%2Cs%3DJY9%253DY9zb%253DBlYxL5cGjBQCdep-VKKhAWvWMgVOuoYlbUjX1pmEiAaCRNUormdAhw4HAyfrl_-SVvA_KIUCa4w0yTWAWSUgPAAIgRww2IxgLhLA%26bitrate%3D2299726%26lmt%3D1540921736523499%26type%3Dvideo%252Fmp4%253B%2Bcodecs%253D%2522avc1.4d401f%2522%26fps%3D24%26quality_label%3D720p%26projection_type%3D1%26url%3Dhttps%253A%252F%252Fr2---sn-4avf-cbpe.googlevideo.com%252Fvideoplayback%253Fexpire%253D1562020547%2526ei%253DYzYaXaP7AYSXkAONor2YDg%2526ip%253D199.16.56.92%2526id%253Do-AGxmlsUs3OgcvsJAsJwj13ADLvD9Aiu4jB07WN4X1bNN%2526itag%253D136%2526aitags%253D133%25252C134%25252C135%25252C136%25252C137%25252C160%25252C242%25252C243%25252C244%25252C247%25252C248%25252C278%2526source%253Dyoutube%2526requiressl%253Dyes%2526mm%253D31%25252C29%2526mn%253Dsn-4avf-cbpe%25252Csn-ab5sznly%2526ms%253Dau%25252Crdu%2526mv%253Dm%2526pcm2cms%253Dyes%2526pl%253D24%2526initcwndbps%253D423750%2526mime%253Dvideo%25252Fmp4%2526gir%253Dyes%2526clen%253D46680284%2526dur%253D418.873%2526lmt%253D1540921736523499%2526mt%253D1561998791%2526fvip%253D4%2526keepalive%253Dyes%2526c%253DWEB%2526txp%253D5432432%2526sparams%253Dexpire%25252Cei%25252Cip%25252Cid%25252Caitags%25252Csource%25252Crequiressl%25252Cmime%25252Cgir%25252Cclen%25252Cdur%25252Clmt%2526lsparams%253Dmm%25252Cmn%25252Cms%25252Cmv%25252Cpcm2cms%25252Cpl%25252Cinitcwndbps%2526lsig%253DAHylml4wRQIgegmUfvxJgKcjrSGKoFWicE4LKZwUOIaG-scUU2SWaHgCIQDUKDWUZdeTimVgvi-tES5THIspINfQzvkLGdeslv3npQ%25253D%25253D%26sp%3Dsig%26init%3D0-712%26itag%3D136%26clen%3D46680284%26index%3D713-1740%26size%3D1280x720%26xtags%3D%2Cs%3DY%253Dg%253D%253Dgs_%253D7Q7JG0nV9E93FmsqHe6sLMLqbWy6xQom1q0mYCrDQICQOiqhlUyEghXCIR59OdQNOrKKCS_HMdlGSoiitJKL5FAIQRww2IxgLgLb%26bitrate%3D1520439%26eotf%3Dbt709%26lmt%3D1540922838850081%26type%3Dvideo%252Fwebm%253B%2Bcodecs%253D%2522vp9%2522%26fps%3D24%26quality_label%3D720p%26projection_type%3D1%26url%3Dhttps%253A%252F%252Fr2---sn-4avf-cbpe.googlevideo.com%252Fvideoplayback%253Fexpire%253D1562020547%2526ei%253DYzYaXaP7AYSXkAONor2YDg%2526ip%253D199.16.56.92%2526id%253Do-AGxmlsUs3OgcvsJAsJwj13ADLvD9Aiu4jB07WN4X1bNN%2526itag%253D247%2526aitags%253D133%25252C134%25252C135%25252C136%25252C137%25252C160%25252C242%25252C243%25252C244%25252C247%25252C248%25252C278%2526source%253Dyoutube%2526requiressl%253Dyes%2526mm%253D31%25252C29%2526mn%253Dsn-4avf-cbpe%25252Csn-ab5sznly%2526ms%253Dau%25252Crdu%2526mv%253Dm%2526pcm2cms%253Dyes%2526pl%253D24%2526initcwndbps%253D423750%2526mime%253Dvideo%25252Fwebm%2526gir%253Dyes%2526clen%253D38162635%2526dur%253D418.873%2526lmt%253D1540922838850081%2526mt%253D1561998791%2526fvip%253D4%2526keepalive%253Dyes%2526c%253DWEB%2526txp%253D5432432%2526sparams%253Dexpire%25252Cei%25252Cip%25252Cid%25252Caitags%25252Csource%25252Crequiressl%25252Cmime%25252Cgir%25252Cclen%25252Cdur%25252Clmt%2526lsparams%253Dmm%25252Cmn%25252Cms%25252Cmv%25252Cpcm2cms%25252Cpl%25252Cinitcwndbps%2526lsig%253DAHylml4wRQIgegmUfvxJgKcjrSGKoFWicE4LKZwUOIaG-scUU2SWaHgCIQDUKDWUZdeTimVgvi-tES5THIspINfQzvkLGdeslv3npQ%25253D%25253D%26sp%3Dsig%26init%3D0-219%26itag%3D247%26clen%3D38162635%26primaries%3Dbt709%26index%3D220-1663%26size%3D1280x720%26xtags%3D%2Cs%3Dw%253Dg%253D%253DgBP%253DVpZa9fu5etjwp52ED9Zv3JGLJJZBJn_JUTAsia8BiAbMb8olBEuChcOUmf53yqyV-IlJYvK-Tu4EhnNkMLb2KAAIQRww2IxgLhLa%26bitrate%3D1157525%26lmt%3D1540921738619790%26type%3Dvideo%252Fmp4%253B%2Bcodecs%253D%2522avc1.4d401e%2522%26fps%3D24%26quality_label%3D480p%26projection_type%3D1%26url%3Dhttps%253A%252F%252Fr2---sn-4avf-cbpe.googlevideo.com%252Fvideoplayback%253Fexpire%253D1562020547%2526ei%253DYzYaXaP7AYSXkAONor2YDg%2526ip%253D199.16.56.92%2526id%253Do-AGxmlsUs3OgcvsJAsJwj13ADLvD9Aiu4jB07WN4X1bNN%2526itag%253D135%2526aitags%253D133%25252C134%25252C135%25252C136%25252C137%25252C160%25252C242%25252C243%25252C244%25252C247%25252C248%25252C278%2526source%253Dyoutube%2526requiressl%253Dyes%2526mm%253D31%25252C29%2526mn%253Dsn-4avf-cbpe%25252Csn-ab5sznly%2526ms%253Dau%25252Crdu%2526mv%253Dm%2526pcm2cms%253Dyes%2526pl%253D24%2526initcwndbps%253D423750%2526mime%253Dvideo%25252Fmp4%2526gir%253Dyes%2526clen%253D24859474%2526dur%253D418.873%2526lmt%253D1540921738619790%2526mt%253D1561998791%2526fvip%253D4%2526keepalive%253Dyes%2526c%253DWEB%2526txp%253D5432432%2526sparams%253Dexpire%25252Cei%25252Cip%25252Cid%25252Caitags%25252Csource%25252Crequiressl%25252Cmime%25252Cgir%25252Cclen%25252Cdur%25252Clmt%2526lsparams%253Dmm%25252Cmn%25252Cms%25252Cmv%25252Cpcm2cms%25252Cpl%25252Cinitcwndbps%2526lsig%253DAHylml4wRQIgegmUfvxJgKcjrSGKoFWicE4LKZwUOIaG-scUU2SWaHgCIQDUKDWUZdeTimVgvi-tES5THIspINfQzvkLGdeslv3npQ%25253D%25253D%26sp%3Dsig%26init%3D0-712%26itag%3D135%26clen%3D24859474%26index%3D713-1740%26size%3D854x480%26xtags%3D%2Cs%3D7%253DQ%253D%253DQpR%253D2K50s-TwTs8FIwK7ec2rbkO97aPxfdHuRKINwauBiAXYIWsSmLpPh_wcwFzCOOYg0yAvqwwvFe5BypIsiEAkLAAIQRww2IxgLhLs%26bitrate%3D751796%26eotf%3Dbt709%26lmt%3D1540922838841912%26type%3Dvideo%252Fwebm%253B%2Bcodecs%253D%2522vp9%2522%26fps%3D24%26quality_label%3D480p%26projection_type%3D1%26url%3Dhttps%253A%252F%252Fr2---sn-4avf-cbpe.googlevideo.com%252Fvideoplayback%253Fexpire%253D1562020547%2526ei%253DYzYaXaP7AYSXkAONor2YDg%2526ip%253D199.16.56.92%2526id%253Do-AGxmlsUs3OgcvsJAsJwj13ADLvD9Aiu4jB07WN4X1bNN%2526itag%253D244%2526aitags%253D133%25252C134%25252C135%25252C136%25252C137%25252C160%25252C242%25252C243%25252C244%25252C247%25252C248%25252C278%2526source%253Dyoutube%2526requiressl%253Dyes%2526mm%253D31%25252C29%2526mn%253Dsn-4avf-cbpe%25252Csn-ab5sznly%2526ms%253Dau%25252Crdu%2526mv%253Dm%2526pcm2cms%253Dyes%2526pl%253D24%2526initcwndbps%253D423750%2526mime%253Dvideo%25252Fwebm%2526gir%253Dyes%2526clen%253D20309440%2526dur%253D418.873%2526lmt%253D1540922838841912%2526mt%253D1561998791%2526fvip%253D4%2526keepalive%253Dyes%2526c%253DWEB%2526txp%253D5432432%2526sparams%253Dexpire%25252Cei%25252Cip%25252Cid%25252Caitags%25252Csource%25252Crequiressl%25252Cmime%25252Cgir%25252Cclen%25252Cdur%25252Clmt%2526lsparams%253Dmm%25252Cmn%25252Cms%25252Cmv%25252Cpcm2cms%25252Cpl%25252Cinitcwndbps%2526lsig%253DAHylml4wRQIgegmUfvxJgKcjrSGKoFWicE4LKZwUOIaG-scUU2SWaHgCIQDUKDWUZdeTimVgvi-tES5THIspINfQzvkLGdeslv3npQ%25253D%25253D%26sp%3Dsig%26init%3D0-219%26itag%3D244%26clen%3D20309440%26primaries%3Dbt709%26index%3D220-1637%26size%3D854x480%26xtags%3D%2Cs%3D_ku8kuIo8TuaEB9cx7tJY15n1jQiwrz_ltV1TVma_vHggHICc7iZb0eEugOoIGcsqvYPcxqF6bVgu-v-OZvvgq6dWBTAIARww2IxgLgLY%26bitrate%3D636495%26lmt%3D1540921735735480%26type%3Dvideo%252Fmp4%253B%2Bcodecs%253D%2522avc1.4d401e%2522%26fps%3D24%26quality_label%3D360p%26projection_type%3D1%26url%3Dhttps%253A%252F%252Fr2---sn-4avf-cbpe.googlevideo.com%252Fvideoplayback%253Fexpire%253D1562020547%2526ei%253DYzYaXaP7AYSXkAONor2YDg%2526ip%253D199.16.56.92%2526id%253Do-AGxmlsUs3OgcvsJAsJwj13ADLvD9Aiu4jB07WN4X1bNN%2526itag%253D134%2526aitags%253D133%25252C134%25252C135%25252C136%25252C137%25252C160%25252C242%25252C243%25252C244%25252C247%25252C248%25252C278%2526source%253Dyoutube%2526requiressl%253Dyes%2526mm%253D31%25252C29%2526mn%253Dsn-4avf-cbpe%25252Csn-ab5sznly%2526ms%253Dau%25252Crdu%2526mv%253Dm%2526pcm2cms%253Dyes%2526pl%253D24%2526initcwndbps%253D423750%2526mime%253Dvideo%25252Fmp4%2526gir%253Dyes%2526clen%253D12745148%2526dur%253D418.873%2526lmt%253D1540921735735480%2526mt%253D1561998791%2526fvip%253D4%2526keepalive%253Dyes%2526c%253DWEB%2526txp%253D5432432%2526sparams%253Dexpire%25252Cei%25252Cip%25252Cid%25252Caitags%25252Csource%25252Crequiressl%25252Cmime%25252Cgir%25252Cclen%25252Cdur%25252Clmt%2526lsparams%253Dmm%25252Cmn%25252Cms%25252Cmv%25252Cpcm2cms%25252Cpl%25252Cinitcwndbps%2526lsig%253DAHylml4wRQIgegmUfvxJgKcjrSGKoFWicE4LKZwUOIaG-scUU2SWaHgCIQDUKDWUZdeTimVgvi-tES5THIspINfQzvkLGdeslv3npQ%25253D%25253D%26sp%3Dsig%26init%3D0-712%26itag%3D134%26clen%3D12745148%26index%3D713-1740%26size%3D640x360%26xtags%3D%2Cs%3D-%253Dg%253D%253DgO3%253DwQu_KOxXSMUPff7A5vz_bF2n-itN1z94QD050lvBiAeWzAThyW66hs35cTO3ln6pFVhYakZrUAVeAD3j7K1GKAAIQRww2IxgLhLU%26bitrate%3D408818%26eotf%3Dbt709%26lmt%3D1540922838841863%26type%3Dvideo%252Fwebm%253B%2Bcodecs%253D%2522vp9%2522%26fps%3D24%26quality_label%3D360p%26projection_type%3D1%26url%3Dhttps%253A%252F%252Fr2---sn-4avf-cbpe.googlevideo.com%252Fvideoplayback%253Fexpire%253D1562020547%2526ei%253DYzYaXaP7AYSXkAONor2YDg%2526ip%253D199.16.56.92%2526id%253Do-AGxmlsUs3OgcvsJAsJwj13ADLvD9Aiu4jB07WN4X1bNN%2526itag%253D243%2526aitags%253D133%25252C134%25252C135%25252C136%25252C137%25252C160%25252C242%25252C243%25252C244%25252C247%25252C248%25252C278%2526source%253Dyoutube%2526requiressl%253Dyes%2526mm%253D31%25252C29%2526mn%253Dsn-4avf-cbpe%25252Csn-ab5sznly%2526ms%253Dau%25252Crdu%2526mv%253Dm%2526pcm2cms%253Dyes%2526pl%253D24%2526initcwndbps%253D423750%2526mime%253Dvideo%25252Fwebm%2526gir%253Dyes%2526clen%253D12441183%2526dur%253D418.873%2526lmt%253D1540922838841863%2526mt%253D1561998791%2526fvip%253D4%2526keepalive%253Dyes%2526c%253DWEB%2526txp%253D5432432%2526sparams%253Dexpire%25252Cei%25252Cip%25252Cid%25252Caitags%25252Csource%25252Crequiressl%25252Cmime%25252Cgir%25252Cclen%25252Cdur%25252Clmt%2526lsparams%253Dmm%25252Cmn%25252Cms%25252Cmv%25252Cpcm2cms%25252Cpl%25252Cinitcwndbps%2526lsig%253DAHylml4wRQIgegmUfvxJgKcjrSGKoFWicE4LKZwUOIaG-scUU2SWaHgCIQDUKDWUZdeTimVgvi-tES5THIspINfQzvkLGdeslv3npQ%25253D%25253D%26sp%3Dsig%26init%3D0-219%26itag%3D243%26clen%3D12441183%26primaries%3Dbt709%26index%3D220-1621%26size%3D640x360%26xtags%3D%2Cs%3D8%253Dw%253D%253Dwa7%253D80a31nks1XWZiXU9QQqzumx1lChwh6dRuAEUxH-CQIC0k_LSr_cxgKRyLbcuWJjozYOcIcwF6ayaRRyMfjVCcJAIQRww2IxgLgLx%26bitrate%3D246352%26lmt%3D1540921735923995%26type%3Dvideo%252Fmp4%253B%2Bcodecs%253D%2522avc1.4d4015%2522%26fps%3D24%26quality_label%3D240p%26projection_type%3D1%26url%3Dhttps%253A%252F%252Fr2---sn-4avf-cbpe.googlevideo.com%252Fvideoplayback%253Fexpire%253D1562020547%2526ei%253DYzYaXaP7AYSXkAONor2YDg%2526ip%253D199.16.56.92%2526id%253Do-AGxmlsUs3OgcvsJAsJwj13ADLvD9Aiu4jB07WN4X1bNN%2526itag%253D133%2526aitags%253D133%25252C134%25252C135%25252C136%25252C137%25252C160%25252C242%25252C243%25252C244%25252C247%25252C248%25252C278%2526source%253Dyoutube%2526requiressl%253Dyes%2526mm%253D31%25252C29%2526mn%253Dsn-4avf-cbpe%25252Csn-ab5sznly%2526ms%253Dau%25252Crdu%2526mv%253Dm%2526pcm2cms%253Dyes%2526pl%253D24%2526initcwndbps%253D423750%2526mime%253Dvideo%25252Fmp4%2526gir%253Dyes%2526clen%253D5252689%2526dur%253D418.873%2526lmt%253D1540921735923995%2526mt%253D1561998791%2526fvip%253D4%2526keepalive%253Dyes%2526c%253DWEB%2526txp%253D5432432%2526sparams%253Dexpire%25252Cei%25252Cip%25252Cid%25252Caitags%25252Csource%25252Crequiressl%25252Cmime%25252Cgir%25252Cclen%25252Cdur%25252Clmt%2526lsparams%253Dmm%25252Cmn%25252Cms%25252Cmv%25252Cpcm2cms%25252Cpl%25252Cinitcwndbps%2526lsig%253DAHylml4wRQIgegmUfvxJgKcjrSGKoFWicE4LKZwUOIaG-scUU2SWaHgCIQDUKDWUZdeTimVgvi-tES5THIspINfQzvkLGdeslv3npQ%25253D%25253D%26sp%3Dsig%26init%3D0-712%26itag%3D133%26clen%3D5252689%26index%3D713-1740%26size%3D426x240%26xtags%3D%2Cs%3DnqRbqRvkbRzuM06_uifUmomtBKwtaX3Kjm-EUMKIxhovnCICwmvJ7NbapguucMbp_Qo1Fdzn3uWqPZA8BH2OduIZlYGAIARww2IxgLgLs%26bitrate%3D223443%26eotf%3Dbt709%26lmt%3D1540922838871180%26type%3Dvideo%252Fwebm%253B%2Bcodecs%253D%2522vp9%2522%26fps%3D24%26quality_label%3D240p%26projection_type%3D1%26url%3Dhttps%253A%252F%252Fr2---sn-4avf-cbpe.googlevideo.com%252Fvideoplayback%253Fexpire%253D1562020547%2526ei%253DYzYaXaP7AYSXkAONor2YDg%2526ip%253D199.16.56.92%2526id%253Do-AGxmlsUs3OgcvsJAsJwj13ADLvD9Aiu4jB07WN4X1bNN%2526itag%253D242%2526aitags%253D133%25252C134%25252C135%25252C136%25252C137%25252C160%25252C242%25252C243%25252C244%25252C247%25252C248%25252C278%2526source%253Dyoutube%2526requiressl%253Dyes%2526mm%253D31%25252C29%2526mn%253Dsn-4avf-cbpe%25252Csn-ab5sznly%2526ms%253Dau%25252Crdu%2526mv%253Dm%2526pcm2cms%253Dyes%2526pl%253D24%2526initcwndbps%253D423750%2526mime%253Dvideo%25252Fwebm%2526gir%253Dyes%2526clen%253D7046913%2526dur%253D418.873%2526lmt%253D1540922838871180%2526mt%253D1561998791%2526fvip%253D4%2526keepalive%253Dyes%2526c%253DWEB%2526txp%253D5432432%2526sparams%253Dexpire%25252Cei%25252Cip%25252Cid%25252Caitags%25252Csource%25252Crequiressl%25252Cmime%25252Cgir%25252Cclen%25252Cdur%25252Clmt%2526lsparams%253Dmm%25252Cmn%25252Cms%25252Cmv%25252Cpcm2cms%25252Cpl%25252Cinitcwndbps%2526lsig%253DAHylml4wRQIgegmUfvxJgKcjrSGKoFWicE4LKZwUOIaG-scUU2SWaHgCIQDUKDWUZdeTimVgvi-tES5THIspINfQzvkLGdeslv3npQ%25253D%25253D%26sp%3Dsig%26init%3D0-218%26itag%3D242%26clen%3D7046913%26primaries%3Dbt709%26index%3D219-1619%26size%3D426x240%26xtags%3D%2Cs%3DT%253Dw%253D%253DwXm%253Dt8xWUr-VC40lSPEewuePFPUFm-zd57ybRikK2qKAiA6-6aArkZJkhepxs12e5q-IRGlq-gbfbC9xkQ0yDFFzPAAIQRww2IxgLhL9%26bitrate%3D112480%26lmt%3D1540921735610081%26type%3Dvideo%252Fmp4%253B%2Bcodecs%253D%2522avc1.4d400c%2522%26fps%3D24%26quality_label%3D144p%26projection_type%3D1%26url%3Dhttps%253A%252F%252Fr2---sn-4avf-cbpe.googlevideo.com%252Fvideoplayback%253Fexpire%253D1562020547%2526ei%253DYzYaXaP7AYSXkAONor2YDg%2526ip%253D199.16.56.92%2526id%253Do-AGxmlsUs3OgcvsJAsJwj13ADLvD9Aiu4jB07WN4X1bNN%2526itag%253D160%2526aitags%253D133%25252C134%25252C135%25252C136%25252C137%25252C160%25252C242%25252C243%25252C244%25252C247%25252C248%25252C278%2526source%253Dyoutube%2526requiressl%253Dyes%2526mm%253D31%25252C29%2526mn%253Dsn-4avf-cbpe%25252Csn-ab5sznly%2526ms%253Dau%25252Crdu%2526mv%253Dm%2526pcm2cms%253Dyes%2526pl%253D24%2526initcwndbps%253D423750%2526mime%253Dvideo%25252Fmp4%2526gir%253Dyes%2526clen%253D2923645%2526dur%253D418.873%2526lmt%253D1540921735610081%2526mt%253D1561998791%2526fvip%253D4%2526keepalive%253Dyes%2526c%253DWEB%2526txp%253D5432432%2526sparams%253Dexpire%25252Cei%25252Cip%25252Cid%25252Caitags%25252Csource%25252Crequiressl%25252Cmime%25252Cgir%25252Cclen%25252Cdur%25252Clmt%2526lsparams%253Dmm%25252Cmn%25252Cms%25252Cmv%25252Cpcm2cms%25252Cpl%25252Cinitcwndbps%2526lsig%253DAHylml4wRQIgegmUfvxJgKcjrSGKoFWicE4LKZwUOIaG-scUU2SWaHgCIQDUKDWUZdeTimVgvi-tES5THIspINfQzvkLGdeslv3npQ%25253D%25253D%26sp%3Dsig%26init%3D0-711%26itag%3D160%26clen%3D2923645%26index%3D712-1739%26size%3D256x144%26xtags%3D%2Cs%3D2%253Dg%253D%253Dgx2%253Db17x5W0Gi6icXINs8PMvkIOht400LB0s3r9FJNzBiAVtbRWIi_tlhwe_rjlC0odYckn-pclB4OoIW8Brz7cGPAAIQRww2IxgLhLk%26bitrate%3D100952%26eotf%3Dbt709%26lmt%3D1540922838871887%26type%3Dvideo%252Fwebm%253B%2Bcodecs%253D%2522vp9%2522%26fps%3D24%26quality_label%3D144p%26projection_type%3D1%26url%3Dhttps%253A%252F%252Fr2---sn-4avf-cbpe.googlevideo.com%252Fvideoplayback%253Fexpire%253D1562020547%2526ei%253DYzYaXaP7AYSXkAONor2YDg%2526ip%253D199.16.56.92%2526id%253Do-AGxmlsUs3OgcvsJAsJwj13ADLvD9Aiu4jB07WN4X1bNN%2526itag%253D278%2526aitags%253D133%25252C134%25252C135%25252C136%25252C137%25252C160%25252C242%25252C243%25252C244%25252C247%25252C248%25252C278%2526source%253Dyoutube%2526requiressl%253Dyes%2526mm%253D31%25252C29%2526mn%253Dsn-4avf-cbpe%25252Csn-ab5sznly%2526ms%253Dau%25252Crdu%2526mv%253Dm%2526pcm2cms%253Dyes%2526pl%253D24%2526initcwndbps%253D423750%2526mime%253Dvideo%25252Fwebm%2526gir%253Dyes%2526clen%253D4342628%2526dur%253D418.873%2526lmt%253D1540922838871887%2526mt%253D1561998791%2526fvip%253D4%2526keepalive%253Dyes%2526c%253DWEB%2526txp%253D5432432%2526sparams%253Dexpire%25252Cei%25252Cip%25252Cid%25252Caitags%25252Csource%25252Crequiressl%25252Cmime%25252Cgir%25252Cclen%25252Cdur%25252Clmt%2526lsparams%253Dmm%25252Cmn%25252Cms%25252Cmv%25252Cpcm2cms%25252Cpl%25252Cinitcwndbps%2526lsig%253DAHylml4wRQIgegmUfvxJgKcjrSGKoFWicE4LKZwUOIaG-scUU2SWaHgCIQDUKDWUZdeTimVgvi-tES5THIspINfQzvkLGdeslv3npQ%25253D%25253D%26sp%3Dsig%26init%3D0-218%26itag%3D278%26clen%3D4342628%26primaries%3Dbt709%26index%3D219-1620%26size%3D256x144%26xtags%3D%2Caudio_sample_rate%3D44100%26s%3D6%253Dw%253D%253DwUm%253D6p3TYPh-vA1TRdtuHDlPPO_vmOMEL7gJVh7AxHzBiAJ-T2uTbmnuhezrJrTvQJgY8hDJ56mixOkoTSKjVwqpKAAIQRww2IxgLhL3%26bitrate%3D128333%26lmt%3D1540921679421217%26type%3Daudio%252Fmp4%253B%2Bcodecs%253D%2522mp4a.40.2%2522%26audio_channels%3D2%26projection_type%3D1%26url%3Dhttps%253A%252F%252Fr2---sn-4avf-cbpe.googlevideo.com%252Fvideoplayback%253Fexpire%253D1562020547%2526ei%253DYzYaXaP7AYSXkAONor2YDg%2526ip%253D199.16.56.92%2526id%253Do-AGxmlsUs3OgcvsJAsJwj13ADLvD9Aiu4jB07WN4X1bNN%2526itag%253D140%2526source%253Dyoutube%2526requiressl%253Dyes%2526mm%253D31%25252C29%2526mn%253Dsn-4avf-cbpe%25252Csn-ab5sznly%2526ms%253Dau%25252Crdu%2526mv%253Dm%2526pcm2cms%253Dyes%2526pl%253D24%2526initcwndbps%253D423750%2526mime%253Daudio%25252Fmp4%2526gir%253Dyes%2526clen%253D6654320%2526dur%253D418.934%2526lmt%253D1540921679421217%2526mt%253D1561998791%2526fvip%253D4%2526keepalive%253Dyes%2526c%253DWEB%2526txp%253D5432432%2526sparams%253Dexpire%25252Cei%25252Cip%25252Cid%25252Citag%25252Csource%25252Crequiressl%25252Cmime%25252Cgir%25252Cclen%25252Cdur%25252Clmt%2526lsparams%253Dmm%25252Cmn%25252Cms%25252Cmv%25252Cpcm2cms%25252Cpl%25252Cinitcwndbps%2526lsig%253DAHylml4wRQIgegmUfvxJgKcjrSGKoFWicE4LKZwUOIaG-scUU2SWaHgCIQDUKDWUZdeTimVgvi-tES5THIspINfQzvkLGdeslv3npQ%25253D%25253D%26sp%3Dsig%26init%3D0-591%26itag%3D140%26clen%3D6654320%26index%3D592-1127%26xtags%3D%2Caudio_sample_rate%3D44100%26s%3DT%253DA%253D%253DAHE%253D4iLq3xawEl1RjdpbkFL2jXWXO2JoR13A0fgRKz3BiAo8xz4LD5e6h-oe05Bp4CG7I-Dz25upZ7iHJ4L4SGHlPAAIQRww2IxgLhLU%26bitrate%3D126253%26lmt%3D1540924069336085%26type%3Daudio%252Fwebm%253B%2Bcodecs%253D%2522vorbis%2522%26audio_channels%3D2%26projection_type%3D1%26url%3Dhttps%253A%252F%252Fr2---sn-4avf-cbpe.googlevideo.com%252Fvideoplayback%253Fexpire%253D1562020547%2526ei%253DYzYaXaP7AYSXkAONor2YDg%2526ip%253D199.16.56.92%2526id%253Do-AGxmlsUs3OgcvsJAsJwj13ADLvD9Aiu4jB07WN4X1bNN%2526itag%253D171%2526source%253Dyoutube%2526requiressl%253Dyes%2526mm%253D31%25252C29%2526mn%253Dsn-4avf-cbpe%25252Csn-ab5sznly%2526ms%253Dau%25252Crdu%2526mv%253Dm%2526pcm2cms%253Dyes%2526pl%253D24%2526initcwndbps%253D423750%2526mime%253Daudio%25252Fwebm%2526gir%253Dyes%2526clen%253D5993384%2526dur%253D418.860%2526lmt%253D1540924069336085%2526mt%253D1561998791%2526fvip%253D4%2526keepalive%253Dyes%2526c%253DWEB%2526txp%253D5411222%2526sparams%253Dexpire%25252Cei%25252Cip%25252Cid%25252Citag%25252Csource%25252Crequiressl%25252Cmime%25252Cgir%25252Cclen%25252Cdur%25252Clmt%2526lsparams%253Dmm%25252Cmn%25252Cms%25252Cmv%25252Cpcm2cms%25252Cpl%25252Cinitcwndbps%2526lsig%253DAHylml4wRQIgegmUfvxJgKcjrSGKoFWicE4LKZwUOIaG-scUU2SWaHgCIQDUKDWUZdeTimVgvi-tES5THIspINfQzvkLGdeslv3npQ%25253D%25253D%26sp%3Dsig%26init%3D0-4445%26itag%3D171%26clen%3D5993384%26index%3D4446-5156%26xtags%3D%2Caudio_sample_rate%3D48000%26s%3DPPqcPqsncqXCO-4cUipAIA1MwvKN0yDLrKsE2T9Xs0cHKFICE_qNHhTwYgyQabwqaBXqYQtEF5v6ZqEh7aKkLSUYgOOAIARww2IxgLgL6%26bitrate%3D58016%26lmt%3D1540924068156255%26type%3Daudio%252Fwebm%253B%2Bcodecs%253D%2522opus%2522%26audio_channels%3D2%26projection_type%3D1%26url%3Dhttps%253A%252F%252Fr2---sn-4avf-cbpe.googlevideo.com%252Fvideoplayback%253Fexpire%253D1562020547%2526ei%253DYzYaXaP7AYSXkAONor2YDg%2526ip%253D199.16.56.92%2526id%253Do-AGxmlsUs3OgcvsJAsJwj13ADLvD9Aiu4jB07WN4X1bNN%2526itag%253D249%2526source%253Dyoutube%2526requiressl%253Dyes%2526mm%253D31%25252C29%2526mn%253Dsn-4avf-cbpe%25252Csn-ab5sznly%2526ms%253Dau%25252Crdu%2526mv%253Dm%2526pcm2cms%253Dyes%2526pl%253D24%2526initcwndbps%253D423750%2526mime%253Daudio%25252Fwebm%2526gir%253Dyes%2526clen%253D2525869%2526dur%253D418.901%2526lmt%253D1540924068156255%2526mt%253D1561998791%2526fvip%253D4%2526keepalive%253Dyes%2526c%253DWEB%2526txp%253D5411222%2526sparams%253Dexpire%25252Cei%25252Cip%25252Cid%25252Citag%25252Csource%25252Crequiressl%25252Cmime%25252Cgir%25252Cclen%25252Cdur%25252Clmt%2526lsparams%253Dmm%25252Cmn%25252Cms%25252Cmv%25252Cpcm2cms%25252Cpl%25252Cinitcwndbps%2526lsig%253DAHylml4wRQIgegmUfvxJgKcjrSGKoFWicE4LKZwUOIaG-scUU2SWaHgCIQDUKDWUZdeTimVgvi-tES5THIspINfQzvkLGdeslv3npQ%25253D%25253D%26sp%3Dsig%26init%3D0-265%26itag%3D249%26clen%3D2525869%26index%3D266-976%26xtags%3D%2Caudio_sample_rate%3D48000%26s%3Dc%253DA%253D%253DAKX%253Dcfgk3taQxE9VcbE3oJbqsanV6VBt8gvR5F1MmQ5AiAZbLOcbZh4FhYxFCUrsaREiokaBFR-Rv-1NgV1jn2SiJAAIQRww2IxgLhLn%26bitrate%3D75975%26lmt%3D1540924069128662%26type%3Daudio%252Fwebm%253B%2Bcodecs%253D%2522opus%2522%26audio_channels%3D2%26projection_type%3D1%26url%3Dhttps%253A%252F%252Fr2---sn-4avf-cbpe.googlevideo.com%252Fvideoplayback%253Fexpire%253D1562020547%2526ei%253DYzYaXaP7AYSXkAONor2YDg%2526ip%253D199.16.56.92%2526id%253Do-AGxmlsUs3OgcvsJAsJwj13ADLvD9Aiu4jB07WN4X1bNN%2526itag%253D250%2526source%253Dyoutube%2526requiressl%253Dyes%2526mm%253D31%25252C29%2526mn%253Dsn-4avf-cbpe%25252Csn-ab5sznly%2526ms%253Dau%25252Crdu%2526mv%253Dm%2526pcm2cms%253Dyes%2526pl%253D24%2526initcwndbps%253D423750%2526mime%253Daudio%25252Fwebm%2526gir%253Dyes%2526clen%253D3333492%2526dur%253D418.901%2526lmt%253D1540924069128662%2526mt%253D1561998791%2526fvip%253D4%2526keepalive%253Dyes%2526c%253DWEB%2526txp%253D5411222%2526sparams%253Dexpire%25252Cei%25252Cip%25252Cid%25252Citag%25252Csource%25252Crequiressl%25252Cmime%25252Cgir%25252Cclen%25252Cdur%25252Clmt%2526lsparams%253Dmm%25252Cmn%25252Cms%25252Cmv%25252Cpcm2cms%25252Cpl%25252Cinitcwndbps%2526lsig%253DAHylml4wRQIgegmUfvxJgKcjrSGKoFWicE4LKZwUOIaG-scUU2SWaHgCIQDUKDWUZdeTimVgvi-tES5THIspINfQzvkLGdeslv3npQ%25253D%25253D%26sp%3Dsig%26init%3D0-265%26itag%3D250%26clen%3D3333492%26index%3D266-976%26xtags%3D%2Caudio_sample_rate%3D48000%26s%3DUQ8%253DQ81H%253DzRR8IVvqmA6ptQPvOFGocjmrWUDd01y9s43mosXEiAprs6TGiSlrhJxvcUYHumq8G3o1__TFjlMVvyRp5hQeOAAIgRww2IxgLhLA%26bitrate%3D145551%26lmt%3D1540924068526663%26type%3Daudio%252Fwebm%253B%2Bcodecs%253D%2522opus%2522%26audio_channels%3D2%26projection_type%3D1%26url%3Dhttps%253A%252F%252Fr2---sn-4avf-cbpe.googlevideo.com%252Fvideoplayback%253Fexpire%253D1562020547%2526ei%253DYzYaXaP7AYSXkAONor2YDg%2526ip%253D199.16.56.92%2526id%253Do-AGxmlsUs3OgcvsJAsJwj13ADLvD9Aiu4jB07WN4X1bNN%2526itag%253D251%2526source%253Dyoutube%2526requiressl%253Dyes%2526mm%253D31%25252C29%2526mn%253Dsn-4avf-cbpe%25252Csn-ab5sznly%2526ms%253Dau%25252Crdu%2526mv%253Dm%2526pcm2cms%253Dyes%2526pl%253D24%2526initcwndbps%253D423750%2526mime%253Daudio%25252Fwebm%2526gir%253Dyes%2526clen%253D6547818%2526dur%253D418.901%2526lmt%253D1540924068526663%2526mt%253D1561998791%2526fvip%253D4%2526keepalive%253Dyes%2526c%253DWEB%2526txp%253D5411222%2526sparams%253Dexpire%25252Cei%25252Cip%25252Cid%25252Citag%25252Csource%25252Crequiressl%25252Cmime%25252Cgir%25252Cclen%25252Cdur%25252Clmt%2526lsparams%253Dmm%25252Cmn%25252Cms%25252Cmv%25252Cpcm2cms%25252Cpl%25252Cinitcwndbps%2526lsig%253DAHylml4wRQIgegmUfvxJgKcjrSGKoFWicE4LKZwUOIaG-scUU2SWaHgCIQDUKDWUZdeTimVgvi-tES5THIspINfQzvkLGdeslv3npQ%25253D%25253D%26sp%3Dsig%26init%3D0-265%26itag%3D251%26clen%3D6547818%26index%3D266-976%26xtags%3D&vss_host=s.youtube.com", + "headers" : { + "Content-Type" : "application\/x-www-form-urlencoded", + "P3P" : "CP=\"This is not a P3P policy! See http:\/\/support.google.com\/accounts\/answer\/151657?hl=en for more info.\"", + "Alt-Svc" : "quic=\":443\"; ma=2592000; v=\"46,44,43,39\"", + "Set-Cookie" : "SIDCC=AN0-TYvu5BJ3yJE9_FSUTNkaV96zqP_xdk_aKzzsyZjpfzDgp1WH-da17vccN25M43u6-XX_Lw; expires=Sun, 29-Sep-2019 16:35:47 GMT; path=\/; domain=.youtube.com; priority=high", + "Server" : "YouTube Frontend Proxy", + "Content-Encoding" : "br", + "X-XSS-Protection" : "0", + "Expires" : "Tue, 27 Apr 1971 19:44:06 EST", + "Transfer-Encoding" : "Identity", + "Cache-Control" : "no-store", + "Date" : "Mon, 01 Jul 2019 16:35:47 GMT", + "Strict-Transport-Security" : "max-age=31536000", + "X-Content-Type-Options" : "nosniff", + "X-Frame-Options" : "SAMEORIGIN" + }, + "method" : "GET", + "status" : 200, + "uri" : "https:\/\/www.youtube.com\/get_video_info?el=detailpage&hl=en&ps=default&video_id=07FYdnEawAQ" + }, + { + "body" : "reason=This+video+is+unavailable.&vss_host=s.youtube.com&length_seconds=419&cr=US&innertube_api_key=AIzaSyAO_FJ2SlqU8Q4STEHLGCilw_Y9_11qcW8&enablecsi=1&player_response=%7B%22playabilityStatus%22%3A%7B%22status%22%3A%22UNPLAYABLE%22%2C%22reason%22%3A%22This+video+is+unavailable.%22%2C%22errorScreen%22%3A%7B%22playerErrorMessageRenderer%22%3A%7B%22reason%22%3A%7B%22simpleText%22%3A%22This+video+is+unavailable.%22%7D%2C%22proceedButton%22%3A%7B%22buttonRenderer%22%3A%7B%22style%22%3A%22STYLE_PRIMARY%22%2C%22size%22%3A%22SIZE_DEFAULT%22%2C%22isDisabled%22%3Afalse%2C%22text%22%3A%7B%22simpleText%22%3A%22Watch+on+YouTube%22%7D%2C%22trackingParams%22%3A%22CAIQ8FsiEwjHmvLCk5TjAhX5yuMHHWXPAyAo6NQB%22%7D%7D%2C%22thumbnail%22%3A%7B%22thumbnails%22%3A%5B%7B%22url%22%3A%22%2F%2Fs.ytimg.com%2Fyts%2Fimg%2Fmeh7-vflGevej7.png%22%2C%22width%22%3A140%2C%22height%22%3A100%7D%5D%7D%2C%22icon%22%3A%7B%22iconType%22%3A%22ERROR_OUTLINE%22%7D%7D%7D%7D%2C%22streamingData%22%3A%7B%7D%2C%22videoDetails%22%3A%7B%22videoId%22%3A%2207FYdnEawAQ%22%2C%22title%22%3A%22Justin+Timberlake+-+Tunnel+Vision+%28Official+Music+Video%29+%28Explicit%29%22%2C%22lengthSeconds%22%3A%22419%22%2C%22keywords%22%3A%5B%22Justin+Timberlake%22%2C%22Tunnel+Vision%22%2C%22new+song%22%2C%22new+video%22%2C%22official+video%22%2C%22official%22%2C%22new%22%2C%22JT%22%2C%2220%2F20+Experience%22%2C%22blurred+lines%22%2C%22nsfw%22%2C%22Justin+Timberlake+Vevo%22%2C%22Vevo+Music%22%2C%22Pop+Music%22%2C%22Top+40%22%5D%2C%22channelId%22%3A%22UCsXfDf1CDgU3SCt0gxJNXGg%22%2C%22isOwnerViewing%22%3Afalse%2C%22shortDescription%22%3A%22Executive+Producer%3A+Jeff+Nicholas+%5CnProduced+by+Jonathan+Craven+and+Nathan+Scherrer+%5CnDirected+by+Jonathan+Craven%2C+Simon+McLoughlin+and+Jeff+Nicholas+for+The+Uprising+Creative+%28http%3A%2F%2Ftheuprisingcreative.com%29+%5CnDirector+Of+Photography%3A+Sing+Howe+Yam+%5CnEditor%3A+Jacqueline+London%5Cn%5CnOfficial+music+video+by+Justin+Timberlake+performing+Tunnel+Vision+%28Explicit%29.+%28C%29+2013+RCA+Records%2C+a+division+of+Sony+Music+Entertainment%5Cn%5Cn%23JustinTimberlake+%23TunnelVision+%23Vevo+%23Pop+%23OfficialMuiscVideo%22%2C%22isCrawlable%22%3Atrue%2C%22thumbnail%22%3A%7B%22thumbnails%22%3A%5B%7B%22url%22%3A%22https%3A%2F%2Fi.ytimg.com%2Fvi%2F07FYdnEawAQ%2Fhqdefault.jpg%3Fsqp%3D-oaymwEiCKgBEF5IWvKriqkDFQgBFQAAAAAYASUAAMhCPQCAokN4AQ%3D%3D%5Cu0026rs%3DAOn4CLBS5jl_820CTEk94WX2KXZRPCEcpA%22%2C%22width%22%3A168%2C%22height%22%3A94%7D%2C%7B%22url%22%3A%22https%3A%2F%2Fi.ytimg.com%2Fvi%2F07FYdnEawAQ%2Fhqdefault.jpg%3Fsqp%3D-oaymwEiCMQBEG5IWvKriqkDFQgBFQAAAAAYASUAAMhCPQCAokN4AQ%3D%3D%5Cu0026rs%3DAOn4CLCaeepU7pTLb8k6VVnOh_Xii4BPGQ%22%2C%22width%22%3A196%2C%22height%22%3A110%7D%2C%7B%22url%22%3A%22https%3A%2F%2Fi.ytimg.com%2Fvi%2F07FYdnEawAQ%2Fhqdefault.jpg%3Fsqp%3D-oaymwEjCPYBEIoBSFryq4qpAxUIARUAAAAAGAElAADIQj0AgKJDeAE%3D%5Cu0026rs%3DAOn4CLDETi44X_Fn5EtYAM9GG81_175vmA%22%2C%22width%22%3A246%2C%22height%22%3A138%7D%2C%7B%22url%22%3A%22https%3A%2F%2Fi.ytimg.com%2Fvi%2F07FYdnEawAQ%2Fhqdefault.jpg%3Fsqp%3D-oaymwEjCNACELwBSFryq4qpAxUIARUAAAAAGAElAADIQj0AgKJDeAE%3D%5Cu0026rs%3DAOn4CLBe4qh0OfKEXhzHZZPwNdcmN4zxPw%22%2C%22width%22%3A336%2C%22height%22%3A188%7D%5D%7D%2C%22useCipher%22%3Afalse%2C%22averageRating%22%3A4.7448697%2C%22allowRatings%22%3Atrue%2C%22viewCount%22%3A%2216091126%22%2C%22author%22%3A%22justintimberlakeVEVO%22%2C%22isPrivate%22%3Afalse%2C%22isUnpluggedCorpus%22%3Afalse%2C%22isLiveContent%22%3Afalse%7D%2C%22trackingParams%22%3A%22CAEQu2kiEwjHmvLCk5TjAhX5yuMHHWXPAyAo6NQB%22%2C%22adSafetyReason%22%3A%7B%22apmUserPreference%22%3A%7B%22adsPersonalizationOptout%22%3Afalse%2C%22allowGaiaTargetingOnThirdPartyProperties%22%3A%22OPTED_IN%22%7D%2C%22isEmbed%22%3Atrue%2C%22isRemarketingEnabled%22%3Atrue%2C%22isFocEnabled%22%3Atrue%7D%7D&host_language=en&csi_page_type=embed&cver=1.20190627×tamp=1561998946&url_encoded_fmt_stream_map=&errorcode=150&innertube_context_client_version=1.20190627&fexp=23727261%2C23744176%2C23745074%2C23751747%2C23751767%2C23757412%2C23780337%2C23788840%2C23793834%2C23804281%2C23805410%2C23811378%2C23813346%2C23813548%2C23817149%2C23818122%2C23818585%2C23821688%2C23822933%2C23823217%2C9449243%2C9471239&video_id=07FYdnEawAQ&innertube_api_version=v1&fflags=html5_release_mediakey_after_load%3Dtrue%26set_interstitial_advertisers_question_text%3Dtrue%26send_html5_api_stats_ads_abandon%3Dtrue%26use_touch_events_for_bulleit_mweb%3Dtrue%26html5_adjust_effective_request_size%3Dtrue%26html5_manifestless_request_prediction%3Dtrue%26html5_platform_minimum_readahead_seconds%3D0.0%26spacecast_uniplayer_decorate_manifest%3Dtrue%26bulleit_use_video_end_cuerange_for_completion%3Dtrue%26ad_to_video_use_gel%3Dtrue%26html5_use_streaming_xhr_abort_support%3Dtrue%26enable_bulleit_ve_single_clickthrough%3Dtrue%26html5_enable_fairplay_key_rotation%3Dtrue%26provide_default_wta_reasons%3Dtrue%26html5_disable_manifestless_sqless_sync%3Dtrue%26bulleit_web_dim_skip_using_css%3Dtrue%26html5_drm_output_restriction_retry_logic%3Dtrue%26skip_ad_button_with_thumbnail%3Dtrue%26lasr_captions_holdback_counterfactual_id%3D0%26html5_suspend_loader%3Dtrue%26html5_media_fullscreen%3Dtrue%26player_unified_fullscreen_transitions%3Dtrue%26embed_new_info_bar%3Dtrue%26mweb_enable_instream_ui_refresh%3Dtrue%26html5_hack_gapless_init%3Dtrue%26html5_dynamic_readahead_growth_rate%3D0.0%26debug_dapper_trace_id%3D%26tv_html5_bulleit_unify_adinfo%3Dtrue%26html5_gaplesstransition_error_new_elem%3Dtrue%26html5_get_video_info_timeout_ms%3D30000%26www_for_videostats%3Dtrue%26delay_bulleit_media_load_timer%3Dtrue%26lightweight_watch_video_swf%3Dtrue%26html5_store_xhr_headers_readable%3Dtrue%26html5_live_disable_dg_pacing%3Dtrue%26use_always_dimmed_skip_in_bulleit_web%3Dtrue%26variable_buffer_timeout_ms%3D0%26html5_tight_max_buffer_allowed_bandwidth_stddevs%3D0.0%26kevlar_miniplayer_button%3Dtrue%26show_interstitial_for_3s%3Dtrue%26html5_turn_down_slates%3Dtrue%26allow_poltergust_autoplay%3Dtrue%26html5_live_abr_repredict_fraction%3D0.0%26enable_live_premieres_vss_live_type_lp%3Dtrue%26html5_live_abr_head_miss_fraction%3D0.0%26html5_no_audio_append_cap%3Dtrue%26bulleit_mimic_ima_player_api_calls%3Dtrue%26html5_non_zero_gapless%3Dtrue%26king_crimson_player_redux%3Dtrue%26html5_manifestless_shrink_timestamps%3Dtrue%26enable_kevlar_action_companion_cleanup%3Dtrue%26html5_ad_no_buffer_abort_after_skippable%3Dtrue%26html5_gapless_max_played_ranges%3D12%26html5_dont_predict_end_time_in_past%3Dtrue%26enable_bulleit_mweb_gaming_ui%3Dtrue%26html5_bulleit_handle_gained_paused_state%3Dtrue%26html5_no_shadow_env_data_redux%3Dtrue%26html5_disable_non_contiguous%3Dtrue%26desktop_image_companion_wta_support%3Dtrue%26max_resolution_for_white_noise%3D360%26html5_log_playback_rate_change_killswitch%3Dtrue%26mweb_muted_autoplay_animation%3Dshrink%26preskip_countdown_font_size%3D%26html5_use_media_capabilities%3Dtrue%26ad_to_ad_use_gel%3Dtrue%26html5_expire_preloaded_players%3Dtrue%26html5_quality_cap_min_age_secs%3D0%26html5_video_tbd_min_kb%3D0%26html5_optimality_migration%3Dtrue%26ima_disable_reset_active_media_load_timeout%3Dtrue%26html5_new_vis_fullscreen_and_airplay%3Dtrue%26midroll_notify_time_seconds%3D5%26html5_hls_initial_bitrate%3D0%26html5_min_buffer_to_resume%3D6%26html5_log_rebuffer_events%3D0%26external_fullscreen_with_edu%3Dtrue%26enable_html5_midroll_tsla_update%3Dtrue%26bulleit_register_placements_in_order%3Dtrue%26html5_av1_thresh_hcc%3D720%26align_ad_to_video_player_lifecycle_for_bulleit%3Dtrue%26html5_use_adaptive_live_readahead%3Dtrue%26html5_gapless_min_duration_ms%3D0%26defer_playability_status_fillers%3Dtrue%26html5_min_upgrade_health%3D0%26web_player_response_ypc_parsing%3Dtrue%26disable_organic_cta_on_ad_playback%3Dtrue%26html5_disable_vp8_only_browsers%3Dtrue%26process_extensions_in_vast_wrappers_for_survey_ads%3Dtrue%26desktop_videowall_companion_wta_support%3Dtrue%26html5_max_live_dvr_window_plus_margin_secs%3D46800.0%26html5_prefer_low_quality_audio%3Dtrue%26enable_website_actions_on_mweb%3Dtrue%26html5_serverside_biscotti_id_wait_ms%3D1000%26variable_buffer_timeout_living_room_ms%3D0%26bulleit_extract_delayed_mpu_on_all_placement_init%3Dtrue%26html5_get_video_info_promiseajax%3Dtrue%26html5_repredict_interval_secs%3D0.0%26html5_enable_widevine_key_rotation%3Dtrue%26ad_video_end_renderer_duration_milliseconds%3D7000%26mweb_playsinline%3Dtrue%26html5_pseudo_gapless%3Dtrue%26html5_live_ultra_low_latency_bandwidth_window%3D0.0%26html5_subsegment_readahead_seek_latency_fudge%3D0.5%26mweb_cougar_big_controls%3Dtrue%26kevlar_allow_multistep_video_init%3Dtrue%26html5_sticky_reduces_discount_by%3D0.0%26variable_load_timeout_ms%3D0%26html5_autonav_quality_cap%3D0%26html5_shrink_live_timestamps%3Dtrue%26kevlar_miniplayer%3Dtrue%26html5_gapless_no_requests_after_lock%3Dtrue%26enable_embed_autoplay_delay%3Dtrue%26playready_first_play_expiration%3D-1%26visibility_error_html_dump_sample_rate%3D0.01%26enable_overlays_wta%3Dtrue%26html5_minimum_readahead_seconds%3D0.0%26html5_bandwidth_window_size%3D0%26html5_prefer_server_bwe3%3Dtrue%26html5_hls_pair_distinct_audio%3Dtrue%26fast_autonav_in_background%3Dtrue%26bulleit_publish_external_playback_events%3Dtrue%26uniplayer_dbp%3Dtrue%26html5_bulleit_handle_gained_ended_state%3Dtrue%26html5_qoe_bearer%3Dtrue%26html5_qoe_intercept%3D%26android_attestation_flow%3Dyt_player%26html5_aspect_from_adaptive_format%3Dtrue%26show_thumbnail_behind_ypc_offer_module%3Dtrue%26html5_subsegment_readahead_min_buffer_health_secs%3D0.25%26vss_dni_delayping%3D0%26html5_stop_start_seconds%3Dtrue%26html5_vis_upgrades_are_resizes%3Dtrue%26html5_full_gapless_content_resume%3Dtrue%26html5_streaming_xhr_progress_includes_latest%3Dtrue%26html5_av1_ads%3Dtrue%26set_default_wta_if_missing_for_externs%3Dtrue%26html5_hls_min_video_height%3D0%26show_interstitial_white%3Dtrue%26bulleit_send_engage_ping_on_companion_click%3Dtrue%26enable_html5_conversion_ve_reporting%3Dtrue%26html5_ignore_updates_before_initial_ping%3Dtrue%26html5_disable_extra_update_resource%3Dtrue%26live_readahead_seconds_multiplier%3D0.8%26html5_incremental_parser_buffer_duration_secs%3D1.5%26html5_index_range_auth%3Dtrue%26tvhtml5_disable_live_prefetch%3Dtrue%26html5_enable_4k_hq_enc%3Dtrue%26html5_av1_thresh_lcc%3D360%26postroll_notify_time_seconds%3D5%26html5_readahead_ratelimit%3D3000%26html5_disable_liveonly_seeks%3Dtrue%26show_thumbnail_on_standard%3Dtrue%26html5_probe_secondary_during_timeout_miss_count%3D2%26html5_subsegment_readahead_load_speed_check_interval%3D0.5%26use_fast_fade_in_0s%3Dtrue%26html5_disable_audio_slicing%3Dtrue%26segment_volume_reporting%3Dtrue%26html5_jumbo_ull_nonstreaming_mffa_ms%3D4000%26html5_min_has_advanced%3Dtrue%26bulleit_block_player_pause_until_ad_start%3Dtrue%26html5_max_headm_for_streaming_xhr%3D0%26html5_enable_embedded_player_visibility_signals%3Dtrue%26embed_api_deprecation%3Dtrue%26enable_bulleit_for_mweb%3Dtrue%26html5_widevine_robustness_strings%3Dtrue%26ad_duration_threshold_for_showing_endcap_seconds%3D15%26html5_probe_primary_delay_base_ms%3D0%26ensure_only_one_ads_termination_ping_for_bulleit%3Dtrue%26dynamic_ad_break_seek_threshold_sec%3D0%26html5_gapless_disable_preload_at_finish%3Dtrue%26web_player_attestation_auth_headers%3Dtrue%26html5_license_constraint_delay%3D5000%26html5_tv_bearer%3Dtrue%26html5_remove_pause%3Dfalse%26tvhtml5_yongle_quality_cap%3D0%26fixed_padding_skip_button%3Dtrue%26html5_ignore_bad_bitrates%3Dtrue%26enforce_cuerange_priority_on_web%3Dtrue%26html5_av1_thresh%3D720%26web_player_response_playback_tracking_parsing%3Dtrue%26html5_background_quality_cap%3D360%26enable_brand_companion_on_mweb%3Dtrue%26enable_bulleit_mweb_remix_ui%3Dtrue%26html5_streaming_xhr_buffer_mdat%3Dtrue%26log_playback_associated_web%3Dtrue%26html5_request_sizing_multiplier%3D0.8%26html5_log_hls_video_height_change_as_format_change%3Dtrue%26html5_ad_timeout_ms%3D0%26html5_subsegment_readahead_timeout_secs%3D2.0%26use_refreshed_overlay_buttons%3Dtrue%26html5_live_pin_to_tail%3Dtrue%26bulleit_round_up_tsla%3Dtrue%26html5_live_no_streaming_impedance_mismatch%3Dtrue%26html5_manifestless_captions%3Dtrue%26html5_variability_discount%3D0.5%26html5_player_autonav_logging%3Dtrue%26desktop_action_companion_wta_support%3Dtrue%26html5_connect_timeout_secs%3D7.0%26enable_cc_button_for_lasr%3Dtrue%26live_fresca_v2%3Dtrue%26html5_msi_error_fallback%3Dtrue%26html5_ad_stats_bearer%3Dtrue%26html5_subsegment_readahead_target_buffer_health_secs%3D0.5%26ad_pod_disable_companion_persist_ads_quality%3Dtrue%26enable_live_premiere_web_player_indicator%3Dtrue%26bulleit_remove_client_side_midroll_reactivation%3Dtrue%26disable_annotations_cache_if_owner%3Dtrue%26set_interstitial_start_button%3Dtrue%26html5_peak_shave%3Dtrue%26html5_manifestless_synchronized%3Dtrue%26html5_frame_accurate_seek_limit%3D3%26html5_samsung_vp9_live%3Dtrue%26use_forced_linebreak_preskip_text%3Dtrue%26mweb_playsinline_webview%3Dtrue%26video_to_ad_use_gel%3Dtrue%26html5_subsegment_readahead_min_buffer_health_secs_on_timeout%3D0.1%26html5_decode_to_texture_cap%3Dtrue%26html5_waiting_before_ended%3Dtrue%26mweb_muted_autoplay%3Dtrue%26show_countdown_on_bumper%3Dtrue%26html5_delay_initial_loading%3Dtrue%26html5_desktop_vr180_allow_panning%3Dtrue%26enable_ad_pod_specific_ui%3Dtrue%26doubleclick_gpt_retagging%3Dtrue%26html5_gapless_ad_byterate_multiplier%3D1.6%26html5_restrict_streaming_xhr_on_sqless_requests%3Dtrue%26html5_background_cap_idle_secs%3D60%26html5_streaming_xhr_optimize_lengthless_mp4%3Dtrue%26bulleit_get_midroll_info_timeout_ms%3D8000%26html5_ignore_public_setPlaybackQuality%3Dtrue%26html5_suspend_manifest_on_pause%3Dtrue%26enable_mute_ad_endpoint_resolution_on_bulleit%3Dtrue%26enable_text_ad_overlay_link_fix%3Dtrue%26html5_new_queueing%3Dtrue%26html5_probe_media_capabilities%3Dtrue%26html5_max_buffer_duration%3D120%26enable_client_monitoring_for_bulleit_adplacement_schedule%3Dtrue%26html5_serverside_call_server_on_biscotti_timeout%3Dtrue%26html5_playbackmanager_enable_notify_new_drm_info%3Dtrue%26disable_new_pause_state3%3Dtrue%26web_gel_debounce_ms%3D10000%26html5_max_av_sync_drift%3D50%26youtubei_for_web%3Dtrue%26html5_gapless_skip_remove%3Dtrue%26mpu_visible_threshold_count%3D2%26dynamic_ad_break_pause_threshold_sec%3D0%26html5_default_quality_cap%3D0%26enable_simple_preview_for_postrolls_html5%3Dtrue%26desktop_shopping_companion_wta_support%3Dtrue%26enable_composite_ad_player_presentation_for_bulleit%3Dtrue%26sdk_ad_prefetch_time_seconds%3D-1%26html5_skip_widevine_innertube_drm_heartbeats%3Dtrue%26web_player_kaios_autoplay%3Dtrue%26html5_progressive_fallback%3Dtrue%26enable_prefetch_for_postrolls%3Dtrue%26html5_live_low_latency_bandwidth_window%3D0.0%26html5_default_ad_gain%3D0.5%26hfr_dropped_framerate_fallback_threshold%3D0%26stop_using_ima_sdk_gpt_request_activity%3Dtrue%26bulleit_update_tsla_cookie%3Dtrue%26html5_vp9_live_blacklist_edge%3Dtrue%26mweb_autonav%3Dtrue%26enable_eviction_protection_for_bulleit%3Dtrue%26use_new_skip_icon%3Dtrue%26html5_pipeline_ultra_low_latency%3Dtrue%26website_actions_throttle_percentage%3D1.0%26html5_tight_max_buffer_allowed_impaired_time%3D0.0%26html5_progress_fix_fix%3Dtrue%26web_player_sentinel_is_uniplayer%3Dtrue%26html5_ultra_low_latency_streaming_responses%3Dtrue%26live_chunk_readahead%3D3%26html5_manifestless_interpolate%3Dtrue%26autoplay_time%3D8000%26hide_preskip%3Dtrue%26disable_client_side_midroll_freq_capping%3Dtrue%26delay_ads_gvi_call_on_bulleit_living_room_ms%3D0%26fix_gpt_pos_params%3Dtrue%26use_local_interactions_library%3Dtrue%26html5_seeking_buffering_only_playing%3Dtrue%26html5_manifestless_no_redundant_seek_to_head%3Dtrue%26html5_min_readbehind_secs%3D0%26html5_disable_move_pssh_to_moov%3Dtrue%26html5_gapless_preloading%3Dtrue%26html5_gapless_error_check_killswitch%3Dtrue%26html5_stale_dash_manifest_retry_factor%3D1.0%26html5_live_quality_cap%3D0%26preskip_button_style_ads_backend%3Dcountdown_next_to_thumbnail%26html5_probe_live_using_range%3Dtrue%26html5_disable_vod_timestamp_rewriting%3Dtrue%26allow_live_autoplay%3Dtrue%26web_player_response_overlay_parsing%3Dfalse%26html5_variability_full_discount_thresh%3D3.0%26playready_on_borg%3Dtrue%26disable_client_side_midroll_freq_capping_nonpc%3Dtrue%26unplugged_tvhtml5_video_preload_on_focus_delay_ms%3D0%26html5_deadzone_multiplier%3D1.0%26render_enhanced_overlays_as_ctas_for_desktop_style%3Dunset%26vmap_enabled_living_room%3Dtrue%26enable_bulleit_lidar_integration%3Dtrue%26html5_simple_buffered_bytes%3Dtrue%26fix_bulleit_cue_range_seek%3Dtrue%26interaction_screen_on_gel_web%3Dtrue%26add_border_to_bulleit_mweb_skip%3Dtrue%26html5_creativeless_vast_on_ima%3Dtrue%26mweb_add_ad_info_button_on_fullscreen_only_devices%3Dtrue%26html5_new_seeking%3Dtrue%26html5_max_readahead_bandwidth_cap%3D0%26bulleit_use_cue_video_to_reset_on_stop_ad%3Dtrue%26html5_gapless%3Dtrue%26dash_manifest_version%3D5%26use_survey_skip_in_0s%3Dtrue%26bulleit_use_video_ad_div_as_overlay_container%3Dtrue%26html5_preload_media%3Dtrue%26call_release_video_in_bulleit%3Dtrue%26html5_jumbo_ull_subsegment_readahead_target%3D1.3%26desktop_cleanup_companion_on_instream_begin%3Dtrue%26html5_live_normal_latency_bandwidth_window%3D0.0%26disable_web_watchlater_during_ads%3Dtrue%26enable_instream_companion_on_mweb%3Dtrue%26html5_firefox_ambisonic_opus%3Dtrue%26html5_parse_inline_fallback_host%3Dtrue%26html5_min_readbehind_cap_secs%3D60%26html5_av1_thresh_arm%3D240%26enable_on_skip_command_for_bulleit_living_room%3Dtrue%26interaction_click_on_gel_web%3Dtrue%26html5_request_size_padding_secs%3D3.0%26enable_wta_for_tv_html5_unplugged%3Dtrue%26forced_brand_precap_duration_ms%3D2000%26html5_jumbo_mobile_subsegment_readahead_target%3D3.0%26persist_text_on_preview_button%3Dtrue%26html5_serverside_call_server_on_biscotti_error%3Dtrue%26html5_av1_tv_killswitch%3Dtrue%26html5_manifestless_always_redux%3Dtrue%26html5_unrewrite_timestamps%3Dtrue%26html5_gapless_encrypted_to_clear%3Dtrue%26html5_post_interrupt_readahead%3D20%26web_player_api_logging_fraction%3D0.01%26bulleit_use_touch_events_for_skip%3Dtrue%26html5_pipeline_manifestless%3Dtrue%26embed_enable_playlist_ui%3Dtrue%26use_new_style%3Dtrue%26html5_live_4k_more_buffer%3Dtrue%26html5_allowable_liveness_drift_chunks%3D2%26html5_incremental_parser_buffer_extra_bytes%3D16384%26html5_disable_subscribe_new_vis%3Dtrue%26enable_static_font_size_on_text_only_preview%3Dtrue%26desktop_companion_wta_support%3Dtrue%26tvhtml5_min_readbehind_secs%3D20%26html5_subsegment_readahead_min_load_speed%3D1.5%26ima_video_ad_with_overlay_class_logging_percentage%3D0.01%26html5_stop_video_in_cancel_playback%3Dtrue%26unplugged_tvhtml5_botguard_attestation%3Dtrue%26low_engagement_player_quality_cap%3D360%26desktop_player_button_tooltip_with_shortcut%3Dtrue%26attach_child_on_gel_web%3Dtrue%26android_early_fetch_for_autoplay%3Dtrue%26html5_elbow_tracking_tweaks%3Dtrue%26display_endscreen_heartbeat%3Dtrue%26html5_vp9_live_whitelist%3Dtrue%26html5_fludd_suspend%3Dtrue%26html5_hfr_quality_cap%3D0%26html5_fallbacks_delay_primary_probes%3Dtrue%26html5_reuse_loader%3Dtrue%26bulleit_terminate_ad_when_ending_with_commands%3Dtrue%26html5_limit_adaptation_requests%3Dtrue%26html5_exile_broken_instances%3Dtrue%26allow_midrolls_on_watch_resume_in_bulleit%3Dtrue%26html5_pause_video_fix%3Dtrue%26html5_variability_no_discount_thresh%3D1.0%26html5_request_size_max_secs%3D31%26flex_theater_mode%3Dtrue%26use_full_timing_library%3Dtrue%26html5_adaptation_fix%3Dtrue%26mweb_cougar%3Dtrue%26use_ima_media_selection_in_bulleit%3Dtrue%26html5_gapless_ended_transition_buffer_ms%3D200%26html5_maximum_readahead_seconds%3D0.0%26web_player_response_fairplay_config_killswitch%3Dtrue%26html5_cut_vss_on_visibility%3Dtrue%26html5_vss_live_mode_killswitch%3Dtrue%26html5_use_hasAdvanced_for_pbs%3Dtrue%26web_logging_max_batch%3D100%26html5_inline_video_quality_survey%3Dtrue%26ensure_only_one_resolved_midroll_response_on_web%3Dtrue%26enable_ypc_clickwrap_on_living_room%3Dtrue%26web_player_assume_format3_available%3Dtrue%26enable_afv_div_reset_in_kevlar%3Dtrue%26enable_vss_type_post%3Dtrue%26skip_restore_on_abandon_in_bulleit%3Dtrue%26sdk_wrapper_levels_allowed%3D0%26html5_df_downgrade_thresh%3D0.2%26html5_no_placeholder_rollbacks%3Dtrue%26skip_ad_pod_to_end_ads_quality%3Dtrue%26web_player_music_visualizer_treatment%3Dfake%26html5_disable_preserve_reference%3Dtrue%26legacy_autoplay_flag%3Dtrue%26html5_bmffparser_use_fast_read_string%3Dtrue%26html5_show_stats_nerds_debug_info%3Dtrue%26html5_gapless_allow_late_transitions%3Dtrue%26html5_reason_reporting_migration%3Dtrue%26release_player_on_abandon_for_bulleit_lr_ads_frontend%3Dtrue%26bulleit_use_http_get_by_default_for_get_midroll_info%3Dtrue%26html5_min_secs_between_format_selections%3D8.0%26html5_playback_data_migration%3Dtrue%26html5_request_size_min_secs%3D0.0%26html5_manifestless_accurate_sliceinfo%3Dtrue%26player_destroy_old_version%3Dtrue%26turn_down_serialized_player_request_for_bulleit_living_room%3Dtrue&account_playback_token=QUFFLUhqazl3eUw2c0Y0aE0yQ3ZmMHR1TUkzS1VzLWhOZ3xBQ3Jtc0trdXVQbVFwelhNRkFDb3B3MXR5WTRWTS1TOGt1MTVfZ3ZOdGR0bXBHNFc5UUlOdUY5T0czOC11ZlNtdDNaekVZc2ZkeFhqaE5rQ3RhX1lTaE9nNk1sUUlvTmJsaVZEamR5VlJGMmQ5LVNBVTRPZGpySQ%3D%3D&ssl=1&author=justintimberlakeVEVO&ucid=UCsXfDf1CDgU3SCt0gxJNXGg&watch_ajax_token=QUFFLUhqbDRPemlPRFl0ZE5DYTlHaVdTQS14SldnZjB4QXxBQ3Jtc0trdFZXeXpSUGJHOEFjTGJoS1JSOC1aME0xX1BuNWhLM3pPMU9mUWpRU1hFWEJCZkJ5cE14S0l2NkItSEh2SnNuUFN3Q3BTOTdRUDd0MVJ6cFZUN1VHbjB2RHFGUFFEajh3SU5Cb2xFMFZDX3hzc1d4MA%3D%3D&csn=YjYaXcfhLvmVj-8P5Z6PgAI&c=WEB&hl=en_US&status=fail&title=Justin+Timberlake+-+Tunnel+Vision+%28Official+Music+Video%29+%28Explicit%29&watermark=%2Chttps%3A%2F%2Fs.ytimg.com%2Fyts%2Fimg%2Fwatermark%2Fyoutube_watermark-vflHX6b6E.png%2Chttps%3A%2F%2Fs.ytimg.com%2Fyts%2Fimg%2Fwatermark%2Fyoutube_hd_watermark-vflAzLcD6.png&gapi_hint_params=m%3B%2F_%2Fscs%2Fabc-static%2F_%2Fjs%2Fk%3Dgapi.gapi.en.6Hr6HfhQmkw.O%2Fd%3D1%2Frs%3DAHpOoo_002wlh5Kwm-a9Vn_hwBzXlB2L_A%2Fm%3D__features__&root_ve_type=27240&errordetail=0&subreason=&fmt_list=", + "headers" : { + "Content-Type" : "application\/x-www-form-urlencoded", + "P3P" : "CP=\"This is not a P3P policy! See http:\/\/support.google.com\/accounts\/answer\/151657?hl=en for more info.\"", + "Alt-Svc" : "quic=\":443\"; ma=2592000; v=\"46,44,43,39\"", + "Set-Cookie" : "SIDCC=AN0-TYtO-ae7U-uckNTKQVX88rPN6sl6aObziql7S2UB8PHvGwZbe7amGoEW_s4tT169bpxnrg; expires=Sun, 29-Sep-2019 16:35:46 GMT; path=\/; domain=.youtube.com; priority=high", + "Server" : "YouTube Frontend Proxy", + "Content-Encoding" : "br", + "X-XSS-Protection" : "0", + "Expires" : "Tue, 27 Apr 1971 19:44:06 EST", + "Transfer-Encoding" : "Identity", + "Cache-Control" : "no-store", + "Date" : "Mon, 01 Jul 2019 16:35:46 GMT", + "Strict-Transport-Security" : "max-age=31536000", + "X-Content-Type-Options" : "nosniff", + "X-Frame-Options" : "SAMEORIGIN" + }, + "method" : "GET", + "status" : 200, + "uri" : "https:\/\/www.youtube.com\/get_video_info?el=embedded&hl=en&ps=default&video_id=07FYdnEawAQ" + }, + { + "body" : "