From db03e6bd1e4f4dc40d17c4ce33658caae7d6100b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sone=C3=A9=20John?= Date: Tue, 18 Oct 2016 09:40:02 -0400 Subject: [PATCH 01/52] Add `captionURLs` dictionary This will be used to contain the captionURLs --- XCDYouTubeKit/XCDYouTubeVideo.h | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/XCDYouTubeKit/XCDYouTubeVideo.h b/XCDYouTubeKit/XCDYouTubeVideo.h index 3a2b09fa2..60df7082d 100644 --- a/XCDYouTubeKit/XCDYouTubeVideo.h +++ b/XCDYouTubeKit/XCDYouTubeVideo.h @@ -103,6 +103,12 @@ extern NSString *const XCDYouTubeVideoQualityHTTPLiveStreaming; @property (nonatomic, readonly) NSDictionary *streamURLs; #endif +#if __has_feature(objc_generics) +@property (nonatomic, readonly, nullable) NSDictionary *captionURLs; +#else +@property (nonatomic, readonly, nullable) NSDictionary *captionURLs; +#endif + /** * The expiration date of the video. * From 356278195f096a2cae9807599fbf7a8700d65db4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sone=C3=A9=20John?= Date: Tue, 18 Oct 2016 09:47:23 -0400 Subject: [PATCH 02/52] Add primitive support for captions from YouTube Can now get captions from YouTube. Note this file is in an XML format. #118 --- XCDYouTubeKit/XCDYouTubeVideo.m | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/XCDYouTubeKit/XCDYouTubeVideo.m b/XCDYouTubeKit/XCDYouTubeVideo.m index b7311706e..5de4e0146 100644 --- a/XCDYouTubeKit/XCDYouTubeVideo.m +++ b/XCDYouTubeKit/XCDYouTubeVideo.m @@ -103,15 +103,18 @@ - (instancetype) initWithIdentifier:(NSString *)identifier info:(NSDictionary *) _identifier = identifier; NSString *streamMap = info[@"url_encoded_fmt_stream_map"]; + NSString *captionsMap = info[@"caption_tracks"]; NSString *httpLiveStream = info[@"hlsvp"]; NSString *adaptiveFormats = info[@"adaptive_fmts"]; NSMutableDictionary *userInfo = response.URL ? [@{ NSURLErrorKey: response.URL } mutableCopy] : [NSMutableDictionary new]; - if (streamMap.length > 0 || httpLiveStream.length > 0) + if (streamMap.length > 0 || httpLiveStream.length > 0 || captionsMap.length > 0) { NSMutableArray *streamQueries = [[streamMap componentsSeparatedByString:@","] mutableCopy]; [streamQueries addObjectsFromArray:[adaptiveFormats componentsSeparatedByString:@","]]; + NSMutableArray *captionQueries = [[captionsMap componentsSeparatedByString:@","]mutableCopy]; + NSString *title = info[@"title"] ?: @""; _title = title; @@ -129,6 +132,25 @@ - (instancetype) initWithIdentifier:(NSString *)identifier info:(NSDictionary *) if (httpLiveStream) streamURLs[XCDYouTubeVideoQualityHTTPLiveStreaming] = [NSURL URLWithString:httpLiveStream]; + + NSMutableDictionary *captionURLs = [NSMutableDictionary new]; + + for (NSString *captionQuery in captionQueries) { + + NSDictionary *captionStream = XCDDictionaryWithQueryString(captionQuery); + + NSString *languageCode = captionStream[@"lc"]; + NSString *urlString = captionStream[@"u"]; + if (urlString && languageCode) + + { + captionURLs[languageCode] = [NSURL URLWithString:urlString]; + + } + } + + _captionURLs = [captionURLs copy]; + for (NSString *streamQuery in streamQueries) { NSDictionary *stream = XCDDictionaryWithQueryString(streamQuery); From bcd269b1411ce74c6172020dc970b67b295b4c31 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sone=C3=A9=20John?= Date: Tue, 18 Oct 2016 10:00:35 -0400 Subject: [PATCH 03/52] Add separate dictionary for auto generated captions Will add test later #118 --- XCDYouTubeKit/XCDYouTubeVideo.h | 6 ++++++ XCDYouTubeKit/XCDYouTubeVideo.m | 20 ++++++++++++++++---- 2 files changed, 22 insertions(+), 4 deletions(-) diff --git a/XCDYouTubeKit/XCDYouTubeVideo.h b/XCDYouTubeKit/XCDYouTubeVideo.h index 60df7082d..b1c0b9b28 100644 --- a/XCDYouTubeKit/XCDYouTubeVideo.h +++ b/XCDYouTubeKit/XCDYouTubeVideo.h @@ -109,6 +109,12 @@ extern NSString *const XCDYouTubeVideoQualityHTTPLiveStreaming; @property (nonatomic, readonly, nullable) NSDictionary *captionURLs; #endif +#if __has_feature(objc_generics) +@property (nonatomic, readonly, nullable) NSDictionary *autoGeneratedCaptionURLs; +#else +@property (nonatomic, readonly, nullable) NSDictionary *autoGeneratedCaptionURLs; +#endif + /** * The expiration date of the video. * diff --git a/XCDYouTubeKit/XCDYouTubeVideo.m b/XCDYouTubeKit/XCDYouTubeVideo.m index 5de4e0146..ac9b5e66d 100644 --- a/XCDYouTubeKit/XCDYouTubeVideo.m +++ b/XCDYouTubeKit/XCDYouTubeVideo.m @@ -134,23 +134,35 @@ - (instancetype) initWithIdentifier:(NSString *)identifier info:(NSDictionary *) NSMutableDictionary *captionURLs = [NSMutableDictionary new]; + NSMutableDictionary *autoGeneratedCaptionURLs = [NSMutableDictionary new]; + for (NSString *captionQuery in captionQueries) { NSDictionary *captionStream = XCDDictionaryWithQueryString(captionQuery); NSString *languageCode = captionStream[@"lc"]; - NSString *urlString = captionStream[@"u"]; - if (urlString && languageCode) + NSString *captionURLString = captionStream[@"u"]; + NSString *captionVersion = captionStream[@"v"]; + if (captionURLString && languageCode) { - captionURLs[languageCode] = [NSURL URLWithString:urlString]; + if([captionVersion hasPrefix:@"a"]) { + //Indicates the caption was auto generated + autoGeneratedCaptionURLs[languageCode] = [NSURL URLWithString:captionURLString]; + } else { + + captionURLs[languageCode] = [NSURL URLWithString:captionURLString]; + + } } + } _captionURLs = [captionURLs copy]; - + _autoGeneratedCaptionURLs = [autoGeneratedCaptionURLs copy]; + for (NSString *streamQuery in streamQueries) { NSDictionary *stream = XCDDictionaryWithQueryString(streamQuery); From d75db331f3ffccf59cce44353c10a6c3bdf3bfdd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sone=C3=A9=20John?= Date: Tue, 18 Oct 2016 10:05:52 -0400 Subject: [PATCH 04/52] Add test plist to test bundle Will be used for caption test --- XCDYouTubeKit Tests/testInfo.plist | 146 ++++++++++++++++++ XCDYouTubeKit.xcodeproj/project.pbxproj | 4 + .../UserInterfaceState.xcuserstate | Bin 0 -> 12554 bytes 3 files changed, 150 insertions(+) create mode 100644 XCDYouTubeKit Tests/testInfo.plist create mode 100644 XCDYouTubeKit.xcodeproj/project.xcworkspace/xcuserdata/soneejohn.xcuserdatad/UserInterfaceState.xcuserstate diff --git a/XCDYouTubeKit Tests/testInfo.plist b/XCDYouTubeKit Tests/testInfo.plist new file mode 100644 index 000000000..bc1a01a4f --- /dev/null +++ b/XCDYouTubeKit Tests/testInfo.plist @@ -0,0 +1,146 @@ + + + + + account_playback_token + QUFFLUhqbURMQnF5a1g4aWNYYXdVUS1iSS1pSTJlWTA0Z3xBQ3Jtc0tuV0xFVkFIaTFqdDdwSDNwQlBkR0VjekwwTEVMTTlEZVpXRDZ4YVF3NnZnQkFSaHpxVktpVkRpWUgyRGwzeW9zNnZsMDRxOG1JZFlOTUdfYmgyYWNZLUhTNktBZV9rSkQ0LUk5VGZMcnlYNzJKLUFTaw== + adaptive_fmts + type=video%2Fmp4%3B codecs%3D%22avc1.640028%22&url=https%3A%2F%2Fr5---sn-hp57knly.googlevideo.com%2Fvideoplayback%3Fdur%3D118.409%26ipbits%3D0%26expire%3D1476821052%26itag%3D137%26clen%3D35615366%26key%3Dyt6%26mime%3Dvideo%252Fmp4%26gir%3Dyes%26nh%3DIgpwcjAyLm1pYTA0KgkxMjcuMC4wLjE%26signature%3D52BAA3451AD86660F41E74E46198F21792042F3C.CBBE6FF61C301E74095028FCE633FDEBA34CBD6C%26initcwndbps%3D242500%26upn%3DG0fHrTMQiq4%26source%3Dyoutube%26pl%3D24%26id%3Do-AILTGQmmjnz7N83Gxmrj6xWG_7HcFfOjIvl7r5jb5FmQ%26mn%3Dsn-hp57knly%26mm%3D31%26lmt%3D1474565269083648%26requiressl%3Dyes%26ip%3D65.48.218.195%26ms%3Dau%26sparams%3Dclen%252Cdur%252Cgir%252Cid%252Cinitcwndbps%252Cip%252Cipbits%252Citag%252Clmt%252Cmime%252Cmm%252Cmn%252Cms%252Cmv%252Cnh%252Cpl%252Crequiressl%252Csource%252Cupn%252Cexpire%26mv%3Dm%26mt%3D1476798643&size=1920x1080&bitrate=4426490&quality_label=1080p&index=714-1009&itag=137&clen=35615366&lmt=1474565269083648&projection_type=1&fps=24&init=0-713,type=video%2Fwebm%3B codecs%3D%22vp9%22&url=https%3A%2F%2Fr5---sn-hp57knly.googlevideo.com%2Fvideoplayback%3Fdur%3D118.368%26ipbits%3D0%26expire%3D1476821052%26itag%3D248%26clen%3D25520135%26key%3Dyt6%26mime%3Dvideo%252Fwebm%26gir%3Dyes%26nh%3DIgpwcjAyLm1pYTA0KgkxMjcuMC4wLjE%26signature%3D4167B4519DC46314E3A6FB64F43F347238D85285.37B477C9A282A87DD61D10C617BD408789883B37%26initcwndbps%3D242500%26upn%3DG0fHrTMQiq4%26source%3Dyoutube%26pl%3D24%26id%3Do-AILTGQmmjnz7N83Gxmrj6xWG_7HcFfOjIvl7r5jb5FmQ%26mn%3Dsn-hp57knly%26mm%3D31%26lmt%3D1474569402665280%26requiressl%3Dyes%26ip%3D65.48.218.195%26ms%3Dau%26sparams%3Dclen%252Cdur%252Cgir%252Cid%252Cinitcwndbps%252Cip%252Cipbits%252Citag%252Clmt%252Cmime%252Cmm%252Cmn%252Cms%252Cmv%252Cnh%252Cpl%252Crequiressl%252Csource%252Cupn%252Cexpire%26mv%3Dm%26mt%3D1476798643&size=1920x1080&bitrate=2997635&quality_label=1080p&index=243-616&itag=248&clen=25520135&lmt=1474569402665280&projection_type=1&fps=24&init=0-242,type=video%2Fmp4%3B codecs%3D%22avc1.4d401f%22&url=https%3A%2F%2Fr5---sn-hp57knly.googlevideo.com%2Fvideoplayback%3Fdur%3D118.409%26ipbits%3D0%26expire%3D1476821052%26itag%3D136%26clen%3D19076822%26key%3Dyt6%26mime%3Dvideo%252Fmp4%26gir%3Dyes%26nh%3DIgpwcjAyLm1pYTA0KgkxMjcuMC4wLjE%26signature%3D29015A3634C0778EC43C0C31224578CE7E2EA405.3151785C54C0BAE46C7717A0A2010AFDDF113040%26initcwndbps%3D242500%26upn%3DG0fHrTMQiq4%26source%3Dyoutube%26pl%3D24%26id%3Do-AILTGQmmjnz7N83Gxmrj6xWG_7HcFfOjIvl7r5jb5FmQ%26mn%3Dsn-hp57knly%26mm%3D31%26lmt%3D1474565267185729%26requiressl%3Dyes%26ip%3D65.48.218.195%26ms%3Dau%26sparams%3Dclen%252Cdur%252Cgir%252Cid%252Cinitcwndbps%252Cip%252Cipbits%252Citag%252Clmt%252Cmime%252Cmm%252Cmn%252Cms%252Cmv%252Cnh%252Cpl%252Crequiressl%252Csource%252Cupn%252Cexpire%26mv%3Dm%26mt%3D1476798643&size=1280x720&bitrate=2370415&quality_label=720p&index=713-1008&itag=136&clen=19076822&lmt=1474565267185729&projection_type=1&fps=24&init=0-712,type=video%2Fwebm%3B codecs%3D%22vp9%22&url=https%3A%2F%2Fr5---sn-hp57knly.googlevideo.com%2Fvideoplayback%3Fdur%3D118.368%26ipbits%3D0%26expire%3D1476821052%26itag%3D247%26clen%3D14298958%26key%3Dyt6%26mime%3Dvideo%252Fwebm%26gir%3Dyes%26nh%3DIgpwcjAyLm1pYTA0KgkxMjcuMC4wLjE%26signature%3D8B6B18F8BF5E7724F0F36B754A1391A844529852.B30E0E61A8B8F38220E6D32DC5E5C2579512BD58%26initcwndbps%3D242500%26upn%3DG0fHrTMQiq4%26source%3Dyoutube%26pl%3D24%26id%3Do-AILTGQmmjnz7N83Gxmrj6xWG_7HcFfOjIvl7r5jb5FmQ%26mn%3Dsn-hp57knly%26mm%3D31%26lmt%3D1474569681952912%26requiressl%3Dyes%26ip%3D65.48.218.195%26ms%3Dau%26sparams%3Dclen%252Cdur%252Cgir%252Cid%252Cinitcwndbps%252Cip%252Cipbits%252Citag%252Clmt%252Cmime%252Cmm%252Cmn%252Cms%252Cmv%252Cnh%252Cpl%252Crequiressl%252Csource%252Cupn%252Cexpire%26mv%3Dm%26mt%3D1476798643&size=1280x720&bitrate=1678897&quality_label=720p&index=243-607&itag=247&clen=14298958&lmt=1474569681952912&projection_type=1&fps=24&init=0-242,type=video%2Fmp4%3B codecs%3D%22avc1.4d401e%22&url=https%3A%2F%2Fr5---sn-hp57knly.googlevideo.com%2Fvideoplayback%3Fdur%3D118.409%26ipbits%3D0%26expire%3D1476821052%26itag%3D135%26clen%3D9806974%26key%3Dyt6%26mime%3Dvideo%252Fmp4%26gir%3Dyes%26nh%3DIgpwcjAyLm1pYTA0KgkxMjcuMC4wLjE%26signature%3D1F728BE575CBCCD63BABD25E47CA3EB9EB29E624.92D7DDF4500F3ED3B5FBA159F786E05F845AECAA%26initcwndbps%3D242500%26upn%3DG0fHrTMQiq4%26source%3Dyoutube%26pl%3D24%26id%3Do-AILTGQmmjnz7N83Gxmrj6xWG_7HcFfOjIvl7r5jb5FmQ%26mn%3Dsn-hp57knly%26mm%3D31%26lmt%3D1474565264791273%26requiressl%3Dyes%26ip%3D65.48.218.195%26ms%3Dau%26sparams%3Dclen%252Cdur%252Cgir%252Cid%252Cinitcwndbps%252Cip%252Cipbits%252Citag%252Clmt%252Cmime%252Cmm%252Cmn%252Cms%252Cmv%252Cnh%252Cpl%252Crequiressl%252Csource%252Cupn%252Cexpire%26mv%3Dm%26mt%3D1476798643&size=854x480&bitrate=1193101&quality_label=480p&index=713-1008&itag=135&clen=9806974&lmt=1474565264791273&projection_type=1&fps=24&init=0-712,type=video%2Fwebm%3B codecs%3D%22vp9%22&url=https%3A%2F%2Fr5---sn-hp57knly.googlevideo.com%2Fvideoplayback%3Fdur%3D118.368%26ipbits%3D0%26expire%3D1476821052%26itag%3D244%26clen%3D7389819%26key%3Dyt6%26mime%3Dvideo%252Fwebm%26gir%3Dyes%26nh%3DIgpwcjAyLm1pYTA0KgkxMjcuMC4wLjE%26signature%3D119520819E8D91A56191594433918977499C09DC.4F5EAA7DDABE51D89DB46C1792EE5D6AE4875AAA%26initcwndbps%3D242500%26upn%3DG0fHrTMQiq4%26source%3Dyoutube%26pl%3D24%26id%3Do-AILTGQmmjnz7N83Gxmrj6xWG_7HcFfOjIvl7r5jb5FmQ%26mn%3Dsn-hp57knly%26mm%3D31%26lmt%3D1474569681550718%26requiressl%3Dyes%26ip%3D65.48.218.195%26ms%3Dau%26sparams%3Dclen%252Cdur%252Cgir%252Cid%252Cinitcwndbps%252Cip%252Cipbits%252Citag%252Clmt%252Cmime%252Cmm%252Cmn%252Cms%252Cmv%252Cnh%252Cpl%252Crequiressl%252Csource%252Cupn%252Cexpire%26mv%3Dm%26mt%3D1476798643&size=854x480&bitrate=879117&quality_label=480p&index=243-607&itag=244&clen=7389819&lmt=1474569681550718&projection_type=1&fps=24&init=0-242,type=video%2Fmp4%3B codecs%3D%22avc1.4d401e%22&url=https%3A%2F%2Fr5---sn-hp57knly.googlevideo.com%2Fvideoplayback%3Fdur%3D118.409%26ipbits%3D0%26expire%3D1476821052%26itag%3D134%26clen%3D4818649%26key%3Dyt6%26mime%3Dvideo%252Fmp4%26gir%3Dyes%26nh%3DIgpwcjAyLm1pYTA0KgkxMjcuMC4wLjE%26signature%3DA6E77585CD8AC07E6096BAC7732370F125A810DD.6ACA59CAB766A670B0E4ED9666653387EFCDF4C2%26initcwndbps%3D242500%26upn%3DG0fHrTMQiq4%26source%3Dyoutube%26pl%3D24%26id%3Do-AILTGQmmjnz7N83Gxmrj6xWG_7HcFfOjIvl7r5jb5FmQ%26mn%3Dsn-hp57knly%26mm%3D31%26lmt%3D1474565268288101%26requiressl%3Dyes%26ip%3D65.48.218.195%26ms%3Dau%26sparams%3Dclen%252Cdur%252Cgir%252Cid%252Cinitcwndbps%252Cip%252Cipbits%252Citag%252Clmt%252Cmime%252Cmm%252Cmn%252Cms%252Cmv%252Cnh%252Cpl%252Crequiressl%252Csource%252Cupn%252Cexpire%26mv%3Dm%26mt%3D1476798643&size=640x360&bitrate=636745&quality_label=360p&index=713-1008&itag=134&clen=4818649&lmt=1474565268288101&projection_type=1&fps=24&init=0-712,type=video%2Fwebm%3B codecs%3D%22vp9%22&url=https%3A%2F%2Fr5---sn-hp57knly.googlevideo.com%2Fvideoplayback%3Fdur%3D118.368%26ipbits%3D0%26expire%3D1476821052%26itag%3D243%26clen%3D4372313%26key%3Dyt6%26mime%3Dvideo%252Fwebm%26gir%3Dyes%26nh%3DIgpwcjAyLm1pYTA0KgkxMjcuMC4wLjE%26signature%3D99E703D0F816A79DB70A615B188BAA8383E188EF.39BAA3CBA31322B5583ED430AF999CFA069A4F8A%26initcwndbps%3D242500%26upn%3DG0fHrTMQiq4%26source%3Dyoutube%26pl%3D24%26id%3Do-AILTGQmmjnz7N83Gxmrj6xWG_7HcFfOjIvl7r5jb5FmQ%26mn%3Dsn-hp57knly%26mm%3D31%26lmt%3D1474569681575963%26requiressl%3Dyes%26ip%3D65.48.218.195%26ms%3Dau%26sparams%3Dclen%252Cdur%252Cgir%252Cid%252Cinitcwndbps%252Cip%252Cipbits%252Citag%252Clmt%252Cmime%252Cmm%252Cmn%252Cms%252Cmv%252Cnh%252Cpl%252Crequiressl%252Csource%252Cupn%252Cexpire%26mv%3Dm%26mt%3D1476798643&size=640x360&bitrate=459023&quality_label=360p&index=243-607&itag=243&clen=4372313&lmt=1474569681575963&projection_type=1&fps=24&init=0-242,type=video%2Fmp4%3B codecs%3D%22avc1.4d4015%22&url=https%3A%2F%2Fr5---sn-hp57knly.googlevideo.com%2Fvideoplayback%3Fdur%3D118.409%26ipbits%3D0%26expire%3D1476821052%26itag%3D133%26clen%3D3323319%26key%3Dyt6%26mime%3Dvideo%252Fmp4%26gir%3Dyes%26nh%3DIgpwcjAyLm1pYTA0KgkxMjcuMC4wLjE%26signature%3D2F37DC2FC7B1B1B40BD2D8321052525F19F54868.DA685B887EF969C55112CC8189130C0ACB28439F%26initcwndbps%3D242500%26upn%3DG0fHrTMQiq4%26source%3Dyoutube%26pl%3D24%26id%3Do-AILTGQmmjnz7N83Gxmrj6xWG_7HcFfOjIvl7r5jb5FmQ%26mn%3Dsn-hp57knly%26mm%3D31%26lmt%3D1474565264372391%26requiressl%3Dyes%26ip%3D65.48.218.195%26ms%3Dau%26sparams%3Dclen%252Cdur%252Cgir%252Cid%252Cinitcwndbps%252Cip%252Cipbits%252Citag%252Clmt%252Cmime%252Cmm%252Cmn%252Cms%252Cmv%252Cnh%252Cpl%252Crequiressl%252Csource%252Cupn%252Cexpire%26mv%3Dm%26mt%3D1476798643&size=426x240&bitrate=253025&quality_label=240p&index=713-1008&itag=133&clen=3323319&lmt=1474565264372391&projection_type=1&fps=24&init=0-712,type=video%2Fwebm%3B codecs%3D%22vp9%22&url=https%3A%2F%2Fr5---sn-hp57knly.googlevideo.com%2Fvideoplayback%3Fdur%3D118.368%26ipbits%3D0%26expire%3D1476821052%26itag%3D242%26clen%3D2394029%26key%3Dyt6%26mime%3Dvideo%252Fwebm%26gir%3Dyes%26nh%3DIgpwcjAyLm1pYTA0KgkxMjcuMC4wLjE%26signature%3D4FB954C1C7D439B6A6050F080B4BFA6B23940F1E.01F73E52F54585FCC6A8D914301BA1F9708AFAEF%26initcwndbps%3D242500%26upn%3DG0fHrTMQiq4%26source%3Dyoutube%26pl%3D24%26id%3Do-AILTGQmmjnz7N83Gxmrj6xWG_7HcFfOjIvl7r5jb5FmQ%26mn%3Dsn-hp57knly%26mm%3D31%26lmt%3D1474569681136252%26requiressl%3Dyes%26ip%3D65.48.218.195%26ms%3Dau%26sparams%3Dclen%252Cdur%252Cgir%252Cid%252Cinitcwndbps%252Cip%252Cipbits%252Citag%252Clmt%252Cmime%252Cmm%252Cmn%252Cms%252Cmv%252Cnh%252Cpl%252Crequiressl%252Csource%252Cupn%252Cexpire%26mv%3Dm%26mt%3D1476798643&size=426x240&bitrate=248476&quality_label=240p&index=242-606&itag=242&clen=2394029&lmt=1474569681136252&projection_type=1&fps=24&init=0-241,type=video%2Fmp4%3B codecs%3D%22avc1.4d400c%22&url=https%3A%2F%2Fr5---sn-hp57knly.googlevideo.com%2Fvideoplayback%3Fdur%3D118.409%26ipbits%3D0%26expire%3D1476821052%26itag%3D160%26clen%3D1511434%26key%3Dyt6%26mime%3Dvideo%252Fmp4%26gir%3Dyes%26nh%3DIgpwcjAyLm1pYTA0KgkxMjcuMC4wLjE%26signature%3D793668000302F751E334EC08953C6B0F57FFFFE0.B25A2DF2D0E54A5AB2B93167C3626D2A2DE112FF%26initcwndbps%3D242500%26upn%3DG0fHrTMQiq4%26source%3Dyoutube%26pl%3D24%26id%3Do-AILTGQmmjnz7N83Gxmrj6xWG_7HcFfOjIvl7r5jb5FmQ%26mn%3Dsn-hp57knly%26mm%3D31%26lmt%3D1474565263267015%26requiressl%3Dyes%26ip%3D65.48.218.195%26ms%3Dau%26sparams%3Dclen%252Cdur%252Cgir%252Cid%252Cinitcwndbps%252Cip%252Cipbits%252Citag%252Clmt%252Cmime%252Cmm%252Cmn%252Cms%252Cmv%252Cnh%252Cpl%252Crequiressl%252Csource%252Cupn%252Cexpire%26mv%3Dm%26mt%3D1476798643&size=256x144&bitrate=113275&quality_label=144p&index=712-1007&itag=160&clen=1511434&lmt=1474565263267015&projection_type=1&fps=24&init=0-711,type=video%2Fwebm%3B codecs%3D%22vp9%22&url=https%3A%2F%2Fr5---sn-hp57knly.googlevideo.com%2Fvideoplayback%3Fdur%3D118.368%26ipbits%3D0%26expire%3D1476821052%26itag%3D278%26clen%3D1263464%26key%3Dyt6%26mime%3Dvideo%252Fwebm%26gir%3Dyes%26nh%3DIgpwcjAyLm1pYTA0KgkxMjcuMC4wLjE%26signature%3DB02060E5B7316763ED1084F6F3036E6A019D09D1.829769886CD515A0D50280F74A63F54E97D14DC9%26initcwndbps%3D242500%26upn%3DG0fHrTMQiq4%26source%3Dyoutube%26pl%3D24%26id%3Do-AILTGQmmjnz7N83Gxmrj6xWG_7HcFfOjIvl7r5jb5FmQ%26mn%3Dsn-hp57knly%26mm%3D31%26lmt%3D1474569681369427%26requiressl%3Dyes%26ip%3D65.48.218.195%26ms%3Dau%26sparams%3Dclen%252Cdur%252Cgir%252Cid%252Cinitcwndbps%252Cip%252Cipbits%252Citag%252Clmt%252Cmime%252Cmm%252Cmn%252Cms%252Cmv%252Cnh%252Cpl%252Crequiressl%252Csource%252Cupn%252Cexpire%26mv%3Dm%26mt%3D1476798643&size=256x144&bitrate=110882&quality_label=144p&index=242-605&itag=278&clen=1263464&lmt=1474569681369427&projection_type=1&fps=24&init=0-241,bitrate=127947&projection_type=1&lmt=1474565261681153&url=https%3A%2F%2Fr5---sn-hp57knly.googlevideo.com%2Fvideoplayback%3Fdur%3D118.468%26ipbits%3D0%26expire%3D1476821052%26itag%3D140%26clen%3D1882201%26key%3Dyt6%26mime%3Daudio%252Fmp4%26gir%3Dyes%26nh%3DIgpwcjAyLm1pYTA0KgkxMjcuMC4wLjE%26signature%3DE2B0595A2BCE25242C2F20326B77B197088F2940.CF1E5F62927BEC684D52F23FE3129AF7E6029F3C%26initcwndbps%3D242500%26upn%3DG0fHrTMQiq4%26source%3Dyoutube%26pl%3D24%26id%3Do-AILTGQmmjnz7N83Gxmrj6xWG_7HcFfOjIvl7r5jb5FmQ%26mn%3Dsn-hp57knly%26mm%3D31%26lmt%3D1474565261681153%26requiressl%3Dyes%26ip%3D65.48.218.195%26ms%3Dau%26sparams%3Dclen%252Cdur%252Cgir%252Cid%252Cinitcwndbps%252Cip%252Cipbits%252Citag%252Clmt%252Cmime%252Cmm%252Cmn%252Cms%252Cmv%252Cnh%252Cpl%252Crequiressl%252Csource%252Cupn%252Cexpire%26mv%3Dm%26mt%3D1476798643&itag=140&clen=1882201&init=0-591&type=audio%2Fmp4%3B codecs%3D%22mp4a.40.2%22&index=592-767,bitrate=110099&projection_type=1&lmt=1474569320703410&url=https%3A%2F%2Fr5---sn-hp57knly.googlevideo.com%2Fvideoplayback%3Fdur%3D118.406%26ipbits%3D0%26expire%3D1476821052%26itag%3D171%26clen%3D1466478%26key%3Dyt6%26mime%3Daudio%252Fwebm%26gir%3Dyes%26nh%3DIgpwcjAyLm1pYTA0KgkxMjcuMC4wLjE%26signature%3D92E950AFEF220D8F97552BF0FA682477C6C45F7F.A14A54885D49ADA927DE8813254BFBDA7B2B50A9%26initcwndbps%3D242500%26upn%3DG0fHrTMQiq4%26source%3Dyoutube%26pl%3D24%26id%3Do-AILTGQmmjnz7N83Gxmrj6xWG_7HcFfOjIvl7r5jb5FmQ%26mn%3Dsn-hp57knly%26mm%3D31%26lmt%3D1474569320703410%26requiressl%3Dyes%26ip%3D65.48.218.195%26ms%3Dau%26sparams%3Dclen%252Cdur%252Cgir%252Cid%252Cinitcwndbps%252Cip%252Cipbits%252Citag%252Clmt%252Cmime%252Cmm%252Cmn%252Cms%252Cmv%252Cnh%252Cpl%252Crequiressl%252Csource%252Cupn%252Cexpire%26mv%3Dm%26mt%3D1476798643&itag=171&clen=1466478&init=0-4451&type=audio%2Fwebm%3B codecs%3D%22vorbis%22&index=4452-4652,bitrate=52822&projection_type=1&lmt=1474569319163572&url=https%3A%2F%2Fr5---sn-hp57knly.googlevideo.com%2Fvideoplayback%3Fdur%3D118.401%26ipbits%3D0%26expire%3D1476821052%26itag%3D249%26clen%3D746586%26key%3Dyt6%26mime%3Daudio%252Fwebm%26gir%3Dyes%26nh%3DIgpwcjAyLm1pYTA0KgkxMjcuMC4wLjE%26signature%3D5FA8093E4805638704A15E20ED8CF46F396D71BA.66618E8367C45B3BC0A1150F0EA70315D46D3EE2%26initcwndbps%3D242500%26upn%3DG0fHrTMQiq4%26source%3Dyoutube%26pl%3D24%26id%3Do-AILTGQmmjnz7N83Gxmrj6xWG_7HcFfOjIvl7r5jb5FmQ%26mn%3Dsn-hp57knly%26mm%3D31%26lmt%3D1474569319163572%26requiressl%3Dyes%26ip%3D65.48.218.195%26ms%3Dau%26sparams%3Dclen%252Cdur%252Cgir%252Cid%252Cinitcwndbps%252Cip%252Cipbits%252Citag%252Clmt%252Cmime%252Cmm%252Cmn%252Cms%252Cmv%252Cnh%252Cpl%252Crequiressl%252Csource%252Cupn%252Cexpire%26mv%3Dm%26mt%3D1476798643&itag=249&clen=746586&init=0-271&type=audio%2Fwebm%3B codecs%3D%22opus%22&index=272-471,bitrate=66796&projection_type=1&lmt=1474569318917080&url=https%3A%2F%2Fr5---sn-hp57knly.googlevideo.com%2Fvideoplayback%3Fdur%3D118.401%26ipbits%3D0%26expire%3D1476821052%26itag%3D250%26clen%3D931622%26key%3Dyt6%26mime%3Daudio%252Fwebm%26gir%3Dyes%26nh%3DIgpwcjAyLm1pYTA0KgkxMjcuMC4wLjE%26signature%3D326B84E9D12FF3BB1E93210DD23F56A7D6E62EC9.5467E9E9FC519B1BFEC6BC282CB3832A9B945EFA%26initcwndbps%3D242500%26upn%3DG0fHrTMQiq4%26source%3Dyoutube%26pl%3D24%26id%3Do-AILTGQmmjnz7N83Gxmrj6xWG_7HcFfOjIvl7r5jb5FmQ%26mn%3Dsn-hp57knly%26mm%3D31%26lmt%3D1474569318917080%26requiressl%3Dyes%26ip%3D65.48.218.195%26ms%3Dau%26sparams%3Dclen%252Cdur%252Cgir%252Cid%252Cinitcwndbps%252Cip%252Cipbits%252Citag%252Clmt%252Cmime%252Cmm%252Cmn%252Cms%252Cmv%252Cnh%252Cpl%252Crequiressl%252Csource%252Cupn%252Cexpire%26mv%3Dm%26mt%3D1476798643&itag=250&clen=931622&init=0-271&type=audio%2Fwebm%3B codecs%3D%22opus%22&index=272-472,bitrate=129762&projection_type=1&lmt=1474569318312948&url=https%3A%2F%2Fr5---sn-hp57knly.googlevideo.com%2Fvideoplayback%3Fdur%3D118.401%26ipbits%3D0%26expire%3D1476821052%26itag%3D251%26clen%3D1775226%26key%3Dyt6%26mime%3Daudio%252Fwebm%26gir%3Dyes%26nh%3DIgpwcjAyLm1pYTA0KgkxMjcuMC4wLjE%26signature%3D297ED23037D3B1F17E18025D2D519CB5D5A1A074.2150FDAF2032D98C031EB091D62EF84105A1C922%26initcwndbps%3D242500%26upn%3DG0fHrTMQiq4%26source%3Dyoutube%26pl%3D24%26id%3Do-AILTGQmmjnz7N83Gxmrj6xWG_7HcFfOjIvl7r5jb5FmQ%26mn%3Dsn-hp57knly%26mm%3D31%26lmt%3D1474569318312948%26requiressl%3Dyes%26ip%3D65.48.218.195%26ms%3Dau%26sparams%3Dclen%252Cdur%252Cgir%252Cid%252Cinitcwndbps%252Cip%252Cipbits%252Citag%252Clmt%252Cmime%252Cmm%252Cmn%252Cms%252Cmv%252Cnh%252Cpl%252Crequiressl%252Csource%252Cupn%252Cexpire%26mv%3Dm%26mt%3D1476798643&itag=251&clen=1775226&init=0-271&type=audio%2Fwebm%3B codecs%3D%22opus%22&index=272-472 + allow_embed + 1 + allow_ratings + 1 + atc + a=3&b=G0XIms3xv9UwbwqOC7HFsRZyaBk&c=1476799452&d=1&e=CQY3KUR3VzM&c3a=19&hh=ajYswiFFjEMPHO8Jv5_XQrFNU1s + author + Apple + avg_rating + 4.60785837441 + c + WEB + caption_audio_tracks + v=0&d=1&i=1%2C0 + caption_tracks + n=English %28auto-generated%29&k=asr&lc=en&v=a.en&u=https%3A%2F%2Fwww.youtube.com%2Fapi%2Ftimedtext%3Fsignature%3D10596E096A3CB5CEB37A2407B90013F00C1C23DE.0941D2DB3471B804303545FE39C076821D116761%26key%3Dyttt1%26v%3DCQY3KUR3VzM%26asr_langs%3Dko%252Cde%252Cit%252Cja%252Cen%252Cfr%252Cru%252Ces%252Cnl%252Cpt%26sparams%3Dasr_langs%252Ccaps%252Cv%252Cexpire%26expire%3D1476824652%26caps%3Dasr%26hl%3Den_US%26kind%3Dasr%26lang%3Den&t=1,n=English&u=https%3A%2F%2Fwww.youtube.com%2Fapi%2Ftimedtext%3Fsignature%3D10596E096A3CB5CEB37A2407B90013F00C1C23DE.0941D2DB3471B804303545FE39C076821D116761%26key%3Dyttt1%26v%3DCQY3KUR3VzM%26asr_langs%3Dko%252Cde%252Cit%252Cja%252Cen%252Cfr%252Cru%252Ces%252Cnl%252Cpt%26sparams%3Dasr_langs%252Ccaps%252Cv%252Cexpire%26expire%3D1476824652%26caps%3Dasr%26hl%3Den_US%26lang%3Den&lc=en&t=1&v=.en + caption_translation_languages + n=Afrikaans&lc=af,n=Albanian&lc=sq,n=Amharic&lc=am,n=Arabic&lc=ar,n=Armenian&lc=hy,n=Azerbaijani&lc=az,n=Basque&lc=eu,n=Belarusian&lc=be,n=Bengali&lc=bn,n=Bosnian&lc=bs,n=Bulgarian&lc=bg,n=Burmese&lc=my,n=Catalan&lc=ca,n=Cebuano&lc=ceb,n=Chinese %28Simplified%29&lc=zh-Hans,n=Chinese %28Traditional%29&lc=zh-Hant,n=Corsican&lc=co,n=Croatian&lc=hr,n=Czech&lc=cs,n=Danish&lc=da,n=Dutch&lc=nl,n=English&lc=en,n=Esperanto&lc=eo,n=Estonian&lc=et,n=Filipino&lc=fil,n=Finnish&lc=fi,n=French&lc=fr,n=Galician&lc=gl,n=Georgian&lc=ka,n=German&lc=de,n=Greek&lc=el,n=Gujarati&lc=gu,n=Haitian Creole&lc=ht,n=Hausa&lc=ha,n=Hawaiian&lc=haw,n=Hebrew&lc=iw,n=Hindi&lc=hi,n=Hmong&lc=hmn,n=Hungarian&lc=hu,n=Icelandic&lc=is,n=Igbo&lc=ig,n=Indonesian&lc=id,n=Irish&lc=ga,n=Italian&lc=it,n=Japanese&lc=ja,n=Javanese&lc=jv,n=Kannada&lc=kn,n=Kazakh&lc=kk,n=Khmer&lc=km,n=Korean&lc=ko,n=Kurdish&lc=ku,n=Kyrgyz&lc=ky,n=Lao&lc=lo,n=Latin&lc=la,n=Latvian&lc=lv,n=Lithuanian&lc=lt,n=Luxembourgish&lc=lb,n=Macedonian&lc=mk,n=Malagasy&lc=mg,n=Malay&lc=ms,n=Malayalam&lc=ml,n=Maltese&lc=mt,n=Maori&lc=mi,n=Marathi&lc=mr,n=Mongolian&lc=mn,n=Nepali&lc=ne,n=Norwegian&lc=no,n=Nyanja&lc=ny,n=Pashto&lc=ps,n=Persian&lc=fa,n=Polish&lc=pl,n=Portuguese&lc=pt,n=Punjabi&lc=pa,n=Romanian&lc=ro,n=Russian&lc=ru,n=Samoan&lc=sm,n=Scottish Gaelic&lc=gd,n=Serbian&lc=sr,n=Shona&lc=sn,n=Sindhi&lc=sd,n=Sinhala&lc=si,n=Slovak&lc=sk,n=Slovenian&lc=sl,n=Somali&lc=so,n=Southern Sotho&lc=st,n=Spanish&lc=es,n=Sundanese&lc=su,n=Swahili&lc=sw,n=Swedish&lc=sv,n=Tajik&lc=tg,n=Tamil&lc=ta,n=Telugu&lc=te,n=Thai&lc=th,n=Turkish&lc=tr,n=Ukrainian&lc=uk,n=Urdu&lc=ur,n=Uzbek&lc=uz,n=Vietnamese&lc=vi,n=Welsh&lc=cy,n=Western Frisian&lc=fy,n=Xhosa&lc=xh,n=Yiddish&lc=yi,n=Yoruba&lc=yo,n=Zulu&lc=zu + cc3_module + 1 + cc_asr + 1 + cc_font + Arial Unicode MS, arial, verdana, _sans + cc_fonts_url + https://s.ytimg.com/yts/swfbin/player-vflUV9oOf/fonts708.swf + cc_module + https://s.ytimg.com/yts/swfbin/player-vflUV9oOf/subtitle_module.swf + cl + 136372475 + csi_page_type + embed + cver + 1.20161017 + dashmpd + https://manifest.googlevideo.com/api/manifest/dash/hfr/1/ipbits/0/expire/1476821052/itag/0/key/yt6/nh/IgpwcjAyLm1pYTA0KgkxMjcuMC4wLjE/playback_host/r5---sn-hp57knly.googlevideo.com/signature/AC9F8948167E85A4CD67DBBCB666E63FC1D9D79C.17DD4CFA37FF2EE6A8954662D82D88FE54AB3295/initcwndbps/242500/upn/S4g5bRfk4RI/source/youtube/pl/24/id/o-AILTGQmmjnz7N83Gxmrj6xWG_7HcFfOjIvl7r5jb5FmQ/mn/sn-hp57knly/mm/31/as/fmp4_audio_clear%2Cwebm_audio_clear%2Cwebm2_audio_clear%2Cfmp4_sd_hd_clear%2Cwebm2_sd_hd_clear/requiressl/yes/ip/65.48.218.195/ms/au/sparams/as%2Chfr%2Cid%2Cinitcwndbps%2Cip%2Cipbits%2Citag%2Cmm%2Cmn%2Cms%2Cmv%2Cnh%2Cpl%2Cplayback_host%2Crequiressl%2Csource%2Cexpire/mv/m/mt/1476798643 + default_audio_track_index + 0 + enablecsi + 1 + eventid + 3CsGWL-bBoOriQaTl6XADw + fexp + 9410705,9419451,9422596,9428398,9431012,9433096,9433221,9433493,9433946,9434046,9434289,9435526,9435892,9438601,9439580,9441160,9441920,9443493,9443566,9444238,9445077,9446054,9446364,9447647,9447882,9448130,9449549,9449579,9450193,9450481,9450601,9451246,9451531 + fmt_list + 22/1280x720/9/0/115,43/640x360/99/0/0,18/640x360/9/0/115,36/426x240/99/1/0,17/256x144/99/1/0,13/256x144/99/1/0 + has_cc + True + idpj + -6 + is_listed + 1 + iurl + https://i.ytimg.com/vi/CQY3KUR3VzM/hqdefault.jpg + iurlhq + https://i.ytimg.com/vi/CQY3KUR3VzM/hqdefault.jpg + iurlmaxres + https://i.ytimg.com/vi/CQY3KUR3VzM/maxresdefault.jpg + iurlmq + https://i.ytimg.com/vi/CQY3KUR3VzM/mqdefault.jpg + iurlsd + https://i.ytimg.com/vi/CQY3KUR3VzM/sddefault.jpg + iv3_module + 1 + iv_allow_in_place_switch + 1 + iv_invideo_url + https://www.youtube.com/annotations_invideo?cap_hist=1&video_id=CQY3KUR3VzM&ei=3CsGWL-bBoOriQaTl6XADw + iv_load_policy + 1 + iv_module + https://s.ytimg.com/yts/swfbin/player-vflUV9oOf/iv_module.swf + keywords + Apple Music + ldpj + -7 + length_seconds + 119 + muted + 0 + no_get_video_log + 1 + of + 21KtFJWzWb9lY3X6NI5UAw + oid + ffsQQyXI443h2PgMzMjp-g + plid + AAU_JCrBXZtcMN7u + pltype + content + probe_url + https://r15---sn-aigllnle.googlevideo.com/videogoodput?id=o-ALfccxha-qqgG4nLx8c2Y3rEqdJmhYokw3uNnBhN_YUh&source=goodput&range=0-4999&expire=1476803052&ip=65.48.218.195&ms=pm&mm=35&pl=24&nh=IgpwcjA0LmxocjE0Kg03Mi4xNC4xOTcuMjM1&sparams=id,source,range,expire,ip,ms,mm,pl,nh&signature=5AECD46A836984C9F5377ADC8D6444DC3CB71376.4623BA45AB598EA6531E65E0EECBA34ABEA0851B&key=cms1 + ptchn + E_M8A5yxnLfW0KghEeajjw + ptk + Apple%2Bvid + remarketing_url + https://googleads.g.doubleclick.net/pagead/viewthroughconversion/962985656/?backend=player_vars&cname=1&cver=AS3&foc_id=E_M8A5yxnLfW0KghEeajjw&label=followon_view&ptype=no_rmkt&srr=n + short_view_count_text + 1M views + status + ok + storyboard_spec + https://i.ytimg.com/sb/CQY3KUR3VzM/storyboard3_L$L/$N.jpg|48#27#100#10#10#0#default#A_4feu41ZvIulgFKR_MeyUpMXqs|80#45#120#10#10#1000#M$M#Hpo7DFKHRoK2xu714xG56FT2Kew|160#90#120#5#5#1000#M$M#AqM3iOn62Vz789UjfDFX-HsYKsM + thumbnail_url + https://i.ytimg.com/vi/CQY3KUR3VzM/default.jpg + timestamp + 1476799452 + title + The all-new Apple Music. + tmi + 1 + token + Gb16c_uXuYR_omUa3pYbZEsfADxVLzWivAb2S3JSebk= + ttsurl + https://www.youtube.com/api/timedtext?signature=10596E096A3CB5CEB37A2407B90013F00C1C23DE.0941D2DB3471B804303545FE39C076821D116761&key=yttt1&v=CQY3KUR3VzM&asr_langs=ko%2Cde%2Cit%2Cja%2Cen%2Cfr%2Cru%2Ces%2Cnl%2Cpt&sparams=asr_langs%2Ccaps%2Cv%2Cexpire&expire=1476824652&caps=asr&hl=en_US + ucid + UCE_M8A5yxnLfW0KghEeajjw + url_encoded_fmt_stream_map + itag=22&type=video%2Fmp4%3B codecs%3D%22avc1.64001F%2C mp4a.40.2%22&fallback_host=tc.v2.cache1.googlevideo.com&quality=hd720&url=https%3A%2F%2Fr5---sn-hp57knly.googlevideo.com%2Fvideoplayback%3Fdur%3D118.468%26ipbits%3D0%26expire%3D1476821052%26ratebypass%3Dyes%26itag%3D22%26key%3Dyt6%26mime%3Dvideo%252Fmp4%26nh%3DIgpwcjAyLm1pYTA0KgkxMjcuMC4wLjE%26signature%3DDFF2A0A222B1E8FC5877B151E4D643F754165052.470C0539104F227A351CCB241953DA8F7AC4A83D%26initcwndbps%3D242500%26upn%3D6Jx2CzfaB_U%26source%3Dyoutube%26pl%3D24%26id%3Do-AILTGQmmjnz7N83Gxmrj6xWG_7HcFfOjIvl7r5jb5FmQ%26mn%3Dsn-hp57knly%26mm%3D31%26lmt%3D1474565445744645%26requiressl%3Dyes%26ip%3D65.48.218.195%26ms%3Dau%26sparams%3Ddur%252Cid%252Cinitcwndbps%252Cip%252Cipbits%252Citag%252Clmt%252Cmime%252Cmm%252Cmn%252Cms%252Cmv%252Cnh%252Cpl%252Cratebypass%252Crequiressl%252Csource%252Cupn%252Cexpire%26mv%3Dm%26mt%3D1476798643,itag=43&type=video%2Fwebm%3B codecs%3D%22vp8.0%2C vorbis%22&fallback_host=tc.v19.cache6.googlevideo.com&quality=medium&url=https%3A%2F%2Fr5---sn-hp57knly.googlevideo.com%2Fvideoplayback%3Fdur%3D0.000%26ipbits%3D0%26expire%3D1476821052%26ratebypass%3Dyes%26itag%3D43%26key%3Dyt6%26mime%3Dvideo%252Fwebm%26nh%3DIgpwcjAyLm1pYTA0KgkxMjcuMC4wLjE%26signature%3D2636647F5DFA9A4035A5F8B3CAC240994117D5B0.752C7F58D489E093037C44E1D0F43E69DE07EA34%26initcwndbps%3D242500%26upn%3D6Jx2CzfaB_U%26source%3Dyoutube%26pl%3D24%26id%3Do-AILTGQmmjnz7N83Gxmrj6xWG_7HcFfOjIvl7r5jb5FmQ%26mn%3Dsn-hp57knly%26mm%3D31%26lmt%3D1474569251980433%26requiressl%3Dyes%26ip%3D65.48.218.195%26ms%3Dau%26sparams%3Ddur%252Cid%252Cinitcwndbps%252Cip%252Cipbits%252Citag%252Clmt%252Cmime%252Cmm%252Cmn%252Cms%252Cmv%252Cnh%252Cpl%252Cratebypass%252Crequiressl%252Csource%252Cupn%252Cexpire%26mv%3Dm%26mt%3D1476798643,itag=18&type=video%2Fmp4%3B codecs%3D%22avc1.42001E%2C mp4a.40.2%22&fallback_host=tc.v15.cache2.googlevideo.com&quality=medium&url=https%3A%2F%2Fr5---sn-hp57knly.googlevideo.com%2Fvideoplayback%3Fdur%3D118.468%26ipbits%3D0%26expire%3D1476821052%26ratebypass%3Dyes%26itag%3D18%26key%3Dyt6%26mime%3Dvideo%252Fmp4%26nh%3DIgpwcjAyLm1pYTA0KgkxMjcuMC4wLjE%26signature%3D079339ABEAFBBC495FB93F122EAC9A77A33A532F.41C1984713CB9BED92FF9777E5754766FC0FD6%26initcwndbps%3D242500%26upn%3D6Jx2CzfaB_U%26source%3Dyoutube%26pl%3D24%26id%3Do-AILTGQmmjnz7N83Gxmrj6xWG_7HcFfOjIvl7r5jb5FmQ%26mn%3Dsn-hp57knly%26mm%3D31%26lmt%3D1474565212633283%26requiressl%3Dyes%26ip%3D65.48.218.195%26ms%3Dau%26sparams%3Ddur%252Cid%252Cinitcwndbps%252Cip%252Cipbits%252Citag%252Clmt%252Cmime%252Cmm%252Cmn%252Cms%252Cmv%252Cnh%252Cpl%252Cratebypass%252Crequiressl%252Csource%252Cupn%252Cexpire%26mv%3Dm%26mt%3D1476798643,itag=36&type=video%2F3gpp%3B codecs%3D%22mp4v.20.3%2C mp4a.40.2%22&fallback_host=tc.v21.cache8.googlevideo.com&quality=small&url=https%3A%2F%2Fr5---sn-hp57knly.googlevideo.com%2Fvideoplayback%3Fdur%3D118.514%26ipbits%3D0%26expire%3D1476821052%26ms%3Dau%26initcwndbps%3D242500%26signature%3D69718CF3416A5B854EECBF28AD95C32F112716E8.9596A96B39C759E71419FC3A4138B4B4EDC19C24%26upn%3D6Jx2CzfaB_U%26source%3Dyoutube%26pl%3D24%26id%3Do-AILTGQmmjnz7N83Gxmrj6xWG_7HcFfOjIvl7r5jb5FmQ%26mn%3Dsn-hp57knly%26mm%3D31%26itag%3D36%26lmt%3D1474565215934738%26requiressl%3Dyes%26ip%3D65.48.218.195%26key%3Dyt6%26mime%3Dvideo%252F3gpp%26sparams%3Ddur%252Cid%252Cinitcwndbps%252Cip%252Cipbits%252Citag%252Clmt%252Cmime%252Cmm%252Cmn%252Cms%252Cmv%252Cnh%252Cpl%252Crequiressl%252Csource%252Cupn%252Cexpire%26mv%3Dm%26nh%3DIgpwcjAyLm1pYTA0KgkxMjcuMC4wLjE%26mt%3D1476798643,itag=17&type=video%2F3gpp%3B codecs%3D%22mp4v.20.3%2C mp4a.40.2%22&fallback_host=tc.v6.cache1.googlevideo.com&quality=small&url=https%3A%2F%2Fr5---sn-hp57knly.googlevideo.com%2Fvideoplayback%3Fdur%3D118.514%26ipbits%3D0%26expire%3D1476821052%26ms%3Dau%26initcwndbps%3D242500%26signature%3D21A885328E05525D49E81BE8CD4D0806E96DE1CF.98C5C8438CC913C769A3381355F920EAA40B24EB%26upn%3D6Jx2CzfaB_U%26source%3Dyoutube%26pl%3D24%26id%3Do-AILTGQmmjnz7N83Gxmrj6xWG_7HcFfOjIvl7r5jb5FmQ%26mn%3Dsn-hp57knly%26mm%3D31%26itag%3D17%26lmt%3D1474565211348907%26requiressl%3Dyes%26ip%3D65.48.218.195%26key%3Dyt6%26mime%3Dvideo%252F3gpp%26sparams%3Ddur%252Cid%252Cinitcwndbps%252Cip%252Cipbits%252Citag%252Clmt%252Cmime%252Cmm%252Cmn%252Cms%252Cmv%252Cnh%252Cpl%252Crequiressl%252Csource%252Cupn%252Cexpire%26mv%3Dm%26nh%3DIgpwcjAyLm1pYTA0KgkxMjcuMC4wLjE%26mt%3D1476798643 + use_cipher_signature + False + video_id + CQY3KUR3VzM + video_verticals + [1048, 184] + view_count + 1486610 + vm + CAEQAA + vmap + <?xml version="1.0" encoding="UTF-8"?><vmap:VMAP xmlns:vmap="http://www.iab.net/videosuite/vmap" xmlns:yt="http://youtube.com" version="1.0"></vmap:VMAP> + watermark + ,https://s.ytimg.com/yts/img/watermark/youtube_watermark-vflHX6b6E.png,https://s.ytimg.com/yts/img/watermark/youtube_hd_watermark-vflAzLcD6.png + ypc_ad_indicator + 4 + + diff --git a/XCDYouTubeKit.xcodeproj/project.pbxproj b/XCDYouTubeKit.xcodeproj/project.pbxproj index 7cbc27e61..81c3cd111 100644 --- a/XCDYouTubeKit.xcodeproj/project.pbxproj +++ b/XCDYouTubeKit.xcodeproj/project.pbxproj @@ -7,6 +7,7 @@ objects = { /* Begin PBXBuildFile section */ + 0116F7C91DB663A00031004C /* testInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 0116F7C81DB663A00031004C /* testInfo.plist */; }; C20F57A818817D5400EDBFB0 /* XCDYouTubeClientTestCase.m in Sources */ = {isa = PBXBuildFile; fileRef = C20F57A718817D5400EDBFB0 /* XCDYouTubeClientTestCase.m */; }; C2142F2A19644779000FA9C0 /* XCDYouTubeKit.h in Headers */ = {isa = PBXBuildFile; fileRef = C2D0CBAC19122A8F00DA8CD4 /* XCDYouTubeKit.h */; settings = {ATTRIBUTES = (Public, ); }; }; C215BEB91BE2E5B500F9783B /* XCDYouTubeVideoWebpage.h in Headers */ = {isa = PBXBuildFile; fileRef = C2386B1C1974036300646123 /* XCDYouTubeVideoWebpage.h */; }; @@ -94,6 +95,7 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ + 0116F7C81DB663A00031004C /* testInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = testInfo.plist; sourceTree = ""; }; C20F579B18817D5400EDBFB0 /* XCDYouTubeKit.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = XCDYouTubeKit.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; C20F57A718817D5400EDBFB0 /* XCDYouTubeClientTestCase.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XCDYouTubeClientTestCase.m; sourceTree = ""; }; C22263371B33FDE000BA6719 /* XCTestWorkarounds.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XCTestWorkarounds.m; sourceTree = ""; }; @@ -164,6 +166,7 @@ C20F57A118817D5400EDBFB0 /* XCDYouTubeKit Tests */ = { isa = PBXGroup; children = ( + 0116F7C81DB663A00031004C /* testInfo.plist */, C2D0CC5C19126E1200DA8CD4 /* Cassettes */, C2D0CC3A1912673500DA8CD4 /* VCRURLConnection */, C20F57A718817D5400EDBFB0 /* XCDYouTubeClientTestCase.m */, @@ -378,6 +381,7 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( + 0116F7C91DB663A00031004C /* testInfo.plist in Resources */, C2D0CC5D19126E1200DA8CD4 /* Cassettes in Resources */, ); runOnlyForDeploymentPostprocessing = 0; diff --git a/XCDYouTubeKit.xcodeproj/project.xcworkspace/xcuserdata/soneejohn.xcuserdatad/UserInterfaceState.xcuserstate b/XCDYouTubeKit.xcodeproj/project.xcworkspace/xcuserdata/soneejohn.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000000000000000000000000000000000000..cc8c0eb1b8fac5e4a3db1c825148fa715ce6b3c1 GIT binary patch literal 12554 zcmd6Nd0bT0`~O*n8D?R)Fbgv%GXo@Ev#mRxenL$O=&Sa_C zu2!090X=avv+E=sGEK76A%&boz+p|UcJ$EhxjM1n5`h0)#Lhilioaa2}d7krr zmUF5aJZ^s=E9-rP5kVA5P!y6%;w14Cdd=p2ez&)NLN9OCjeK>$Ke3m~S3ScGpUZm% zybbXPFJAw69PWo?C>m*y7U_^3rJ>%a59*8hp>&jiGEol7N25^*8iPvF4QMPXL*=Lf zjYH$n1T+;nQ4R8-I#iFmr~&y=Gn$WXLN}v3(4FWmbT`_H9zomCqv$cT9X*boKs(Tr zXeZi*oT zIsOuVg}=o=;EVVd5=Ep$Mxu$F=!l*q5Cbt1GqDgG=}U6R0CF|Ch7^$N$S6`yD#$o8 zl{m>XGK2WYT(XedOcs-6^&H`1BZLm3Uyo9QBY3%!*trc3BjdK+CvZ>M+AJLv;-6Ki?t!$^)4NQqP^7R8S*Da)A2H~A;Q-*&4U*Q?s&^7~s+3{o?~ zXe;7S9Fwr;nbpblDk#h?${Ln8JUu(7e^L5?;Y9<}^M_?Q(uX_p3yQL`^BuVZ^PQZw z*ikgz>znCsa8>gTZ*^lGUmplhtVbqf+l&&B0U1#u>VbNqBo@V_Ova*_oGF-cGcqF! zN(K&$s256QDi*_HffpGwvOH#=Do}UV*Ldd)_qpnLCzlK##`tP@A79fkYq_gxn72OQ z^Ljk6?VQ}TU0I4~bUFs+IkFvt2Bc>d6%0!sknJc;FD%F%o?bL8e^72#UVi?df*dE; zuPXs@`pyX|>fN&%`QjQ_rhB@Z_c=K;bT6n5!0zszB`0ST2!@tX?)7@AT)txeIJe(j z<$)C$I@?@Tg^^9o&DlA5{VW4=7WA_;_aBgz)z6Zbox5Pcp^#d$P<9J4f~eGo&;T?L z4MMq-M2*&itR{$$ydM-_;PbhfTA@SUgp#r`AxH|VXfPUvY+KM(=xTHgx)u#VLs0=L zWE_iQ@l3OdU8lUHNg7=#r4y@ z86l7lOKT#UjBG7v66@K5Dp``S>Nv-^@($*T1ALud)Xp?i-HKeOikVn1W(yPG(F_#d zil(DlW@eUF^yN!jSefD3FfWF>8AfnX=%91I1W zoTj5g=VWb&b)9YzT7qnC=oWMkm;N;@F(zwp&ZEWyI1F|*HD<_ORPoq8S*;S&A>_yLl9k!cL86Rjvd(m?!ucD+3Uc{~NJgQ#LY??pX|A`-8 zYNsJMs8_o@zY%&4YxZrhcH1VjAH9PPpm#yP2U#H-#vH5&v^snfIt*Gn0>2-kqwG4+ z)fo7_fsGY3CU~X}K@0n`+{d?j5K$0eZ}n$^2o9jb4kKt3^3%OOzGH+)GNkcgqe0Dq zMt?_JyL~vhSfCcxt}r0Hwo~X+6yJhQvk@)m3@a9#uF!Ry%L6;2AjEFC>p65@z@0DH z^)2X2Hj>$=Oc>^v=xr=-tm0umg}eO+eJAY03+Nm4EgQu~vywJ=gdcbmen2Xkh=G=J zfH{9@_tbtvmpb^n%u1QHeHx50LALelLqhH}lAJ;P!ANql7c2<(lj7(w0W4=_odi@^ z9bOKOW#!Bs9ubeVLc;|%ss-y>*>r zsi?XQ+pry{v59Olo6-TuxG&C#K*}LF3!L600V!v%4lmw_{OAO{|gC*X;A5?KF@;EoOOb3fa{wz3_9k~jej9DG${ zZ7uH;9i|@m5FOrVfMq9`Zhei*S0ngAp|jWoduW`P$cXP{ja7Bfds3HyoCZcX`01`j zPargdNZ!)^sZ<#54*=?n}DQe zF{$G0?XksQO%PUE9rg+Y>RDY2ZeaDyUOw98t`D~c@LUw%h8yv0JcoH%1Dn-`n?Rb) z%m)%&DJZOW#B{k)1% znhW|Bvfa+`WpcQ!V(cg<*Q457m*Hw?@bDRP>pbZVK5ql>3pAw**>iZ&592mL6YFsc zZeRsa7L=5=(-2kiD9T>X)DaFaHy6V2+?;Uejh{e!TJR3G zNN|GS!0;|4c(^0@X}kyCp22(Zv-ml@4?m9_u>Hc)80D=FS^v~dNtL<+GeSM;z$`mI z3;r4cgt=p;hsSodu{+sfb`QIi8Jt{ZM}!oiA%|BWm(dYacLYo#w=bdWHvBSv1;5Ic zu-n+}V0-ut{3dX21moX7sdKK15Eo!r2DUWh?(qTqt{CEUS`tu){SfL|>T>&9@p~xm zZ~C;)hc4j5ct3cmWo#)2k0KKv3QVv&ggLKpO!zqP_z6CNPvTRPYub}du(63kjN=cu z>KfQx>~4mf+|uc=2L@+mW>)wCf-?QydY-@0JEK0+!O!MBf&pe0cp7H7%DmG9nW4~Z z4rCyy*;zLD6(TnnP#=KjGH;`=nuiA=e9eq-o{?|RCFD#qBQpn4YG?3g;CdmX534h5 z3a$98Agu11#F6Ll7fvn>EIUHMox+dY#;y3gK<*#+cXIX)3lidT5iG(?W|RtBRQz@r z{~KigH9mze;1fbEp~~gwC&OPK?*XHp%`?PSu)9R2zr)`{{0E9@#or0Jgs??^6oBq0 zc3-zUD=)t@YWNlZfovP_Z}@k7314OpuvKg|dvF6m1mnYmvNdcy*h?$3PZ-5d52b_? z$GU50gq|jeZXx8;xKLCbP8&O%Q#;}i1&M`eh?1yC3{kU(*jl!ZJuKt_4!i;N0#9lH z>@f;1r^h&#&n;jkWbOQ%P-H#UHAjrooLpjLYdh+fRfCZMCPg%chI@VBDgD(xcY}~4 zL)skCB}82S?l7N;q$hYV(u1|MAP4XS{KP>u!teF8hoQn^!=00fH5~qsUaYM>{2_M8 zMM)az%{H)29ib2DM=~SAl;22ykoHC)pqb0M#w27Q$&2XuI~fdG*&OQ0MfALu3=u=a zFh_;N(ZNv>dnC-!2!W$way{F|ws&$gnv`~(hulEMvPaot%sLS^fM|!-q3&rBGma;d zBF0Q6mF#i$L^zrbM;T(QRrx|_?EAz;sz^0bk{W!9OeeLF1Npq(fM`8J08%1EMO;EH zU+-@8i!%!)AbxH@Y%w(W+;xz3|EY=Xg^lne+xG!+lN(`znZ!ftV3HcrfRB(_sA2-t zfju=ozJ6ST3;qvGt`_Ll2gDT55=OPZ+ToMEK6f~Zf|>TR=h)6Jeuwx;K=eE88MaGw z6QTV_ngI04Jkm_&v!~c@_Vg8?FJgQ*xZM7UED53Vp1(n55q~2VPws)`H=qi93RSRY zf#>HKBy|7@(MU-+PwbM%02vGM=yN7^@tR?H5ob?~f z&`KT_sQ;6$VM}izTOn>Et)z`?AREahvYBjQ|6(t&7uiefW%detbu;Qkwvk84V`Mvd zoIC;G@*4Yr{T#$mL7W!Ey@kE4Erg_CW`oyVAMl5YiV$$t0LZil)S|tGqB;L?uMZ&B zUn$le%c^JaLZYt~Um@`alnJ=&LlK9Q%NphK2L#9F;elXh*enh!1Te1&4TN$VxD>!B zNJhhcKrCGXR2js?S!5#ID)11N!CtZt*;>i7cm;c%-P=l@C;wt^unWS%Z2!&Ch+cMB z7bJU`yakCrd4;@6UL&uQH^`gpP4+f>hrP=VvcsFm+hjj^ha4d9lK0pV_6a-9&ayAq zzaeAnbX4RBSlbHrmXllbKMx1G1P9~XHM}>Yt}A07hZx)MHfFeT#0GAk=a5b8{Aq6AQXw)>5dwTS{rPcZkyG>|7_M>X!1nGa*U?;W#Qx zB8v{}mc$^M3ncQ{dG;lc_)28PbziR`J1gNxYY<4Ne|A>Zf=SIep+l|g&gBiE5HJ2& z@wA8z4>9#M`%foRRUdr+#h}T}P?-jTIZ&St^EH}|5z0O*+42@z%D(BSBhoTD9x9|z zXK2MOP-nP_ErdD)ok%A^tp6?hzCAppQy{;mQ`vXz`8{=o^83Fi34|x*X)TmH>2&sE z3!TA!f-{{^+E&Ml2{MF}osbL3mZc-@3=^oMvr+sOT2H;SfzF~n>ZbwP$S$&9*stt2 z_B*@8F0((j&^b`_OQrK@Go4Qtpk6_YAe6`pVjRRIh-nZ@;N3bg;PTb-filO)Np63U z$6YI)H|oXDkO#Y~`C|WgHzaUyN&#!@+7Ql9Autv{hvLxy9B{y~OUFl%$Z%Jk+tUPP zuC4@xti&TYbVzWzelPYz99`{$AY^i#tJ>?I+dnI#f3}lLshJ(93GtNffij6F9g0Q` zjj%@thhArR{ef|F^9DHw4Je&D+ErcX_0BBydHZMg>mQchU3599mflV8q4x%{G>BzE z9Nk7&(3SMQAeINQEr{&`U}S+>B4eHQxCm-kWsP-0STAabyP>d1R&8{I6hzJYF}n}S#w z#Ht{UX`@@{R{BT~tAjW;h`CS@^{2@qI0fW_^dJDb==Ds zQCO8P&{w(}|0;crz8=K-AWjHk$b_v!#pDx>9c=mg-SrMV*d5VB^e}xth!cajM-cY} zqC>ukSm7c15mM5R=`o?`Q3F-gF>%CI6*?7$t3Q}fNtE=etN+=RpT}g;v0P%0p1o50 z_8*Yjen~^FP^x0oa4_F4X7St}&eRG5P*|&iJ>Z865h_L}mNiya^L!0ob2u(uq0t+= zxzf?9)iDW+YE3Y}EeknQjw>k}4*4bYgo8t`@BJi`Sz$>|vBLK<_dFhEoj%;-s`bOW zQ1Z17wTX+5i{XSz8nAgY3WUmSSrb(8>ne%`VufB$%^{mTt#@~~4caGcP3zNn)u3Ox zA|o>kco;v!9pGVQAzsRa8zY5Th@(sa}#z}k^$<&B4 zYaQID+wYLWl$4F+n;^GozkYS_nrq92OrK%6coheCQmk;h12~ixK1?- z`B5WWrdkXasaC_$@;W#sZbKW39HKjVgw7n-W}#E8ud}G`JAugENMCP_ti-H$!#!IsBq1WrD@OaP1=EAAUKAlR_CQ z{e+&F(s8^h6!qKS(@B&Eau(jgJLWX~0@5WwkTdi%x`}>H&xLTr9K;rYk|0hF;*?Ev z3qDN0qW^|U>tTQuwk(LPL7WQJv}FRgr2Kaj5DOH4(+PM2#21qCNKA}?DWOwYph>v> z@;5z&ST5A_5d9H$;ZO8u!RCc(ZzxWk;l6{i5B*!G5NKQ&lOU_8nO3q2nOTLo) zF1Z|qqDT}VX;gHSB1#pdjUh*wQ5U0ri@GF5QX-W| z4bo((O`0a{Bkd>6mtHF!DlL>=CoPtal#Z58mexzX(z(*0^e*WN>3Zo#>1OFx>2~Q8 z(kG?6r2C|=Nsma6OV3JwlMz|0OfNIY5@kJQR#~ddF6%ApD;p_u%5Ik3E!!m9B6~#k zsBF9J3E7jfU9#P>J+i&B=VXUvM`Rz$K9U`ieIh$4J1sjSJ1aXUJ1_exS{kj39uPeu zdRnwMdQtQP(c7Y5k3Js#N%RlVm!dDrkz6j<%ai0*c|Uo&JX4-0FOV0?9rDrg5_ze7 zqI{CPQtp<|md};Xlh2nglr#Cw^1J2t%2&wmlRqF|Eng#FE8itQs*ovciabS;Vua#) z#c0JC#SMyTMT5exXjIHq%u~!)EK@w7Sf^O8XjN=bY*Rd@cwDhVu~YG;;w{Bd#aYD{ ziZ2ykD=sL$Ra{p5p@c%5(x|j4dn@}YGn84%Y~>JTq0*tePFbuRshpsktem2prmRxd zC}$}H%Gt^$WwUaD@($%{wW!)u8&#WCdsT;3r&SkYXpAxD>X_1)$uTox zX2#UTG{pE~0x=K8Y>jy|W_!$zn4K|C#q5oFJ?22ndohP%-j6vJ^GVFfnA0(5)Uj&2 zdWd?2dZc=^dW^bKJyTt$_Nr&8{pv>b9Ced=sd}0E4)tB?d(_L-E7kX_SE)Cucc}NP zPpN;8O^mh0I%02#oe(=Iwla2VEFW7N>yDinTNis*?2gz&vBzSM$DWA&G4?WtIm$(G zYA%+G<7`|$H-ekY&EcB3W^Ms@6Bp!ma?f!ubFXr*b8m8Qb4R%|+cQGy@ zu4mj;aUMS=`FF`{P!{Js6)FpAqkfFOGM{&xl_U zzbgLa_^;!C)ewzZ!)f9*T1}G1s!7xI*9_1M(&TBzXeu?lrdH$D%+%CrW^3kZ=4s|@ z7HXL0Hq8pnI?Zm)%bNX~1Df|VhcxeNKGB@ioYtJtoYkDuMrl*DMcS#_nc8}7gVwKY z)Xve~u3e>Fqg|_AuWi+C&_1SpQoBpLTf0a5s`f4Ie(eG6VeJv^huV*{pK32?f6)G< zy{NsU{X>U!RHxDzb&0wjx+Gm6UAit)m#rJ18>AbebLfWaM(D2Bjn`G`rs}5YcwMc| zt(&Q9)GgHAuDeIKT(?rUTDL~GR`;-Ohi$6L2uOe&?o5!>4)ft>&NOF z^+Ek2{jK^X`rGvD^y~Gl`VIO``Yrk$`aSx+`seh|>tE2nqkmU_P=8o|O8=?;GyUiK z@AW_Gf7bt!AWP6D=o1VHi3vFg0~2x+@)NE~a3oxpP@FI_p*&$>!lH!75_TsXPdIIm z8MFqgA=O|v^fvT0q#H5~{S8A6g$9RVxM750q@l!cgQ3iDqhX0*rD2=lgy9>b(r7Ry z8O_FIqs^FR>|^X_tT0v?y~bHazp>Fc$Jk_SHZCanl~>v40BTYARzH1)LfOzGLH=OaCz?)gm5 zXM65TDo=7H-I(M_s!wW2@+CDVEl9d4DVVe<>DHw6Nv|gzNxEc`nlz>)Qy)`~X`m_B zlyADqP^k2TTF{hOHIp6cbM)oJz!dGT4P#kdf2qZw8ON= z^s4EA={?gS)BC0mOeamJO=nDJP3KJKP2ZV*Ge?`_%o?-KoM1MZQ_Q{0HglS}kGY?D zpt;aI+C0fzZRX9jX195!Ibfb`o@<_Go^M`gUSeKhUTF~4g*Xg+K{Vm@I$Z9Zc@YyOYt0MR?9BSJC@HZza*=ZZOKEDMOWqOJ`#gpPqnU(Tj${Q&^q+GH}tnpT})n@H&?Ptxj4zlK3ueJ`c7Fe&h zjKZmY-Ywa&ISS?61CvIecotan;BTX$KXwLWis(fW$@ZR-K+LF@b053DDx zpIa|jf3{WHoVFRZ*|r6?TWt5**4bKY8*H0xkJuiwJz?8td%^aS?N!?wwzq8iZ3k@M z+YRC+5pJ Date: Tue, 18 Oct 2016 10:18:46 -0400 Subject: [PATCH 05/52] Add test for captions #118 --- XCDYouTubeKit Tests/XCDYouTubeVideoTestCase.m | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/XCDYouTubeKit Tests/XCDYouTubeVideoTestCase.m b/XCDYouTubeKit Tests/XCDYouTubeVideoTestCase.m index 307ee545a..9f6599497 100644 --- a/XCDYouTubeKit Tests/XCDYouTubeVideoTestCase.m +++ b/XCDYouTubeKit Tests/XCDYouTubeVideoTestCase.m @@ -84,4 +84,21 @@ - (void) testDescription XCTAssertTrue([videoA.debugDescription rangeOfString:videoA.description].location != NSNotFound && videoA.debugDescription.length > videoA.description.length); } +- (void)testCaptions { + + /* This video: https://www.youtube.com/watch?v=CQY3KUR3VzM + + Has two captions an auto generated one and one that was provided by the uploader. This test ensures that both the `captionURLs` and the `autoGeneratedCaptionURLs` are not `nil`. The test auto ensures that both of the two English captions are not identical. + + */ + NSBundle *testBundle = [NSBundle bundleForClass:[self class]]; + + XCDYouTubeVideo *video = [[XCDYouTubeVideo alloc]initWithIdentifier:@"CQY3KUR3VzM" info:[NSDictionary dictionaryWithContentsOfURL:[testBundle URLForResource:@"testInfo" withExtension:@"plist"]] playerScript:nil response:nil error:nil]; + + XCTAssertNotNil(video); + XCTAssertNotNil(video.captionURLs); + XCTAssertNotNil(video.autoGeneratedCaptionURLs); + XCTAssertNotEqual(video.autoGeneratedCaptionURLs[@"en"], video.captionURLs[@"en"]); +} + @end From 2e90db1809702fd82acd60083383c3bb3877617c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sone=C3=A9=20John?= Date: Tue, 18 Oct 2016 10:32:34 -0400 Subject: [PATCH 06/52] Add documentation --- XCDYouTubeKit/XCDYouTubeVideo.h | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/XCDYouTubeKit/XCDYouTubeVideo.h b/XCDYouTubeKit/XCDYouTubeVideo.h index b1c0b9b28..dfc8564a4 100644 --- a/XCDYouTubeKit/XCDYouTubeVideo.h +++ b/XCDYouTubeKit/XCDYouTubeVideo.h @@ -103,12 +103,29 @@ extern NSString *const XCDYouTubeVideoQualityHTTPLiveStreaming; @property (nonatomic, readonly) NSDictionary *streamURLs; #endif +/** + + * A dictionary of caption URLs. + * + * The keys are the [language codes](https://www.loc.gov/standards/iso639-2/php/code_list.php) values as `NSString` objects. The values are the caption URLs as `NSURL` objects. + * + * You should not store the URLs for later use since they have a limited lifetime. + */ #if __has_feature(objc_generics) @property (nonatomic, readonly, nullable) NSDictionary *captionURLs; #else @property (nonatomic, readonly, nullable) NSDictionary *captionURLs; #endif +/** + + * A dictionary of auto generated caption URLs. + * + * The keys are the [language codes](https://www.loc.gov/standards/iso639-2/php/code_list.php) values as `NSString` objects. The values are the caption URLs as `NSURL` objects. These URLs are the ones that were automatically generated by YouTube. + * + * You should not store the URLs for later use since they have a limited lifetime. + */ + #if __has_feature(objc_generics) @property (nonatomic, readonly, nullable) NSDictionary *autoGeneratedCaptionURLs; #else From ad566de7f372b944efa37e44d623ee03e8fcffcb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sone=C3=A9=20John?= Date: Tue, 18 Oct 2016 10:43:22 -0400 Subject: [PATCH 07/52] Point out XML format in documentation --- XCDYouTubeKit/XCDYouTubeVideo.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/XCDYouTubeKit/XCDYouTubeVideo.h b/XCDYouTubeKit/XCDYouTubeVideo.h index dfc8564a4..d4fc7c9d5 100644 --- a/XCDYouTubeKit/XCDYouTubeVideo.h +++ b/XCDYouTubeKit/XCDYouTubeVideo.h @@ -105,7 +105,7 @@ extern NSString *const XCDYouTubeVideoQualityHTTPLiveStreaming; /** - * A dictionary of caption URLs. + * A dictionary of caption URLs (XML). * * The keys are the [language codes](https://www.loc.gov/standards/iso639-2/php/code_list.php) values as `NSString` objects. The values are the caption URLs as `NSURL` objects. * @@ -119,7 +119,7 @@ extern NSString *const XCDYouTubeVideoQualityHTTPLiveStreaming; /** - * A dictionary of auto generated caption URLs. + * A dictionary of auto generated caption URLs (XML). * * The keys are the [language codes](https://www.loc.gov/standards/iso639-2/php/code_list.php) values as `NSString` objects. The values are the caption URLs as `NSURL` objects. These URLs are the ones that were automatically generated by YouTube. * From ae2ed2e78f3a5b8ef929c23413581a5b69c2319a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sone=C3=A9=20John?= Date: Fri, 21 Oct 2016 14:49:42 -0400 Subject: [PATCH 08/52] Only assign value once the dictionary count is more than 0 #118 --- XCDYouTubeKit/XCDYouTubeVideo.m | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/XCDYouTubeKit/XCDYouTubeVideo.m b/XCDYouTubeKit/XCDYouTubeVideo.m index ac9b5e66d..c66216fbf 100644 --- a/XCDYouTubeKit/XCDYouTubeVideo.m +++ b/XCDYouTubeKit/XCDYouTubeVideo.m @@ -160,8 +160,15 @@ - (instancetype) initWithIdentifier:(NSString *)identifier info:(NSDictionary *) } - _captionURLs = [captionURLs copy]; - _autoGeneratedCaptionURLs = [autoGeneratedCaptionURLs copy]; + if (captionURLs.count > 0) { + + _captionURLs = [captionURLs copy]; + } + + if (autoGeneratedCaptionURLs.count > 0) { + + _autoGeneratedCaptionURLs = [autoGeneratedCaptionURLs copy]; + } for (NSString *streamQuery in streamQueries) { From 5c67c8b09d4bbec7ee3cf838d8793010df7fe2dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sone=C3=A9=20John?= Date: Mon, 7 Nov 2016 12:03:14 -0400 Subject: [PATCH 09/52] Prevent captions with `und` language code from being added to dictionary --- XCDYouTubeKit Tests/XCDYouTubeVideoTestCase.m | 14 ++++++++++++++ XCDYouTubeKit.xcodeproj/project.pbxproj | 4 ++++ XCDYouTubeKit/XCDYouTubeVideo.m | 4 ++++ 3 files changed, 22 insertions(+) diff --git a/XCDYouTubeKit Tests/XCDYouTubeVideoTestCase.m b/XCDYouTubeKit Tests/XCDYouTubeVideoTestCase.m index 9f6599497..6ffb80b3e 100644 --- a/XCDYouTubeKit Tests/XCDYouTubeVideoTestCase.m +++ b/XCDYouTubeKit Tests/XCDYouTubeVideoTestCase.m @@ -101,4 +101,18 @@ - (void)testCaptions { XCTAssertNotEqual(video.autoGeneratedCaptionURLs[@"en"], video.captionURLs[@"en"]); } +- (void)testUndeterminedCaptionLanguageCode { + + /*This video: https://www.youtube.com/watch?v=RgKAFK5djSk Contains an undertermined language code according to YouTube and should not be included in the `captionURLs` */ + + NSBundle *testBundle = [NSBundle bundleForClass:[self class]]; + + XCDYouTubeVideo *video = [[XCDYouTubeVideo alloc]initWithIdentifier:@"RgKAFK5djSk" info:[NSDictionary dictionaryWithContentsOfURL:[testBundle URLForResource:@"testInfo_undetermined_language_code" withExtension:@"plist"]] playerScript:nil response:nil error:nil]; + + XCTAssertNotNil(video); + XCTAssertNil(video.captionURLs[@"und"]); + XCTAssertNotNil(video.captionURLs); + +} + @end diff --git a/XCDYouTubeKit.xcodeproj/project.pbxproj b/XCDYouTubeKit.xcodeproj/project.pbxproj index 81c3cd111..410f18f83 100644 --- a/XCDYouTubeKit.xcodeproj/project.pbxproj +++ b/XCDYouTubeKit.xcodeproj/project.pbxproj @@ -8,6 +8,7 @@ /* Begin PBXBuildFile section */ 0116F7C91DB663A00031004C /* testInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 0116F7C81DB663A00031004C /* testInfo.plist */; }; + 019FEEFA1DD0DA9000D40F64 /* testInfo_undetermined_language_code.plist in Resources */ = {isa = PBXBuildFile; fileRef = 019FEEF91DD0DA9000D40F64 /* testInfo_undetermined_language_code.plist */; }; C20F57A818817D5400EDBFB0 /* XCDYouTubeClientTestCase.m in Sources */ = {isa = PBXBuildFile; fileRef = C20F57A718817D5400EDBFB0 /* XCDYouTubeClientTestCase.m */; }; C2142F2A19644779000FA9C0 /* XCDYouTubeKit.h in Headers */ = {isa = PBXBuildFile; fileRef = C2D0CBAC19122A8F00DA8CD4 /* XCDYouTubeKit.h */; settings = {ATTRIBUTES = (Public, ); }; }; C215BEB91BE2E5B500F9783B /* XCDYouTubeVideoWebpage.h in Headers */ = {isa = PBXBuildFile; fileRef = C2386B1C1974036300646123 /* XCDYouTubeVideoWebpage.h */; }; @@ -96,6 +97,7 @@ /* Begin PBXFileReference section */ 0116F7C81DB663A00031004C /* testInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = testInfo.plist; sourceTree = ""; }; + 019FEEF91DD0DA9000D40F64 /* testInfo_undetermined_language_code.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = testInfo_undetermined_language_code.plist; sourceTree = ""; }; C20F579B18817D5400EDBFB0 /* XCDYouTubeKit.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = XCDYouTubeKit.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; C20F57A718817D5400EDBFB0 /* XCDYouTubeClientTestCase.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XCDYouTubeClientTestCase.m; sourceTree = ""; }; C22263371B33FDE000BA6719 /* XCTestWorkarounds.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XCTestWorkarounds.m; sourceTree = ""; }; @@ -167,6 +169,7 @@ isa = PBXGroup; children = ( 0116F7C81DB663A00031004C /* testInfo.plist */, + 019FEEF91DD0DA9000D40F64 /* testInfo_undetermined_language_code.plist */, C2D0CC5C19126E1200DA8CD4 /* Cassettes */, C2D0CC3A1912673500DA8CD4 /* VCRURLConnection */, C20F57A718817D5400EDBFB0 /* XCDYouTubeClientTestCase.m */, @@ -383,6 +386,7 @@ files = ( 0116F7C91DB663A00031004C /* testInfo.plist in Resources */, C2D0CC5D19126E1200DA8CD4 /* Cassettes in Resources */, + 019FEEFA1DD0DA9000D40F64 /* testInfo_undetermined_language_code.plist in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/XCDYouTubeKit/XCDYouTubeVideo.m b/XCDYouTubeKit/XCDYouTubeVideo.m index c66216fbf..ae9f5c588 100644 --- a/XCDYouTubeKit/XCDYouTubeVideo.m +++ b/XCDYouTubeKit/XCDYouTubeVideo.m @@ -147,6 +147,10 @@ - (instancetype) initWithIdentifier:(NSString *)identifier info:(NSDictionary *) if (captionURLString && languageCode) { + if ([languageCode isEqualToString:@"und"]) { + //Skip because this is a special code than is used to indicate that the lanauage code is undetermined. + continue; + } if([captionVersion hasPrefix:@"a"]) { //Indicates the caption was auto generated autoGeneratedCaptionURLs[languageCode] = [NSURL URLWithString:captionURLString]; From f431ba03a6a6f57822558d2d813e445c7f757e83 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sone=C3=A9=20John?= Date: Mon, 7 Nov 2016 12:34:20 -0400 Subject: [PATCH 10/52] Add missing test plist file --- .../testInfo_undetermined_language_code.plist | 172 ++++++++++++++++++ XCDYouTubeKit.xcodeproj/project.pbxproj | 8 +- 2 files changed, 176 insertions(+), 4 deletions(-) create mode 100644 XCDYouTubeKit Tests/testInfo_undetermined_language_code.plist diff --git a/XCDYouTubeKit Tests/testInfo_undetermined_language_code.plist b/XCDYouTubeKit Tests/testInfo_undetermined_language_code.plist new file mode 100644 index 000000000..f741f272b --- /dev/null +++ b/XCDYouTubeKit Tests/testInfo_undetermined_language_code.plist @@ -0,0 +1,172 @@ + + + + + account_playback_token + QUFFLUhqbnc5UHR3bXFfQU90dTUyZGN0dEtWS0JPaUpqZ3xBQ3Jtc0tsbFgwb2tlQ0FMWlhhYjNhQ0kwNzF3S1lHUDNvbTdSWS11U09GTm1nSkpoZUVnY1ktejM0SDI1RDR1c2hxQU5PdnRNTlRaSTRudFRzaC02bWJkY2s4MW5URTNXRnNVbkRKYk9VN0ZETElRMDRjTEtlMA== + adaptive_fmts + url=https%3A%2F%2Fr1---sn-aphx-cbpe.googlevideo.com%2Fvideoplayback%3Fid%3Do-ANFjNPF7nCfMlIgCBQOFsQ-p7Watp3VlZr9sTe7rxsd0%26source%3Dyoutube%26dur%3D237.362%26ip%3D162.252.188.250%26keepalive%3Dyes%26lmt%3D1463797346842495%26itag%3D137%26requiressl%3Dyes%26sparams%3Dclen%252Cdur%252Cei%252Cgir%252Cid%252Cinitcwndbps%252Cip%252Cipbits%252Citag%252Ckeepalive%252Clmt%252Cmime%252Cmm%252Cmn%252Cms%252Cmv%252Cpl%252Crequiressl%252Csource%252Cupn%252Cexpire%26initcwndbps%3D562500%26ipbits%3D0%26expire%3D1478555392%26mime%3Dvideo%252Fmp4%26upn%3DycD_8OsgLHY%26gir%3Dyes%26mt%3D1478533567%26pl%3D26%26mv%3Dm%26ei%3DoKIgWM6eEovOWbnHq_gB%26ms%3Dau%26signature%3D6E2614216A4D41EA90BE8EFDEAD32F7AFE29B5EF.852042386A022A5206279F6BFFEC6DDE50B70FCD%26clen%3D55443685%26key%3Dyt6%26mm%3D31%26mn%3Dsn-aphx-cbpe&lmt=1463797346842495&type=video%2Fmp4%3B codecs%3D%22avc1.640028%22&projection_type=1&index=715-1286&itag=137&quality_label=1080p&bitrate=2678685&size=1920x1080&xtags=&init=0-714&clen=55443685&fps=24,url=https%3A%2F%2Fr1---sn-aphx-cbpe.googlevideo.com%2Fvideoplayback%3Fid%3Do-ANFjNPF7nCfMlIgCBQOFsQ-p7Watp3VlZr9sTe7rxsd0%26source%3Dyoutube%26dur%3D237.320%26ip%3D162.252.188.250%26keepalive%3Dyes%26lmt%3D1449572197116515%26itag%3D248%26requiressl%3Dyes%26sparams%3Dclen%252Cdur%252Cei%252Cgir%252Cid%252Cinitcwndbps%252Cip%252Cipbits%252Citag%252Ckeepalive%252Clmt%252Cmime%252Cmm%252Cmn%252Cms%252Cmv%252Cpl%252Crequiressl%252Csource%252Cupn%252Cexpire%26initcwndbps%3D562500%26ipbits%3D0%26expire%3D1478555392%26mime%3Dvideo%252Fwebm%26upn%3DycD_8OsgLHY%26gir%3Dyes%26mt%3D1478533567%26pl%3D26%26mv%3Dm%26ei%3DoKIgWM6eEovOWbnHq_gB%26ms%3Dau%26signature%3DD40176D4813E39B53312F34F7B02E6389AC890A6.B70CB3D9147957BC2A17DDEFFF6A3F3FBC1B99A1%26clen%3D44989679%26key%3Dyt6%26mm%3D31%26mn%3Dsn-aphx-cbpe&lmt=1449572197116515&type=video%2Fwebm%3B codecs%3D%22vp9%22&projection_type=1&index=243-1026&itag=248&quality_label=1080p&bitrate=2711902&size=1920x1080&xtags=&init=0-242&clen=44989679&fps=24,url=https%3A%2F%2Fr1---sn-aphx-cbpe.googlevideo.com%2Fvideoplayback%3Fid%3Do-ANFjNPF7nCfMlIgCBQOFsQ-p7Watp3VlZr9sTe7rxsd0%26source%3Dyoutube%26dur%3D237.362%26ip%3D162.252.188.250%26keepalive%3Dyes%26lmt%3D1463797732276608%26itag%3D136%26requiressl%3Dyes%26sparams%3Dclen%252Cdur%252Cei%252Cgir%252Cid%252Cinitcwndbps%252Cip%252Cipbits%252Citag%252Ckeepalive%252Clmt%252Cmime%252Cmm%252Cmn%252Cms%252Cmv%252Cpl%252Crequiressl%252Csource%252Cupn%252Cexpire%26initcwndbps%3D562500%26ipbits%3D0%26expire%3D1478555392%26mime%3Dvideo%252Fmp4%26upn%3DycD_8OsgLHY%26gir%3Dyes%26mt%3D1478533567%26pl%3D26%26mv%3Dm%26ei%3DoKIgWM6eEovOWbnHq_gB%26ms%3Dau%26signature%3D3BE998B8CE2BF6FC0DF58B5D6E0F8EEA1397CCDB.8B4DB66F5F2E484D96BA26645D4C2C44AC0DF08A%26clen%3D29250609%26key%3Dyt6%26mm%3D31%26mn%3Dsn-aphx-cbpe&lmt=1463797732276608&type=video%2Fmp4%3B codecs%3D%22avc1.4d401f%22&projection_type=1&index=713-1284&itag=136&quality_label=720p&bitrate=1410094&size=1280x720&xtags=&init=0-712&clen=29250609&fps=24,url=https%3A%2F%2Fr1---sn-aphx-cbpe.googlevideo.com%2Fvideoplayback%3Fid%3Do-ANFjNPF7nCfMlIgCBQOFsQ-p7Watp3VlZr9sTe7rxsd0%26source%3Dyoutube%26dur%3D237.320%26ip%3D162.252.188.250%26keepalive%3Dyes%26lmt%3D1449573017318199%26itag%3D247%26requiressl%3Dyes%26sparams%3Dclen%252Cdur%252Cei%252Cgir%252Cid%252Cinitcwndbps%252Cip%252Cipbits%252Citag%252Ckeepalive%252Clmt%252Cmime%252Cmm%252Cmn%252Cms%252Cmv%252Cpl%252Crequiressl%252Csource%252Cupn%252Cexpire%26initcwndbps%3D562500%26ipbits%3D0%26expire%3D1478555392%26mime%3Dvideo%252Fwebm%26upn%3DycD_8OsgLHY%26gir%3Dyes%26mt%3D1478533567%26pl%3D26%26mv%3Dm%26ei%3DoKIgWM6eEovOWbnHq_gB%26ms%3Dau%26signature%3D0403A9459767E1A1506A471F05ADEDF48D608F21.7730930F3AB92B1D8A04DF6CEAA8D966AA6695C8%26clen%3D23491746%26key%3Dyt6%26mm%3D31%26mn%3Dsn-aphx-cbpe&lmt=1449573017318199&type=video%2Fwebm%3B codecs%3D%22vp9%22&projection_type=1&index=243-1012&itag=247&quality_label=720p&bitrate=1363485&size=1280x720&xtags=&init=0-242&clen=23491746&fps=24,url=https%3A%2F%2Fr1---sn-aphx-cbpe.googlevideo.com%2Fvideoplayback%3Fid%3Do-ANFjNPF7nCfMlIgCBQOFsQ-p7Watp3VlZr9sTe7rxsd0%26source%3Dyoutube%26dur%3D237.362%26ip%3D162.252.188.250%26keepalive%3Dyes%26lmt%3D1463797731876530%26itag%3D135%26requiressl%3Dyes%26sparams%3Dclen%252Cdur%252Cei%252Cgir%252Cid%252Cinitcwndbps%252Cip%252Cipbits%252Citag%252Ckeepalive%252Clmt%252Cmime%252Cmm%252Cmn%252Cms%252Cmv%252Cpl%252Crequiressl%252Csource%252Cupn%252Cexpire%26initcwndbps%3D562500%26ipbits%3D0%26expire%3D1478555392%26mime%3Dvideo%252Fmp4%26upn%3DycD_8OsgLHY%26gir%3Dyes%26mt%3D1478533567%26pl%3D26%26mv%3Dm%26ei%3DoKIgWM6eEovOWbnHq_gB%26ms%3Dau%26signature%3D59763855B42DB2C2D9662BE7DA0C060AA13D46E1.64E370B27F25138D1497802231C26BA91FE038CF%26clen%3D15240890%26key%3Dyt6%26mm%3D31%26mn%3Dsn-aphx-cbpe&lmt=1463797731876530&type=video%2Fmp4%3B codecs%3D%22avc1.4d401e%22&projection_type=1&index=713-1284&itag=135&quality_label=480p&bitrate=771074&size=854x480&xtags=&init=0-712&clen=15240890&fps=24,url=https%3A%2F%2Fr1---sn-aphx-cbpe.googlevideo.com%2Fvideoplayback%3Fid%3Do-ANFjNPF7nCfMlIgCBQOFsQ-p7Watp3VlZr9sTe7rxsd0%26source%3Dyoutube%26dur%3D237.320%26ip%3D162.252.188.250%26keepalive%3Dyes%26lmt%3D1449573015368625%26itag%3D244%26requiressl%3Dyes%26sparams%3Dclen%252Cdur%252Cei%252Cgir%252Cid%252Cinitcwndbps%252Cip%252Cipbits%252Citag%252Ckeepalive%252Clmt%252Cmime%252Cmm%252Cmn%252Cms%252Cmv%252Cpl%252Crequiressl%252Csource%252Cupn%252Cexpire%26initcwndbps%3D562500%26ipbits%3D0%26expire%3D1478555392%26mime%3Dvideo%252Fwebm%26upn%3DycD_8OsgLHY%26gir%3Dyes%26mt%3D1478533567%26pl%3D26%26mv%3Dm%26ei%3DoKIgWM6eEovOWbnHq_gB%26ms%3Dau%26signature%3D241BE3A08B9DBF77CB58CB476F66F57FCF0A5D05.8FD283CB6739EB46F9A4CB147283E3DB167E5DD9%26clen%3D12473006%26key%3Dyt6%26mm%3D31%26mn%3Dsn-aphx-cbpe&lmt=1449573015368625&type=video%2Fwebm%3B codecs%3D%22vp9%22&projection_type=1&index=243-998&itag=244&quality_label=480p&bitrate=712638&size=854x480&xtags=&init=0-242&clen=12473006&fps=24,url=https%3A%2F%2Fr1---sn-aphx-cbpe.googlevideo.com%2Fvideoplayback%3Fid%3Do-ANFjNPF7nCfMlIgCBQOFsQ-p7Watp3VlZr9sTe7rxsd0%26source%3Dyoutube%26dur%3D237.362%26ip%3D162.252.188.250%26keepalive%3Dyes%26lmt%3D1463797731877388%26itag%3D134%26requiressl%3Dyes%26sparams%3Dclen%252Cdur%252Cei%252Cgir%252Cid%252Cinitcwndbps%252Cip%252Cipbits%252Citag%252Ckeepalive%252Clmt%252Cmime%252Cmm%252Cmn%252Cms%252Cmv%252Cpl%252Crequiressl%252Csource%252Cupn%252Cexpire%26initcwndbps%3D562500%26ipbits%3D0%26expire%3D1478555392%26mime%3Dvideo%252Fmp4%26upn%3DycD_8OsgLHY%26gir%3Dyes%26mt%3D1478533567%26pl%3D26%26mv%3Dm%26ei%3DoKIgWM6eEovOWbnHq_gB%26ms%3Dau%26signature%3D0F7BD452D01519007EC001FAABFDA0EE6ED25A54.54FC48A52286DFDCA95FF7AD8A3F5B0DCA80A6B8%26clen%3D7405303%26key%3Dyt6%26mm%3D31%26mn%3Dsn-aphx-cbpe&lmt=1463797731877388&type=video%2Fmp4%3B codecs%3D%22avc1.4d401e%22&projection_type=1&index=713-1284&itag=134&quality_label=360p&bitrate=375135&size=640x360&xtags=&init=0-712&clen=7405303&fps=24,url=https%3A%2F%2Fr1---sn-aphx-cbpe.googlevideo.com%2Fvideoplayback%3Fid%3Do-ANFjNPF7nCfMlIgCBQOFsQ-p7Watp3VlZr9sTe7rxsd0%26source%3Dyoutube%26dur%3D237.320%26ip%3D162.252.188.250%26keepalive%3Dyes%26lmt%3D1449573016016815%26itag%3D243%26requiressl%3Dyes%26sparams%3Dclen%252Cdur%252Cei%252Cgir%252Cid%252Cinitcwndbps%252Cip%252Cipbits%252Citag%252Ckeepalive%252Clmt%252Cmime%252Cmm%252Cmn%252Cms%252Cmv%252Cpl%252Crequiressl%252Csource%252Cupn%252Cexpire%26initcwndbps%3D562500%26ipbits%3D0%26expire%3D1478555392%26mime%3Dvideo%252Fwebm%26upn%3DycD_8OsgLHY%26gir%3Dyes%26mt%3D1478533567%26pl%3D26%26mv%3Dm%26ei%3DoKIgWM6eEovOWbnHq_gB%26ms%3Dau%26signature%3D667BFF0322715381483ED32630BE9A80C5FBC278.C5889A11B96D9B4EB1D2948B472F2F8AA08511EF%26clen%3D7721603%26key%3Dyt6%26mm%3D31%26mn%3Dsn-aphx-cbpe&lmt=1449573016016815&type=video%2Fwebm%3B codecs%3D%22vp9%22&projection_type=1&index=243-998&itag=243&quality_label=360p&bitrate=424293&size=640x360&xtags=&init=0-242&clen=7721603&fps=24,url=https%3A%2F%2Fr1---sn-aphx-cbpe.googlevideo.com%2Fvideoplayback%3Fid%3Do-ANFjNPF7nCfMlIgCBQOFsQ-p7Watp3VlZr9sTe7rxsd0%26source%3Dyoutube%26dur%3D237.362%26ip%3D162.252.188.250%26keepalive%3Dyes%26lmt%3D1463797731776519%26itag%3D133%26requiressl%3Dyes%26sparams%3Dclen%252Cdur%252Cei%252Cgir%252Cid%252Cinitcwndbps%252Cip%252Cipbits%252Citag%252Ckeepalive%252Clmt%252Cmime%252Cmm%252Cmn%252Cms%252Cmv%252Cpl%252Crequiressl%252Csource%252Cupn%252Cexpire%26initcwndbps%3D562500%26ipbits%3D0%26expire%3D1478555392%26mime%3Dvideo%252Fmp4%26upn%3DycD_8OsgLHY%26gir%3Dyes%26mt%3D1478533567%26pl%3D26%26mv%3Dm%26ei%3DoKIgWM6eEovOWbnHq_gB%26ms%3Dau%26signature%3D9E83C63DF86471FB974D7F2CB948C72F2DB0F4E4.864BF44FCA177B967FCC28D2D2CCFD13D911E54D%26clen%3D7198459%26key%3Dyt6%26mm%3D31%26mn%3Dsn-aphx-cbpe&lmt=1463797731776519&type=video%2Fmp4%3B codecs%3D%22avc1.4d4015%22&projection_type=1&index=713-1284&itag=133&quality_label=240p&bitrate=253425&size=426x240&xtags=&init=0-712&clen=7198459&fps=24,url=https%3A%2F%2Fr1---sn-aphx-cbpe.googlevideo.com%2Fvideoplayback%3Fid%3Do-ANFjNPF7nCfMlIgCBQOFsQ-p7Watp3VlZr9sTe7rxsd0%26source%3Dyoutube%26dur%3D237.320%26ip%3D162.252.188.250%26keepalive%3Dyes%26lmt%3D1449573015228252%26itag%3D242%26requiressl%3Dyes%26sparams%3Dclen%252Cdur%252Cei%252Cgir%252Cid%252Cinitcwndbps%252Cip%252Cipbits%252Citag%252Ckeepalive%252Clmt%252Cmime%252Cmm%252Cmn%252Cms%252Cmv%252Cpl%252Crequiressl%252Csource%252Cupn%252Cexpire%26initcwndbps%3D562500%26ipbits%3D0%26expire%3D1478555392%26mime%3Dvideo%252Fwebm%26upn%3DycD_8OsgLHY%26gir%3Dyes%26mt%3D1478533567%26pl%3D26%26mv%3Dm%26ei%3DoKIgWM6eEovOWbnHq_gB%26ms%3Dau%26signature%3D1EAE0C86ADF2CFA58BC943E5AE1EC7AFAAD33C49.6E6AF6D4778916F3C813038DB2FEBE58233C9502%26clen%3D4313145%26key%3Dyt6%26mm%3D31%26mn%3Dsn-aphx-cbpe&lmt=1449573015228252&type=video%2Fwebm%3B codecs%3D%22vp9%22&projection_type=1&index=242-996&itag=242&quality_label=240p&bitrate=235876&size=426x240&xtags=&init=0-241&clen=4313145&fps=24,url=https%3A%2F%2Fr1---sn-aphx-cbpe.googlevideo.com%2Fvideoplayback%3Fid%3Do-ANFjNPF7nCfMlIgCBQOFsQ-p7Watp3VlZr9sTe7rxsd0%26source%3Dyoutube%26dur%3D237.362%26ip%3D162.252.188.250%26keepalive%3Dyes%26lmt%3D1463797731677089%26itag%3D160%26requiressl%3Dyes%26sparams%3Dclen%252Cdur%252Cei%252Cgir%252Cid%252Cinitcwndbps%252Cip%252Cipbits%252Citag%252Ckeepalive%252Clmt%252Cmime%252Cmm%252Cmn%252Cms%252Cmv%252Cpl%252Crequiressl%252Csource%252Cupn%252Cexpire%26initcwndbps%3D562500%26ipbits%3D0%26expire%3D1478555392%26mime%3Dvideo%252Fmp4%26upn%3DycD_8OsgLHY%26gir%3Dyes%26mt%3D1478533567%26pl%3D26%26mv%3Dm%26ei%3DoKIgWM6eEovOWbnHq_gB%26ms%3Dau%26signature%3DA25F49EFF409D2D26ED3FB6894BB5FC4E7EABEF5.3B71B8971E88EC057A0EF9F570599760B3F046CD%26clen%3D3209820%26key%3Dyt6%26mm%3D31%26mn%3Dsn-aphx-cbpe&lmt=1463797731677089&type=video%2Fmp4%3B codecs%3D%22avc1.4d400c%22&projection_type=1&index=675-1246&itag=160&quality_label=144p&bitrate=112251&size=256x144&xtags=&init=0-674&clen=3209820&fps=24,url=https%3A%2F%2Fr1---sn-aphx-cbpe.googlevideo.com%2Fvideoplayback%3Fid%3Do-ANFjNPF7nCfMlIgCBQOFsQ-p7Watp3VlZr9sTe7rxsd0%26source%3Dyoutube%26dur%3D237.320%26ip%3D162.252.188.250%26keepalive%3Dyes%26lmt%3D1449573015099569%26itag%3D278%26requiressl%3Dyes%26sparams%3Dclen%252Cdur%252Cei%252Cgir%252Cid%252Cinitcwndbps%252Cip%252Cipbits%252Citag%252Ckeepalive%252Clmt%252Cmime%252Cmm%252Cmn%252Cms%252Cmv%252Cpl%252Crequiressl%252Csource%252Cupn%252Cexpire%26initcwndbps%3D562500%26ipbits%3D0%26expire%3D1478555392%26mime%3Dvideo%252Fwebm%26upn%3DycD_8OsgLHY%26gir%3Dyes%26mt%3D1478533567%26pl%3D26%26mv%3Dm%26ei%3DoKIgWM6eEovOWbnHq_gB%26ms%3Dau%26signature%3DAD84BCEBB9BE33B01DD8D1FE77C150B76E32164C.1DA4D9C07496F60DD7617100C4CFD318D3D28ADC%26clen%3D2606036%26key%3Dyt6%26mm%3D31%26mn%3Dsn-aphx-cbpe&lmt=1449573015099569&type=video%2Fwebm%3B codecs%3D%22vp9%22&projection_type=1&index=242-996&itag=278&quality_label=144p&bitrate=107014&size=256x144&xtags=&init=0-241&clen=2606036&fps=12,lmt=1463797288150330&url=https%3A%2F%2Fr1---sn-aphx-cbpe.googlevideo.com%2Fvideoplayback%3Fid%3Do-ANFjNPF7nCfMlIgCBQOFsQ-p7Watp3VlZr9sTe7rxsd0%26source%3Dyoutube%26dur%3D237.424%26ip%3D162.252.188.250%26keepalive%3Dyes%26lmt%3D1463797288150330%26itag%3D140%26requiressl%3Dyes%26sparams%3Dclen%252Cdur%252Cei%252Cgir%252Cid%252Cinitcwndbps%252Cip%252Cipbits%252Citag%252Ckeepalive%252Clmt%252Cmime%252Cmm%252Cmn%252Cms%252Cmv%252Cpl%252Crequiressl%252Csource%252Cupn%252Cexpire%26initcwndbps%3D562500%26ipbits%3D0%26expire%3D1478555392%26mime%3Daudio%252Fmp4%26upn%3DycD_8OsgLHY%26gir%3Dyes%26mt%3D1478533567%26pl%3D26%26mv%3Dm%26ei%3DoKIgWM6eEovOWbnHq_gB%26ms%3Dau%26signature%3D8B0B6ADAA01D5688F0BD6EB854391E44C0E21FEC.AA315A9E39D48ED47196194E3881FB5AE9E1B804%26clen%3D3771517%26key%3Dyt6%26mm%3D31%26mn%3Dsn-aphx-cbpe&projection_type=1&bitrate=128030&xtags=&index=592-911&init=0-591&clen=3771517&itag=140&type=audio%2Fmp4%3B codecs%3D%22mp4a.40.2%22,lmt=1449571952282400&url=https%3A%2F%2Fr1---sn-aphx-cbpe.googlevideo.com%2Fvideoplayback%3Fid%3Do-ANFjNPF7nCfMlIgCBQOFsQ-p7Watp3VlZr9sTe7rxsd0%26source%3Dyoutube%26dur%3D237.353%26ip%3D162.252.188.250%26keepalive%3Dyes%26lmt%3D1449571952282400%26itag%3D171%26requiressl%3Dyes%26sparams%3Dclen%252Cdur%252Cei%252Cgir%252Cid%252Cinitcwndbps%252Cip%252Cipbits%252Citag%252Ckeepalive%252Clmt%252Cmime%252Cmm%252Cmn%252Cms%252Cmv%252Cpl%252Crequiressl%252Csource%252Cupn%252Cexpire%26initcwndbps%3D562500%26ipbits%3D0%26expire%3D1478555392%26mime%3Daudio%252Fwebm%26upn%3DycD_8OsgLHY%26gir%3Dyes%26mt%3D1478533567%26pl%3D26%26mv%3Dm%26ei%3DoKIgWM6eEovOWbnHq_gB%26ms%3Dau%26signature%3D8EF4C60A4F7613DEDA12A8FAA4E00AF2B6150CD4.35FDB65ACCD6A1D7FA4B591CBEC61A44BE02C89E%26clen%3D3471225%26key%3Dyt6%26mm%3D31%26mn%3Dsn-aphx-cbpe&projection_type=1&bitrate=135626&xtags=&index=4452-4856&init=0-4451&clen=3471225&itag=171&type=audio%2Fwebm%3B codecs%3D%22vorbis%22,lmt=1449571952563494&url=https%3A%2F%2Fr1---sn-aphx-cbpe.googlevideo.com%2Fvideoplayback%3Fid%3Do-ANFjNPF7nCfMlIgCBQOFsQ-p7Watp3VlZr9sTe7rxsd0%26source%3Dyoutube%26dur%3D237.361%26ip%3D162.252.188.250%26keepalive%3Dyes%26lmt%3D1449571952563494%26itag%3D249%26requiressl%3Dyes%26sparams%3Dclen%252Cdur%252Cei%252Cgir%252Cid%252Cinitcwndbps%252Cip%252Cipbits%252Citag%252Ckeepalive%252Clmt%252Cmime%252Cmm%252Cmn%252Cms%252Cmv%252Cpl%252Crequiressl%252Csource%252Cupn%252Cexpire%26initcwndbps%3D562500%26ipbits%3D0%26expire%3D1478555392%26mime%3Daudio%252Fwebm%26upn%3DycD_8OsgLHY%26gir%3Dyes%26mt%3D1478533567%26pl%3D26%26mv%3Dm%26ei%3DoKIgWM6eEovOWbnHq_gB%26ms%3Dau%26signature%3D083A04A0E69E602677D84E5E2C05CF258CE25451.C624C0557A1B47DCF795BBBFACC0776696F00D3A%26clen%3D1501979%26key%3Dyt6%26mm%3D31%26mn%3Dsn-aphx-cbpe&projection_type=1&bitrate=56744&xtags=&index=272-676&init=0-271&clen=1501979&itag=249&type=audio%2Fwebm%3B codecs%3D%22opus%22,lmt=1449571951982951&url=https%3A%2F%2Fr1---sn-aphx-cbpe.googlevideo.com%2Fvideoplayback%3Fid%3Do-ANFjNPF7nCfMlIgCBQOFsQ-p7Watp3VlZr9sTe7rxsd0%26source%3Dyoutube%26dur%3D237.361%26ip%3D162.252.188.250%26keepalive%3Dyes%26lmt%3D1449571951982951%26itag%3D250%26requiressl%3Dyes%26sparams%3Dclen%252Cdur%252Cei%252Cgir%252Cid%252Cinitcwndbps%252Cip%252Cipbits%252Citag%252Ckeepalive%252Clmt%252Cmime%252Cmm%252Cmn%252Cms%252Cmv%252Cpl%252Crequiressl%252Csource%252Cupn%252Cexpire%26initcwndbps%3D562500%26ipbits%3D0%26expire%3D1478555392%26mime%3Daudio%252Fwebm%26upn%3DycD_8OsgLHY%26gir%3Dyes%26mt%3D1478533567%26pl%3D26%26mv%3Dm%26ei%3DoKIgWM6eEovOWbnHq_gB%26ms%3Dau%26signature%3D82DBF86592417BE71B5AD4D78AFEB180C0737BB9.B10A88EFB80AA9818C5245D543BD337C5E528913%26clen%3D2020148%26key%3Dyt6%26mm%3D31%26mn%3Dsn-aphx-cbpe&projection_type=1&bitrate=79280&xtags=&index=272-676&init=0-271&clen=2020148&itag=250&type=audio%2Fwebm%3B codecs%3D%22opus%22,lmt=1449571951932307&url=https%3A%2F%2Fr1---sn-aphx-cbpe.googlevideo.com%2Fvideoplayback%3Fid%3Do-ANFjNPF7nCfMlIgCBQOFsQ-p7Watp3VlZr9sTe7rxsd0%26source%3Dyoutube%26dur%3D237.361%26ip%3D162.252.188.250%26keepalive%3Dyes%26lmt%3D1449571951932307%26itag%3D251%26requiressl%3Dyes%26sparams%3Dclen%252Cdur%252Cei%252Cgir%252Cid%252Cinitcwndbps%252Cip%252Cipbits%252Citag%252Ckeepalive%252Clmt%252Cmime%252Cmm%252Cmn%252Cms%252Cmv%252Cpl%252Crequiressl%252Csource%252Cupn%252Cexpire%26initcwndbps%3D562500%26ipbits%3D0%26expire%3D1478555392%26mime%3Daudio%252Fwebm%26upn%3DycD_8OsgLHY%26gir%3Dyes%26mt%3D1478533567%26pl%3D26%26mv%3Dm%26ei%3DoKIgWM6eEovOWbnHq_gB%26ms%3Dau%26signature%3D668F47E92413A1721B8C6E6C9D87517C1D25E266.6DF9C4567731026CCB6B338AA87D982D7E24E70E%26clen%3D3910806%26key%3Dyt6%26mm%3D31%26mn%3Dsn-aphx-cbpe&projection_type=1&bitrate=149549&xtags=&index=272-676&init=0-271&clen=3910806&itag=251&type=audio%2Fwebm%3B codecs%3D%22opus%22 + allow_embed + 1 + allow_ratings + 1 + apiary_host + + apiary_host_firstparty + + atc + a=3&b=4i2hiAPl1rWUt_bUEDndmxV2tRI&c=1478533792&d=1&e=RgKAFK5djSk&c3a=28&c1a=1&c6a=1&hh=iqa3YOafKx6FjBxA00VA751t_Xw + author + Wiz Khalifa + avg_rating + 4.88266849518 + baseUrl + https://googleads.g.doubleclick.net/pagead/viewthroughconversion/962985656/ + c + WEB + caption_audio_tracks + i=0%2C1&d=0&v=0 + caption_tracks + t=1&v=.en&lc=en&u=https%3A%2F%2Fwww.youtube.com%2Fapi%2Ftimedtext%3Fsparams%3Dcaps%252Cv%252Cexpire%26signature%3DDBB11C47CC87EE0ACCF96D393546C0066AB9744C.C7B03DD9FCEF34E0A5F83676707C0C521545E96C%26hl%3Den_US%26expire%3D1478558992%26key%3Dyttt1%26v%3DRgKAFK5djSk%26caps%3D-lyr%26lang%3Den&n=English,t=1&v=.und&lc=und&u=https%3A%2F%2Fwww.youtube.com%2Fapi%2Ftimedtext%3Fsparams%3Dcaps%252Cv%252Cexpire%26signature%3DDBB11C47CC87EE0ACCF96D393546C0066AB9744C.C7B03DD9FCEF34E0A5F83676707C0C521545E96C%26hl%3Den_US%26expire%3D1478558992%26key%3Dyttt1%26v%3DRgKAFK5djSk%26caps%3D-lyr%26lang%3Dund&n=und + caption_translation_languages + lc=af&n=Afrikaans,lc=sq&n=Albanian,lc=am&n=Amharic,lc=ar&n=Arabic,lc=hy&n=Armenian,lc=az&n=Azerbaijani,lc=eu&n=Basque,lc=be&n=Belarusian,lc=bn&n=Bengali,lc=bs&n=Bosnian,lc=bg&n=Bulgarian,lc=my&n=Burmese,lc=ca&n=Catalan,lc=ceb&n=Cebuano,lc=zh-Hans&n=Chinese %28Simplified%29,lc=zh-Hant&n=Chinese %28Traditional%29,lc=co&n=Corsican,lc=hr&n=Croatian,lc=cs&n=Czech,lc=da&n=Danish,lc=nl&n=Dutch,lc=en&n=English,lc=eo&n=Esperanto,lc=et&n=Estonian,lc=fil&n=Filipino,lc=fi&n=Finnish,lc=fr&n=French,lc=gl&n=Galician,lc=ka&n=Georgian,lc=de&n=German,lc=el&n=Greek,lc=gu&n=Gujarati,lc=ht&n=Haitian Creole,lc=ha&n=Hausa,lc=haw&n=Hawaiian,lc=iw&n=Hebrew,lc=hi&n=Hindi,lc=hmn&n=Hmong,lc=hu&n=Hungarian,lc=is&n=Icelandic,lc=ig&n=Igbo,lc=id&n=Indonesian,lc=ga&n=Irish,lc=it&n=Italian,lc=ja&n=Japanese,lc=jv&n=Javanese,lc=kn&n=Kannada,lc=kk&n=Kazakh,lc=km&n=Khmer,lc=ko&n=Korean,lc=ku&n=Kurdish,lc=ky&n=Kyrgyz,lc=lo&n=Lao,lc=la&n=Latin,lc=lv&n=Latvian,lc=lt&n=Lithuanian,lc=lb&n=Luxembourgish,lc=mk&n=Macedonian,lc=mg&n=Malagasy,lc=ms&n=Malay,lc=ml&n=Malayalam,lc=mt&n=Maltese,lc=mi&n=Maori,lc=mr&n=Marathi,lc=mn&n=Mongolian,lc=ne&n=Nepali,lc=no&n=Norwegian,lc=ny&n=Nyanja,lc=ps&n=Pashto,lc=fa&n=Persian,lc=pl&n=Polish,lc=pt&n=Portuguese,lc=pa&n=Punjabi,lc=ro&n=Romanian,lc=ru&n=Russian,lc=sm&n=Samoan,lc=gd&n=Scottish Gaelic,lc=sr&n=Serbian,lc=sn&n=Shona,lc=sd&n=Sindhi,lc=si&n=Sinhala,lc=sk&n=Slovak,lc=sl&n=Slovenian,lc=so&n=Somali,lc=st&n=Southern Sotho,lc=es&n=Spanish,lc=su&n=Sundanese,lc=sw&n=Swahili,lc=sv&n=Swedish,lc=tg&n=Tajik,lc=ta&n=Tamil,lc=te&n=Telugu,lc=th&n=Thai,lc=tr&n=Turkish,lc=uk&n=Ukrainian,lc=ur&n=Urdu,lc=uz&n=Uzbek,lc=vi&n=Vietnamese,lc=cy&n=Welsh,lc=fy&n=Western Frisian,lc=xh&n=Xhosa,lc=yi&n=Yiddish,lc=yo&n=Yoruba,lc=zu&n=Zulu + cl + 137866120 + cr + US + csi_page_type + watch,watch7 + csn + oKIgWM6eEovOWbnHq_gB + cver + 1.20161101 + default_audio_track_index + 0 + enablecsi + 1 + eventid + oKIgWM6eEovOWbnHq_gB + fexp + 9407191,9422596,9428398,9429983,9431012,9433096,9433221,9433946,9434046,9434289,9435036,9435526,9439364,9439581,9440286,9442953,9443068,9445169,9446054,9446364,9446882,9447105,9447163,9448358,9449034,9451287,9451419,9452004,9452155,9452650 + fflags + html5_multicam=true&ios_enable_mixin_accessibility_custom_actions=true&enable_get_offers_for_item_list_for_get_cart=true&high_res_timestamps=true&html5_request_sizing_multiplier=0.8&enable_live_state_auth=true&ad_video_end_renderer_duration_milliseconds=7000&enable_playlist_multi_season=true&html5_ajax_qoe_retry=false&cards_drawer_auto_open_duration=-1&html5_max_buffer_health_for_downgrade=0&cards_drawer_auto_open_offset=-10000&lugash_header_warmup=true&ios_minimum_seconds_between_connectivity_gained_snackbars=300&yto_enable_watch_offer_module=true&mpu_visible_threshold_count=4&enable_offer_restricts_for_watch_page_offers=true&desktop_fsi_promo=style_masthead_ad&feeds_on_innertube=true&html5_connect_timeout_secs=7.0&enable_audio_cast=true&html5_retry_limit=4&enable_fmp4_defrag=true&html5_playing_event_buffer_underrun=true&html5_use_mediastream_timestamp=false&html5_min_buffer_to_resume=0&playlist_thumbnails_resizing=true&kids_enable_brazil_lp=true&use_new_skip_icon=true&kids_asset_theme=server_side_assets&playready_on_borg=true&yto_enable_ytr_promo_refresh_assets=true&yto_feature_hub_channel=false&launch_new_wallet_api=true&kids_enable_latam_lp=true&html5_throttle_rate=0.0&html5_retry_gvi_more=true&html5_repredict_interval_secs=0.0&html5_check_for_reseek=true&html5_bandwidth_window_size=0&log_it_display_tree=true&dynamic_ad_break_seek_threshold_sec=0&log_js_exceptions_fraction=0.20&sdk_wrapper_levels_allowed=0&yt_unlimited_pts_skip_ads_promo_desktop_always=true&disable_new_pause_state3=true&html5_request_size_min_secs=0.0&kids_enable_columbia_lp=true&legacy_autoplay_flag=true&html5_idle_preload_secs=1&cameo_live_chunk_readahead=3&live_chunk_readahead=3&html5_tight_max_buffer_allowed_impaired_time=0.0&html5_retry_media_element_errors=true&website_actions_throttle_percentage=1.0&product_listing_ads_cards_drawer_auto_open=true&enable_yt_music_lp=true&yto_enable_unlimited_landing_page_yto_features=true&html5_serverside_biscotti_id_wait_ms=1000&variable_load_timeout_ms=0&use_web_player_gestures=true&kids_enable_spain_lp=true&legacy_poster_behavior=true&tvhtml5_audio_starts_radio_station=true&fix_backfill_mpu_api_stats_ads=true&html5_suspend_manifest_on_pause=false&chrome_promo_enabled=true&html5_live_disable_dg_pacing=true&html5_max_buffer_duration=0&fix_vmap_afc_mpu_api_stats_ads=true&html5_allowable_liveness_drift_chunks=2&html5_deadzone_multiplier=1.0&legacy_control_redirecting=true&kids_enable_privacy_notice=true&html5_strip_emsg=true&lugash_header_by_service=true&native_controls_assume_media_volume=true&ios_minimum_seconds_between_connectivity_lost_snackbars=0&autoplay_time=10000&enable_mweb_ypc_promotion_renderer=true&flex_theater_mode=true&kids_enable_post_onboarding_red_flow=true&enable_mrm_channel_approve=true&fixed_padding_skip_button=true&kids_enable_server_side_assets=true&music_tastebuilder_p13n=true&html5_reseek_on_infinite_buffer=true&legacy_embed_snippet=true&html5_get_video_info_promiseajax=true&html5_tight_max_buffer_allowed_bandwidth_stddevs=0.0&html5_live_4k_more_buffer=true&legacy_cast2=true&sidebar_renderers=true&player_no_remote_modules=true&dynamic_ad_break_pause_threshold_sec=0&html5_background_quality_cap=360&html5_background_cap_idle_secs=60&html5_retry_media_element_errors_delay=0&html5_get_video_info_timeout_ms=0&new_ended_replay=true&ad_duration_threshold_for_showing_endcap_seconds=15 + fmt_list + 22/1280x720/9/0/115,43/640x360/99/0/0,18/640x360/9/0/115,36/320x180/99/1/0,17/176x144/99/1/0 + focEnabled + 1 + gapi_hint_params + m;/_/scs/abc-static/_/js/k=gapi.gapi.en.8KvJMpFyTwI.O/m=__features__/rt=j/d=1/rs=AHpOoo97bqw3j5jg4TkTecEOgY44B9P0Vg + hl + en_US + host_language + en + idpj + -6 + innertube_api_key + AIzaSyAO_FJ2SlqU8Q4STEHLGCilw_Y9_11qcW8 + innertube_api_version + v1 + innertube_context_client_version + 1.20161101 + is_listed + 1 + ismb + 4500000 + itct + + iurl + https://i.ytimg.com/vi/RgKAFK5djSk/hqdefault.jpg + iurlhq + https://i.ytimg.com/vi/RgKAFK5djSk/hqdefault.jpg + iurlmaxres + https://i.ytimg.com/vi/RgKAFK5djSk/maxresdefault.jpg + iurlmq + https://i.ytimg.com/vi/RgKAFK5djSk/hqdefault.jpg?custom=true&w=320&h=180&stc=true&jpg444=true&jpgq=90&sp=68&sigh=CV1o8icgSUeQJ1TzrSCxxK5oh3M + iurlsd + https://i.ytimg.com/vi/RgKAFK5djSk/sddefault.jpg + iv3_module + 1 + iv_invideo_url + https://www.youtube.com/annotations_invideo?cap_hist=1&video_id=RgKAFK5djSk&ei=oKIgWM6eEovOWbnHq_gB + iv_load_policy + 1 + iv_module + https://s.ytimg.com/yts/swfbin/player-vflndLRbA/iv_module.swf + keywords + Wiz Khalifa,Blacc Hollywood,Taylor Gang,Atlantic Records,hip hop,wiz,khalifa,Pittsburgh,Los Angeles,taylorgangent,TGOD,taylor gang or die,Furious 7,paul walker,paul walker tribute,See You Again (Composition),Fast & Furious 6 (Award-Winning Work),See you again,vin diesel,Michelle Rodriguez (Celebrity),charlie puth,GRAMMYS + ldpj + -24 + length_seconds + 237 + loudness + -17.388999939 + no_get_video_log + 1 + of + luRDWgiwKvGb2EhpAX5sYw + oid + YbGWGCIUCoaUePqGy_acMw + player_error_log_fraction + 1.0 + plid + AAVAt_l79w0Olx1X + pltype + content + ppv_remarketing_url + https://www.googleadservices.com/pagead/conversion/971134070/?backend=innertube&cname=1&cver=1_20161101&data=backend%3Dinnertube%3Bcname%3D1%3Bcver%3D1_20161101%3Bdactive%3DNone%3Bdynx_itemid%3DRgKAFK5djSk%3Bptype%3Dppv&label=iuZUCLmC72YQ9qiJzwM&ptype=ppv + probe_url + https://r14---sn-c0q7lnl7.googlevideo.com/videogoodput?id=o-AKOAqEufeH74gc6-CeBDkmffO9IQbsNjnk66Nc7uIL6U&source=goodput&range=0-4999&expire=1478537392&ip=162.252.188.250&ms=pm&mm=35&pl=24&nh=IgpwcjAyLmJ1ZDAyKgw3Mi4xNC4yMTAuNzE&sparams=id,source,range,expire,ip,ms,mm,pl,nh&signature=46CC40150927473EAE3CD13B78800094DA2D02B6.7ECFD027AB36239814133D242225C0D00E59D1F8&key=cms1 + ptchn + Vp3nfGRxmMadNDuVbJSk8A + ptk + WMG + pyv_ad_channel + + remarketing_url + https://googleads.g.doubleclick.net/pagead/viewthroughconversion/962985656/?backend=innertube&cname=1&cver=1_20161101&data=backend%3Dinnertube%3Bcname%3D1%3Bcver%3D1_20161101%3Bm%3D1%3Bptype%3Dview%3Bsrr%3Dn%3Btype%3Dview%3Butuid%3DVp3nfGRxmMadNDuVbJSk8A%3Butvid%3DRgKAFK5djSk%3Bw%3D1&foc_id=Vp3nfGRxmMadNDuVbJSk8A&label=followon_view&ptype=view&srr=n + rmktEnabled + 1 + root_ve_type + 14057 + rvs + short_view_count_text=1.5B views&length_seconds=302&endscreen_autoplay_session_data=feature%3Drelated-auto%26playnext%3D0%26autonav%3D1&author=Maroon5VEVO&id=09R8_2nJtjg&title=Maroon 5 - Sugar&session_data=itct%3DMgllbmRzY3JlZW5IqZr28sqCoIFG,short_view_count_text=1.5B views&length_seconds=302&author=Maroon5VEVO&id=09R8_2nJtjg&title=Maroon 5 - Sugar&session_data=itct%3DMgllbmRzY3JlZW5IqZr28sqCoIFG,playlist_iurlmq=%2F%2Fi.ytimg.com%2Fvi%2FRgKAFK5djSk%2Fmqdefault.jpg&video_id=09R8_2nJtjg&list=RDRgKAFK5djSk&session_data=itct%3DMgllbmRzY3JlZW5IqZr28sqCoIFG&playlist_iurlhq=%2F%2Fi.ytimg.com%2Fvi%2FRgKAFK5djSk%2Fhqdefault.jpg&playlist_title=Wiz Khalifa - See You Again ft. Charlie Puth %5BOfficial Video%5D Furious 7 Soundtrack&thumbnail_ids=09R8_2nJtjg&playlist_length=0,short_view_count_text=1.3B views&length_seconds=250&author=EllieGouldingVEVO&id=AJtDXIazrMo&title=Ellie Goulding - Love Me Like You Do %28Official Video%29&session_data=itct%3DMgllbmRzY3JlZW5IqZr28sqCoIFG,short_view_count_text=648M views&length_seconds=190&author=Ultra Music&id=jGflUbPQfW8&title=OMI - Cheerleader %28Felix Jaehn Remix%29 %5BOfficial Video%5D&session_data=itct%3DMgllbmRzY3JlZW5IqZr28sqCoIFG,short_view_count_text=1B views&length_seconds=203&author=SilentoVEVO&id=vjW8wmF5VWc&title=Silent%C3%B3 - Watch Me %28Whip%2FNae Nae%29 %28Official%29&session_data=itct%3DMgllbmRzY3JlZW5IqZr28sqCoIFG,short_view_count_text=1.7B views&length_seconds=367&author=AdeleVEVO&id=YQHsXMglC9A&title=Adele - Hello&session_data=itct%3DMgllbmRzY3JlZW5IqZr28sqCoIFG,short_view_count_text=1.8B views&length_seconds=273&author=TaylorSwiftVEVO&id=e-ORhEE9VVg&title=Taylor Swift - Blank Space&session_data=itct%3DMgllbmRzY3JlZW5IqZr28sqCoIFG,short_view_count_text=1.9B views&length_seconds=271&author=MarkRonsonVEVO&id=OPf0YbXqDm0&title=Mark Ronson - Uptown Funk ft. Bruno Mars&session_data=itct%3DMgllbmRzY3JlZW5IqZr28sqCoIFG,short_view_count_text=1.3B views&length_seconds=297&author=Ed Sheeran&id=lp-EO5I60KA&title=Ed Sheeran - Thinking Out Loud %5BOfficial Video%5D&session_data=itct%3DMgllbmRzY3JlZW5IqZr28sqCoIFG,short_view_count_text=762M views&length_seconds=252&author=Jack %C3%9C&id=nntGTK2Fhb0&title=Skrillex and Diplo - %22Where Are %C3%9C Now%22 with Justin Bieber %28Official Video%29&session_data=itct%3DMgllbmRzY3JlZW5IqZr28sqCoIFG,short_view_count_text=25M views&length_seconds=325&author=Uosof ahmadi&id=qAfzDsZCK2c&title=See You Again - Emotional Tribute To Paul Walker %28HD%29&session_data=itct%3DMgllbmRzY3JlZW5IqZr28sqCoIFG + show_pyv_in_related + False + ssl + 1 + status + ok + t + 1 + thumbnail_url + https://i.ytimg.com/vi/RgKAFK5djSk/default.jpg + timestamp + 1478533792 + title + Wiz Khalifa - See You Again ft. Charlie Puth [Official Video] Furious 7 Soundtrack + tmi + 1 + token + 1 + ucid + UCVp3nfGRxmMadNDuVbJSk8A + uid + Vp3nfGRxmMadNDuVbJSk8A + url_encoded_fmt_stream_map + url=https%3A%2F%2Fr1---sn-aphx-cbpe.googlevideo.com%2Fvideoplayback%3Fid%3Do-ANFjNPF7nCfMlIgCBQOFsQ-p7Watp3VlZr9sTe7rxsd0%26source%3Dyoutube%26dur%3D237.424%26ip%3D162.252.188.250%26lmt%3D1472950105325211%26itag%3D22%26requiressl%3Dyes%26mime%3Dvideo%252Fmp4%26initcwndbps%3D562500%26ratebypass%3Dyes%26ipbits%3D0%26expire%3D1478555392%26sparams%3Ddur%252Cei%252Cid%252Cinitcwndbps%252Cip%252Cipbits%252Citag%252Clmt%252Cmime%252Cmm%252Cmn%252Cms%252Cmv%252Cpl%252Cratebypass%252Crequiressl%252Csource%252Cupn%252Cexpire%26upn%3DycD_8OsgLHY%26mt%3D1478533567%26pl%3D26%26mv%3Dm%26ei%3DoKIgWM6eEovOWbnHq_gB%26ms%3Dau%26signature%3D956D0B096DA59E3D1DDB526742873DED214688FC.8F95ECD4D1EB39EA70B26422243B6FB9C847E553%26key%3Dyt6%26mm%3D31%26mn%3Dsn-aphx-cbpe&type=video%2Fmp4%3B codecs%3D%22avc1.64001F%2C mp4a.40.2%22&itag=22&quality=hd720,url=https%3A%2F%2Fr1---sn-aphx-cbpe.googlevideo.com%2Fvideoplayback%3Fid%3Do-ANFjNPF7nCfMlIgCBQOFsQ-p7Watp3VlZr9sTe7rxsd0%26source%3Dyoutube%26dur%3D0.000%26ip%3D162.252.188.250%26lmt%3D1428274110763456%26itag%3D43%26requiressl%3Dyes%26sparams%3Dclen%252Cdur%252Cei%252Cgir%252Cid%252Cinitcwndbps%252Cip%252Cipbits%252Citag%252Clmt%252Cmime%252Cmm%252Cmn%252Cms%252Cmv%252Cpl%252Cratebypass%252Crequiressl%252Csource%252Cupn%252Cexpire%26initcwndbps%3D562500%26ratebypass%3Dyes%26ipbits%3D0%26expire%3D1478555392%26mime%3Dvideo%252Fwebm%26upn%3DycD_8OsgLHY%26gir%3Dyes%26mt%3D1478533567%26pl%3D26%26mv%3Dm%26ei%3DoKIgWM6eEovOWbnHq_gB%26ms%3Dau%26signature%3D33716C0F8946DCA35263C3CC698AFEFB75AA0B14.67E4DA02647FA9D1EE1BB095D520448C8E12FC%26clen%3D18764299%26key%3Dyt6%26mm%3D31%26mn%3Dsn-aphx-cbpe&type=video%2Fwebm%3B codecs%3D%22vp8.0%2C vorbis%22&itag=43&quality=medium,url=https%3A%2F%2Fr1---sn-aphx-cbpe.googlevideo.com%2Fvideoplayback%3Fid%3Do-ANFjNPF7nCfMlIgCBQOFsQ-p7Watp3VlZr9sTe7rxsd0%26source%3Dyoutube%26dur%3D237.424%26ip%3D162.252.188.250%26lmt%3D1463797333620847%26itag%3D18%26requiressl%3Dyes%26sparams%3Dclen%252Cdur%252Cei%252Cgir%252Cid%252Cinitcwndbps%252Cip%252Cipbits%252Citag%252Clmt%252Cmime%252Cmm%252Cmn%252Cms%252Cmv%252Cpl%252Cratebypass%252Crequiressl%252Csource%252Cupn%252Cexpire%26initcwndbps%3D562500%26ratebypass%3Dyes%26ipbits%3D0%26expire%3D1478555392%26mime%3Dvideo%252Fmp4%26upn%3DycD_8OsgLHY%26gir%3Dyes%26mt%3D1478533567%26pl%3D26%26mv%3Dm%26ei%3DoKIgWM6eEovOWbnHq_gB%26ms%3Dau%26signature%3D398B6ADE7CC959622AF85F8FEB4967F99F36F394.C978A2F7E68AB98DF51FF4E625FF8AA21D60159B%26clen%3D13672571%26key%3Dyt6%26mm%3D31%26mn%3Dsn-aphx-cbpe&type=video%2Fmp4%3B codecs%3D%22avc1.42001E%2C mp4a.40.2%22&itag=18&quality=medium,url=https%3A%2F%2Fr1---sn-aphx-cbpe.googlevideo.com%2Fvideoplayback%3Fid%3Do-ANFjNPF7nCfMlIgCBQOFsQ-p7Watp3VlZr9sTe7rxsd0%26source%3Dyoutube%26dur%3D237.540%26ip%3D162.252.188.250%26lmt%3D1428273517937613%26itag%3D36%26requiressl%3Dyes%26sparams%3Dclen%252Cdur%252Cei%252Cgir%252Cid%252Cinitcwndbps%252Cip%252Cipbits%252Citag%252Clmt%252Cmime%252Cmm%252Cmn%252Cms%252Cmv%252Cpl%252Crequiressl%252Csource%252Cupn%252Cexpire%26initcwndbps%3D562500%26ipbits%3D0%26expire%3D1478555392%26mime%3Dvideo%252F3gpp%26upn%3DycD_8OsgLHY%26gir%3Dyes%26mt%3D1478533567%26pl%3D26%26mv%3Dm%26ei%3DoKIgWM6eEovOWbnHq_gB%26ms%3Dau%26signature%3D1CADEC1812B661EF8123A95C316B882B0AC2902B.A55268A7E31B63F57DF17663949C5B5956DD6792%26clen%3D6794321%26key%3Dyt6%26mm%3D31%26mn%3Dsn-aphx-cbpe&type=video%2F3gpp%3B codecs%3D%22mp4v.20.3%2C mp4a.40.2%22&itag=36&quality=small,url=https%3A%2F%2Fr1---sn-aphx-cbpe.googlevideo.com%2Fvideoplayback%3Fid%3Do-ANFjNPF7nCfMlIgCBQOFsQ-p7Watp3VlZr9sTe7rxsd0%26source%3Dyoutube%26dur%3D237.540%26ip%3D162.252.188.250%26lmt%3D1428273497121377%26itag%3D17%26requiressl%3Dyes%26sparams%3Dclen%252Cdur%252Cei%252Cgir%252Cid%252Cinitcwndbps%252Cip%252Cipbits%252Citag%252Clmt%252Cmime%252Cmm%252Cmn%252Cms%252Cmv%252Cpl%252Crequiressl%252Csource%252Cupn%252Cexpire%26initcwndbps%3D562500%26ipbits%3D0%26expire%3D1478555392%26mime%3Dvideo%252F3gpp%26upn%3DycD_8OsgLHY%26gir%3Dyes%26mt%3D1478533567%26pl%3D26%26mv%3Dm%26ei%3DoKIgWM6eEovOWbnHq_gB%26ms%3Dau%26signature%3D2CC8287EACD1870E9E79C88A2E5230A70272CA53.69DF8514E7A3884492C7AB046FE52775C4280B5F%26clen%3D2463641%26key%3Dyt6%26mm%3D31%26mn%3Dsn-aphx-cbpe&type=video%2F3gpp%3B codecs%3D%22mp4v.20.3%2C mp4a.40.2%22&itag=17&quality=small + vid + RgKAFK5djSk + video_id + RgKAFK5djSk + videostats_playback_base_url + https://s.youtube.com/api/stats/playback?el=detailpage&fexp=9407191%2C9422596%2C9428398%2C9429983%2C9431012%2C9433096%2C9433221%2C9433946%2C9434046%2C9434289%2C9435036%2C9435526%2C9439364%2C9439581%2C9440286%2C9442953%2C9443068%2C9445169%2C9446054%2C9446364%2C9446882%2C9447105%2C9447163%2C9448358%2C9449034%2C9451287%2C9451419%2C9452004%2C9452155%2C9452650&ei=oKIgWM6eEovOWbnHq_gB&docid=RgKAFK5djSk&len=238&cl=137866120&ns=yt&of=luRDWgiwKvGb2EhpAX5sYw&plid=AAVAt_l79w0Olx1X&vm=CAIQAA + view_count + 2162393233 + vm + CAIQAA + vmap + <?xml version="1.0" encoding="UTF-8"?><vmap:VMAP xmlns:vmap="http://www.iab.net/videosuite/vmap" xmlns:yt="http://youtube.com" version="1.0"></vmap:VMAP> + watermark + ,https://s.ytimg.com/yts/img/watermark/youtube_watermark-vflHX6b6E.png,https://s.ytimg.com/yts/img/watermark/youtube_hd_watermark-vflAzLcD6.png + + diff --git a/XCDYouTubeKit.xcodeproj/project.pbxproj b/XCDYouTubeKit.xcodeproj/project.pbxproj index 410f18f83..09440a81a 100644 --- a/XCDYouTubeKit.xcodeproj/project.pbxproj +++ b/XCDYouTubeKit.xcodeproj/project.pbxproj @@ -8,7 +8,7 @@ /* Begin PBXBuildFile section */ 0116F7C91DB663A00031004C /* testInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 0116F7C81DB663A00031004C /* testInfo.plist */; }; - 019FEEFA1DD0DA9000D40F64 /* testInfo_undetermined_language_code.plist in Resources */ = {isa = PBXBuildFile; fileRef = 019FEEF91DD0DA9000D40F64 /* testInfo_undetermined_language_code.plist */; }; + 019FEEFC1DD0E47000D40F64 /* testInfo_undetermined_language_code.plist in Resources */ = {isa = PBXBuildFile; fileRef = 019FEEFB1DD0E47000D40F64 /* testInfo_undetermined_language_code.plist */; }; C20F57A818817D5400EDBFB0 /* XCDYouTubeClientTestCase.m in Sources */ = {isa = PBXBuildFile; fileRef = C20F57A718817D5400EDBFB0 /* XCDYouTubeClientTestCase.m */; }; C2142F2A19644779000FA9C0 /* XCDYouTubeKit.h in Headers */ = {isa = PBXBuildFile; fileRef = C2D0CBAC19122A8F00DA8CD4 /* XCDYouTubeKit.h */; settings = {ATTRIBUTES = (Public, ); }; }; C215BEB91BE2E5B500F9783B /* XCDYouTubeVideoWebpage.h in Headers */ = {isa = PBXBuildFile; fileRef = C2386B1C1974036300646123 /* XCDYouTubeVideoWebpage.h */; }; @@ -97,7 +97,7 @@ /* Begin PBXFileReference section */ 0116F7C81DB663A00031004C /* testInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = testInfo.plist; sourceTree = ""; }; - 019FEEF91DD0DA9000D40F64 /* testInfo_undetermined_language_code.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = testInfo_undetermined_language_code.plist; sourceTree = ""; }; + 019FEEFB1DD0E47000D40F64 /* testInfo_undetermined_language_code.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = testInfo_undetermined_language_code.plist; sourceTree = ""; }; C20F579B18817D5400EDBFB0 /* XCDYouTubeKit.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = XCDYouTubeKit.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; C20F57A718817D5400EDBFB0 /* XCDYouTubeClientTestCase.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XCDYouTubeClientTestCase.m; sourceTree = ""; }; C22263371B33FDE000BA6719 /* XCTestWorkarounds.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XCTestWorkarounds.m; sourceTree = ""; }; @@ -169,7 +169,7 @@ isa = PBXGroup; children = ( 0116F7C81DB663A00031004C /* testInfo.plist */, - 019FEEF91DD0DA9000D40F64 /* testInfo_undetermined_language_code.plist */, + 019FEEFB1DD0E47000D40F64 /* testInfo_undetermined_language_code.plist */, C2D0CC5C19126E1200DA8CD4 /* Cassettes */, C2D0CC3A1912673500DA8CD4 /* VCRURLConnection */, C20F57A718817D5400EDBFB0 /* XCDYouTubeClientTestCase.m */, @@ -386,7 +386,7 @@ files = ( 0116F7C91DB663A00031004C /* testInfo.plist in Resources */, C2D0CC5D19126E1200DA8CD4 /* Cassettes in Resources */, - 019FEEFA1DD0DA9000D40F64 /* testInfo_undetermined_language_code.plist in Resources */, + 019FEEFC1DD0E47000D40F64 /* testInfo_undetermined_language_code.plist in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; From 68b6b903cd7244d8aacd54e812924d6ca9812a69 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sone=C3=A9=20John?= Date: Mon, 5 Dec 2016 10:28:21 -0400 Subject: [PATCH 11/52] Use VCRURLConnection for captions tests - Deleted old plist files - Migrated tests from XCDYouTubeVideoTestCase to XCDYouTubeClientTestCase --- .../testVideoThatHasCaptions.json | 24 +++ ...eoWithUndeterminedCaptionLanguageCode.json | 44 +++++ .../XCDYouTubeClientTestCase.m | 31 ++++ XCDYouTubeKit Tests/XCDYouTubeVideoTestCase.m | 31 ---- XCDYouTubeKit Tests/testInfo.plist | 146 --------------- .../testInfo_undetermined_language_code.plist | 172 ------------------ XCDYouTubeKit.xcodeproj/project.pbxproj | 8 - 7 files changed, 99 insertions(+), 357 deletions(-) create mode 100644 XCDYouTubeKit Tests/Cassettes/XCDYouTubeClientTestCase/testVideoThatHasCaptions.json create mode 100644 XCDYouTubeKit Tests/Cassettes/XCDYouTubeClientTestCase/testVideoWithUndeterminedCaptionLanguageCode.json delete mode 100644 XCDYouTubeKit Tests/testInfo.plist delete mode 100644 XCDYouTubeKit Tests/testInfo_undetermined_language_code.plist diff --git a/XCDYouTubeKit Tests/Cassettes/XCDYouTubeClientTestCase/testVideoThatHasCaptions.json b/XCDYouTubeKit Tests/Cassettes/XCDYouTubeClientTestCase/testVideoThatHasCaptions.json new file mode 100644 index 000000000..7f7e75210 --- /dev/null +++ b/XCDYouTubeKit Tests/Cassettes/XCDYouTubeClientTestCase/testVideoThatHasCaptions.json @@ -0,0 +1,24 @@ +[ + { + "body" : "atc=a%3D3%26b%3DeeTA-CXgnf1roK5lqGVn7I_m5nc%26c%3D1480947827%26d%3D1%26e%3DQ6dsRpVyyWs%26c3a%3D26%26hh%3DcfMvqU7QwbZSdO0MmBC_Uw8KDNw&dashmpd=https%3A%2F%2Fmanifest.googlevideo.com%2Fapi%2Fmanifest%2Fdash%2Fexpire%2F1480969427%2Finitcwndbps%2F167500%2Fas%2Ffmp4_audio_clear%252Cwebm_audio_clear%252Cwebm2_audio_clear%252Cfmp4_sd_hd_clear%252Cwebm2_sd_hd_clear%2Fkey%2Fyt6%2Fsource%2Fyoutube%2Fsignature%2FC153D85FD4A1FEFC661D08A973E7985F442BB11F.CAEF900E6A2F6184BCC600494D933CFDB4D9A563%2Fupn%2FJfH_6KE_NJY%2Fnh%2FIgpwcjAzLm1pYTA0Kgw2My4yNDUuMy4xNjk%2Fitag%2F0%2Fipbits%2F0%2Fhfr%2F1%2Fplayback_host%2Fr20---sn-hp57knsd.googlevideo.com%2Fsparams%2Fas%252Chfr%252Cid%252Cinitcwndbps%252Cip%252Cipbits%252Citag%252Cmm%252Cmn%252Cms%252Cmv%252Cnh%252Cpl%252Cplayback_host%252Crequiressl%252Csource%252Cexpire%2Fmm%2F31%2Fip%2F209.59.90.242%2Fmn%2Fsn-hp57knsd%2Fid%2Fo-ACv4XPO0-_wcP0GpG5BLIQrZaFiqQmRoQxYs4fhaznIo%2Fms%2Fau%2Frequiressl%2Fyes%2Fmt%2F1480947656%2Fpl%2F24%2Fmv%2Fm&probe_url=https%3A%2F%2Fr7---sn-4g57kned.googlevideo.com%2Fvideogoodput%3Fid%3Do-AL1yURDRQ3B6pAECurQUtWzUHRCdBoTM5uJ3rzS3VDWU%26source%3Dgoodput%26range%3D0-4999%26expire%3D1480951426%26ip%3D209.59.90.242%26ms%3Dpm%26mm%3D35%26pl%3D24%26nh%3DIgpwcjA1LmZyYTE1KgkxMjcuMC4wLjE%26sparams%3Did%2Csource%2Crange%2Cexpire%2Cip%2Cms%2Cmm%2Cpl%2Cnh%26signature%3D775CAD83E2B55084C7498DFBE5BC5DCC4CD60D54.4A8518F60791DC0E9C4DD49B4AC505310BC148D5%26key%3Dcms1&ypc_ad_indicator=4&ucid=UCE_M8A5yxnLfW0KghEeajjw&storyboard_spec=https%3A%2F%2Fi.ytimg.com%2Fsb%2FQ6dsRpVyyWs%2Fstoryboard3_L%24L%2F%24N.jpg%7C48%2327%23100%2310%2310%230%23default%23Rkk6SmZ-8HKjZExmxiwe-vxtRLI%7C80%2345%2370%2310%2310%232000%23M%24M%236C--c1JM6b_CmETZU9uQuZjqcY8%7C160%2390%2370%235%235%232000%23M%24M%230ueRrvrqEgJJo4enxXBTz0bJAm0&iurlmaxres=https%3A%2F%2Fi.ytimg.com%2Fvi%2FQ6dsRpVyyWs%2Fmaxresdefault.jpg&oid=ffsQQyXI443h2PgMzMjp-g&cver=1.20161130&no_get_video_log=1&tmi=1&avg_rating=4.07910484357&plid=AAVC6gkpEKMVXxjP&keywords=Apple&idpj=-2&c=WEB&enablecsi=1&remarketing_url=https%3A%2F%2Fgoogleads.g.doubleclick.net%2Fpagead%2Fviewthroughconversion%2F962985656%2F%3Fbackend%3Dplayer_vars%26cname%3D1%26cver%3DAS3%26foc_id%3DE_M8A5yxnLfW0KghEeajjw%26label%3Dfollowon_view%26ptype%3Dno_rmkt%26srr%3Dn&account_playback_token=QUFFLUhqblhVVkFiMDlZYlFCN1RpUVl6VExXcVE2S1diUXxBQ3Jtc0ttQ1AwamtzOGNzTmpiS19XMHZnQUpvMmFza2tnVlFJUWVOdzduVXZEUUxIOHZ5cWJBalY2eUp3dnlrTUJWVVYzYWlJd3BkYkthdHpaRG4xV2FRTnd4ak9LcmtyaFJYWFRfQU12RkhZV25qWGM1V2ZLbw%3D%3D&iv3_module=1&iurlhq=https%3A%2F%2Fi.ytimg.com%2Fvi%2FQ6dsRpVyyWs%2Fhqdefault.jpg&iurlhq720=https%3A%2F%2Fi.ytimg.com%2Fvi%2FQ6dsRpVyyWs%2Fhq720.jpg&iurlsd=https%3A%2F%2Fi.ytimg.com%2Fvi%2FQ6dsRpVyyWs%2Fsddefault.jpg&iv_allow_in_place_switch=1&default_audio_track_index=0&allow_ratings=1&use_cipher_signature=False&fmt_list=22%2F1280x720%2F9%2F0%2F115%2C43%2F640x360%2F99%2F0%2F0%2C18%2F640x360%2F9%2F0%2F115%2C36%2F426x240%2F99%2F1%2F0%2C17%2F256x144%2F99%2F1%2F0&thumbnail_url=https%3A%2F%2Fi.ytimg.com%2Fvi%2FQ6dsRpVyyWs%2Fdefault.jpg&vmap=%3C%3Fxml+version%3D%221.0%22+encoding%3D%22UTF-8%22%3F%3E%3Cvmap%3AVMAP+xmlns%3Avmap%3D%22http%3A%2F%2Fwww.iab.net%2Fvideosuite%2Fvmap%22+xmlns%3Ayt%3D%22http%3A%2F%2Fyoutube.com%22+version%3D%221.0%22%3E%3C%2Fvmap%3AVMAP%3E&cc3_module=1&has_cc=True&is_listed=1&cc_module=https%3A%2F%2Fs.ytimg.com%2Fyts%2Fswfbin%2Fplayer-vfldq9G5_%2Fsubtitle_module.swf&url_encoded_fmt_stream_map=type%3Dvideo%252Fmp4%253B%2Bcodecs%253D%2522avc1.64001F%252C%2Bmp4a.40.2%2522%26quality%3Dhd720%26url%3Dhttps%253A%252F%252Fr20---sn-hp57knsd.googlevideo.com%252Fvideoplayback%253Fexpire%253D1480969427%2526initcwndbps%253D167500%2526key%253Dyt6%2526source%253Dyoutube%2526signature%253DAB92550CCB6452BB677B17C585FADB5307CFA89D.C04CB6D75CA80ACCFC6BCD1FAFA07C67A2B95057%2526upn%253Dx-eKNJJY5aU%2526nh%253DIgpwcjAzLm1pYTA0Kgw2My4yNDUuMy4xNjk%2526ratebypass%253Dyes%2526itag%253D22%2526ipbits%253D0%2526lmt%253D1473408787496138%2526sparams%253Ddur%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cnh%25252Cpl%25252Cratebypass%25252Crequiressl%25252Csource%25252Cupn%25252Cexpire%2526mm%253D31%2526ip%253D209.59.90.242%2526mn%253Dsn-hp57knsd%2526id%253Do-ACv4XPO0-_wcP0GpG5BLIQrZaFiqQmRoQxYs4fhaznIo%2526dur%253D136.719%2526mime%253Dvideo%25252Fmp4%2526ms%253Dau%2526requiressl%253Dyes%2526mt%253D1480947656%2526pl%253D24%2526mv%253Dm%26fallback_host%3Dtc.v5.cache2.googlevideo.com%26itag%3D22%2Ctype%3Dvideo%252Fwebm%253B%2Bcodecs%253D%2522vp8.0%252C%2Bvorbis%2522%26quality%3Dmedium%26url%3Dhttps%253A%252F%252Fr20---sn-hp57knsd.googlevideo.com%252Fvideoplayback%253Fexpire%253D1480969427%2526initcwndbps%253D167500%2526key%253Dyt6%2526source%253Dyoutube%2526signature%253DAC692252B954DE487F7D235E5E7E115E1247A60C.2599D9018FC042778E6F78F0E49290118374905F%2526upn%253Dx-eKNJJY5aU%2526nh%253DIgpwcjAzLm1pYTA0Kgw2My4yNDUuMy4xNjk%2526ratebypass%253Dyes%2526itag%253D43%2526ipbits%253D0%2526lmt%253D1473279354614381%2526sparams%253Ddur%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cnh%25252Cpl%25252Cratebypass%25252Crequiressl%25252Csource%25252Cupn%25252Cexpire%2526mm%253D31%2526ip%253D209.59.90.242%2526mn%253Dsn-hp57knsd%2526id%253Do-ACv4XPO0-_wcP0GpG5BLIQrZaFiqQmRoQxYs4fhaznIo%2526dur%253D0.000%2526mime%253Dvideo%25252Fwebm%2526ms%253Dau%2526requiressl%253Dyes%2526mt%253D1480947656%2526pl%253D24%2526mv%253Dm%26fallback_host%3Dtc.v24.cache6.googlevideo.com%26itag%3D43%2Ctype%3Dvideo%252Fmp4%253B%2Bcodecs%253D%2522avc1.42001E%252C%2Bmp4a.40.2%2522%26quality%3Dmedium%26url%3Dhttps%253A%252F%252Fr20---sn-hp57knsd.googlevideo.com%252Fvideoplayback%253Fexpire%253D1480969427%2526initcwndbps%253D167500%2526key%253Dyt6%2526source%253Dyoutube%2526signature%253DA26E72A1E8C781F2E4C5427F30504234D291FE54.D121B8CB7595597949616788668EDB73E2AC0541%2526upn%253Dx-eKNJJY5aU%2526nh%253DIgpwcjAzLm1pYTA0Kgw2My4yNDUuMy4xNjk%2526ratebypass%253Dyes%2526itag%253D18%2526ipbits%253D0%2526lmt%253D1473408658970185%2526sparams%253Ddur%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cnh%25252Cpl%25252Cratebypass%25252Crequiressl%25252Csource%25252Cupn%25252Cexpire%2526mm%253D31%2526ip%253D209.59.90.242%2526mn%253Dsn-hp57knsd%2526id%253Do-ACv4XPO0-_wcP0GpG5BLIQrZaFiqQmRoQxYs4fhaznIo%2526dur%253D136.719%2526mime%253Dvideo%25252Fmp4%2526ms%253Dau%2526requiressl%253Dyes%2526mt%253D1480947656%2526pl%253D24%2526mv%253Dm%26fallback_host%3Dtc.v10.cache1.googlevideo.com%26itag%3D18%2Ctype%3Dvideo%252F3gpp%253B%2Bcodecs%253D%2522mp4v.20.3%252C%2Bmp4a.40.2%2522%26quality%3Dsmall%26url%3Dhttps%253A%252F%252Fr20---sn-hp57knsd.googlevideo.com%252Fvideoplayback%253Fexpire%253D1480969427%2526itag%253D36%2526initcwndbps%253D167500%2526ipbits%253D0%2526lmt%253D1473273458311304%2526key%253Dyt6%2526ip%253D209.59.90.242%2526sparams%253Ddur%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cnh%25252Cpl%25252Crequiressl%25252Csource%25252Cupn%25252Cexpire%2526mm%253D31%2526source%253Dyoutube%2526mn%253Dsn-hp57knsd%2526signature%253DA992E8102B27D4A2DFCE8D29E2D98C91BB863126.B0C6B4386759C5888A019BB934456A1D9E6C7E83%2526id%253Do-ACv4XPO0-_wcP0GpG5BLIQrZaFiqQmRoQxYs4fhaznIo%2526dur%253D136.765%2526mime%253Dvideo%25252F3gpp%2526nh%253DIgpwcjAzLm1pYTA0Kgw2My4yNDUuMy4xNjk%2526upn%253Dx-eKNJJY5aU%2526ms%253Dau%2526requiressl%253Dyes%2526mt%253D1480947656%2526pl%253D24%2526mv%253Dm%26fallback_host%3Dtc.v9.cache8.googlevideo.com%26itag%3D36%2Ctype%3Dvideo%252F3gpp%253B%2Bcodecs%253D%2522mp4v.20.3%252C%2Bmp4a.40.2%2522%26quality%3Dsmall%26url%3Dhttps%253A%252F%252Fr20---sn-hp57knsd.googlevideo.com%252Fvideoplayback%253Fexpire%253D1480969427%2526itag%253D17%2526initcwndbps%253D167500%2526ipbits%253D0%2526lmt%253D1473273454810307%2526key%253Dyt6%2526ip%253D209.59.90.242%2526sparams%253Ddur%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cnh%25252Cpl%25252Crequiressl%25252Csource%25252Cupn%25252Cexpire%2526mm%253D31%2526source%253Dyoutube%2526mn%253Dsn-hp57knsd%2526signature%253D181352BE84EAE99EF7665C9561F8F48065779238.2ABBC3DFFD213ADE5C457F0443B00F8880B94BFA%2526id%253Do-ACv4XPO0-_wcP0GpG5BLIQrZaFiqQmRoQxYs4fhaznIo%2526dur%253D136.765%2526mime%253Dvideo%25252F3gpp%2526nh%253DIgpwcjAzLm1pYTA0Kgw2My4yNDUuMy4xNjk%2526upn%253Dx-eKNJJY5aU%2526ms%253Dau%2526requiressl%253Dyes%2526mt%253D1480947656%2526pl%253D24%2526mv%253Dm%26fallback_host%3Dtc.v1.cache7.googlevideo.com%26itag%3D17&eventid=cnhFWKWrO8u1-QWIyaHoBA&cc_fonts_url=https%3A%2F%2Fs.ytimg.com%2Fyts%2Fswfbin%2Fplayer-vfldq9G5_%2Ffonts708.swf&ptchn=E_M8A5yxnLfW0KghEeajjw&ldpj=-27&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&ttsurl=https%3A%2F%2Fwww.youtube.com%2Fapi%2Ftimedtext%3Fasr_langs%3Dde%252Cko%252Cit%252Cru%252Cfr%252Cen%252Cnl%252Cpt%252Cja%252Ces%26caps%3Dasr%26sparams%3Dasr_langs%252Ccaps%252Cv%252Cexpire%26hl%3Den_US%26expire%3D1480973027%26v%3DQ6dsRpVyyWs%26key%3Dyttt1%26signature%3DE3680F2931EC841DFB274A051B0E14A8A5D8C0BC.04004D084C5DE36268E2DA9994D3ABE2E8D3EA7F&caption_translation_languages=n%3DAfrikaans%26lc%3Daf%2Cn%3DAlbanian%26lc%3Dsq%2Cn%3DAmharic%26lc%3Dam%2Cn%3DArabic%26lc%3Dar%2Cn%3DArmenian%26lc%3Dhy%2Cn%3DAzerbaijani%26lc%3Daz%2Cn%3DBasque%26lc%3Deu%2Cn%3DBelarusian%26lc%3Dbe%2Cn%3DBengali%26lc%3Dbn%2Cn%3DBosnian%26lc%3Dbs%2Cn%3DBulgarian%26lc%3Dbg%2Cn%3DBurmese%26lc%3Dmy%2Cn%3DCatalan%26lc%3Dca%2Cn%3DCebuano%26lc%3Dceb%2Cn%3DChinese%2B%2528Simplified%2529%26lc%3Dzh-Hans%2Cn%3DChinese%2B%2528Traditional%2529%26lc%3Dzh-Hant%2Cn%3DCorsican%26lc%3Dco%2Cn%3DCroatian%26lc%3Dhr%2Cn%3DCzech%26lc%3Dcs%2Cn%3DDanish%26lc%3Dda%2Cn%3DDutch%26lc%3Dnl%2Cn%3DEnglish%26lc%3Den%2Cn%3DEsperanto%26lc%3Deo%2Cn%3DEstonian%26lc%3Det%2Cn%3DFilipino%26lc%3Dfil%2Cn%3DFinnish%26lc%3Dfi%2Cn%3DFrench%26lc%3Dfr%2Cn%3DGalician%26lc%3Dgl%2Cn%3DGeorgian%26lc%3Dka%2Cn%3DGerman%26lc%3Dde%2Cn%3DGreek%26lc%3Del%2Cn%3DGujarati%26lc%3Dgu%2Cn%3DHaitian%2BCreole%26lc%3Dht%2Cn%3DHausa%26lc%3Dha%2Cn%3DHawaiian%26lc%3Dhaw%2Cn%3DHebrew%26lc%3Diw%2Cn%3DHindi%26lc%3Dhi%2Cn%3DHmong%26lc%3Dhmn%2Cn%3DHungarian%26lc%3Dhu%2Cn%3DIcelandic%26lc%3Dis%2Cn%3DIgbo%26lc%3Dig%2Cn%3DIndonesian%26lc%3Did%2Cn%3DIrish%26lc%3Dga%2Cn%3DItalian%26lc%3Dit%2Cn%3DJapanese%26lc%3Dja%2Cn%3DJavanese%26lc%3Djv%2Cn%3DKannada%26lc%3Dkn%2Cn%3DKazakh%26lc%3Dkk%2Cn%3DKhmer%26lc%3Dkm%2Cn%3DKorean%26lc%3Dko%2Cn%3DKurdish%26lc%3Dku%2Cn%3DKyrgyz%26lc%3Dky%2Cn%3DLao%26lc%3Dlo%2Cn%3DLatin%26lc%3Dla%2Cn%3DLatvian%26lc%3Dlv%2Cn%3DLithuanian%26lc%3Dlt%2Cn%3DLuxembourgish%26lc%3Dlb%2Cn%3DMacedonian%26lc%3Dmk%2Cn%3DMalagasy%26lc%3Dmg%2Cn%3DMalay%26lc%3Dms%2Cn%3DMalayalam%26lc%3Dml%2Cn%3DMaltese%26lc%3Dmt%2Cn%3DMaori%26lc%3Dmi%2Cn%3DMarathi%26lc%3Dmr%2Cn%3DMongolian%26lc%3Dmn%2Cn%3DNepali%26lc%3Dne%2Cn%3DNorwegian%26lc%3Dno%2Cn%3DNyanja%26lc%3Dny%2Cn%3DPashto%26lc%3Dps%2Cn%3DPersian%26lc%3Dfa%2Cn%3DPolish%26lc%3Dpl%2Cn%3DPortuguese%26lc%3Dpt%2Cn%3DPunjabi%26lc%3Dpa%2Cn%3DRomanian%26lc%3Dro%2Cn%3DRussian%26lc%3Dru%2Cn%3DSamoan%26lc%3Dsm%2Cn%3DScottish%2BGaelic%26lc%3Dgd%2Cn%3DSerbian%26lc%3Dsr%2Cn%3DShona%26lc%3Dsn%2Cn%3DSindhi%26lc%3Dsd%2Cn%3DSinhala%26lc%3Dsi%2Cn%3DSlovak%26lc%3Dsk%2Cn%3DSlovenian%26lc%3Dsl%2Cn%3DSomali%26lc%3Dso%2Cn%3DSouthern%2BSotho%26lc%3Dst%2Cn%3DSpanish%26lc%3Des%2Cn%3DSundanese%26lc%3Dsu%2Cn%3DSwahili%26lc%3Dsw%2Cn%3DSwedish%26lc%3Dsv%2Cn%3DTajik%26lc%3Dtg%2Cn%3DTamil%26lc%3Dta%2Cn%3DTelugu%26lc%3Dte%2Cn%3DThai%26lc%3Dth%2Cn%3DTurkish%26lc%3Dtr%2Cn%3DUkrainian%26lc%3Duk%2Cn%3DUrdu%26lc%3Dur%2Cn%3DUzbek%26lc%3Duz%2Cn%3DVietnamese%26lc%3Dvi%2Cn%3DWelsh%26lc%3Dcy%2Cn%3DWestern%2BFrisian%26lc%3Dfy%2Cn%3DXhosa%26lc%3Dxh%2Cn%3DYiddish%26lc%3Dyi%2Cn%3DYoruba%26lc%3Dyo%2Cn%3DZulu%26lc%3Dzu×tamp=1480947827&status=ok&view_count=22181585&author=Apple&ptk=Apple%252Bvid&adaptive_fmts=bitrate%3D2001359%26quality_label%3D1080p%26fps%3D30%26lmt%3D1473408644466547%26projection_type%3D1%26index%3D715-1058%26size%3D1920x1080%26type%3Dvideo%252Fmp4%253B%2Bcodecs%253D%2522avc1.640028%2522%26clen%3D28215642%26init%3D0-714%26url%3Dhttps%253A%252F%252Fr20---sn-hp57knsd.googlevideo.com%252Fvideoplayback%253Fexpire%253D1480969427%2526initcwndbps%253D167500%2526key%253Dyt6%2526source%253Dyoutube%2526signature%253D92CCFB037E5784B715BDAFB9B5DE195C191C72F7.CEE307C909BB7A449B94152DE2E2F407CBB90106%2526upn%253DY68XqgvUBos%2526nh%253DIgpwcjAzLm1pYTA0Kgw2My4yNDUuMy4xNjk%2526clen%253D28215642%2526gir%253Dyes%2526itag%253D137%2526ipbits%253D0%2526lmt%253D1473408644466547%2526sparams%253Dclen%25252Cdur%25252Cgir%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cnh%25252Cpl%25252Crequiressl%25252Csource%25252Cupn%25252Cexpire%2526mm%253D31%2526ip%253D209.59.90.242%2526mn%253Dsn-hp57knsd%2526id%253Do-ACv4XPO0-_wcP0GpG5BLIQrZaFiqQmRoQxYs4fhaznIo%2526dur%253D136.669%2526mime%253Dvideo%25252Fmp4%2526ms%253Dau%2526requiressl%253Dyes%2526mt%253D1480947656%2526pl%253D24%2526mv%253Dm%26itag%3D137%2Cbitrate%3D2192311%26quality_label%3D1080p%26fps%3D30%26lmt%3D1473279641224380%26projection_type%3D1%26index%3D243-681%26size%3D1920x1080%26type%3Dvideo%252Fwebm%253B%2Bcodecs%253D%2522vp9%2522%26clen%3D22158692%26init%3D0-242%26url%3Dhttps%253A%252F%252Fr20---sn-hp57knsd.googlevideo.com%252Fvideoplayback%253Fexpire%253D1480969427%2526initcwndbps%253D167500%2526key%253Dyt6%2526source%253Dyoutube%2526signature%253DD138676ADCAC1275686C78DFA31AE11FE9207DA1.C76239985C021D91B79FF38598E2EA0A784C1605%2526upn%253DY68XqgvUBos%2526nh%253DIgpwcjAzLm1pYTA0Kgw2My4yNDUuMy4xNjk%2526clen%253D22158692%2526gir%253Dyes%2526itag%253D248%2526ipbits%253D0%2526lmt%253D1473279641224380%2526sparams%253Dclen%25252Cdur%25252Cgir%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cnh%25252Cpl%25252Crequiressl%25252Csource%25252Cupn%25252Cexpire%2526mm%253D31%2526ip%253D209.59.90.242%2526mn%253Dsn-hp57knsd%2526id%253Do-ACv4XPO0-_wcP0GpG5BLIQrZaFiqQmRoQxYs4fhaznIo%2526dur%253D136.636%2526mime%253Dvideo%25252Fwebm%2526ms%253Dau%2526requiressl%253Dyes%2526mt%253D1480947656%2526pl%253D24%2526mv%253Dm%26itag%3D248%2Cbitrate%3D1062524%26quality_label%3D720p%26fps%3D30%26lmt%3D1473408657870947%26projection_type%3D1%26index%3D713-1056%26size%3D1280x720%26type%3Dvideo%252Fmp4%253B%2Bcodecs%253D%2522avc1.4d401f%2522%26clen%3D14991147%26init%3D0-712%26url%3Dhttps%253A%252F%252Fr20---sn-hp57knsd.googlevideo.com%252Fvideoplayback%253Fexpire%253D1480969427%2526initcwndbps%253D167500%2526key%253Dyt6%2526source%253Dyoutube%2526signature%253D81C6F64A92B2833830327E840350493874A2BD6B.872216CAD51034D80E0FFC47996B432924C44858%2526upn%253DY68XqgvUBos%2526nh%253DIgpwcjAzLm1pYTA0Kgw2My4yNDUuMy4xNjk%2526clen%253D14991147%2526gir%253Dyes%2526itag%253D136%2526ipbits%253D0%2526lmt%253D1473408657870947%2526sparams%253Dclen%25252Cdur%25252Cgir%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cnh%25252Cpl%25252Crequiressl%25252Csource%25252Cupn%25252Cexpire%2526mm%253D31%2526ip%253D209.59.90.242%2526mn%253Dsn-hp57knsd%2526id%253Do-ACv4XPO0-_wcP0GpG5BLIQrZaFiqQmRoQxYs4fhaznIo%2526dur%253D136.669%2526mime%253Dvideo%25252Fmp4%2526ms%253Dau%2526requiressl%253Dyes%2526mt%253D1480947656%2526pl%253D24%2526mv%253Dm%26itag%3D136%2Cbitrate%3D1238923%26quality_label%3D720p%26fps%3D30%26lmt%3D1473279879296686%26projection_type%3D1%26index%3D243-674%26size%3D1280x720%26type%3Dvideo%252Fwebm%253B%2Bcodecs%253D%2522vp9%2522%26clen%3D12356024%26init%3D0-242%26url%3Dhttps%253A%252F%252Fr20---sn-hp57knsd.googlevideo.com%252Fvideoplayback%253Fexpire%253D1480969427%2526initcwndbps%253D167500%2526key%253Dyt6%2526source%253Dyoutube%2526signature%253D48C3F150AC09FC235DE56B5FD29A2697EA68360F.D95E2FC893F9B9C1B517150A0B1B7DD8EBA5DE57%2526upn%253DY68XqgvUBos%2526nh%253DIgpwcjAzLm1pYTA0Kgw2My4yNDUuMy4xNjk%2526clen%253D12356024%2526gir%253Dyes%2526itag%253D247%2526ipbits%253D0%2526lmt%253D1473279879296686%2526sparams%253Dclen%25252Cdur%25252Cgir%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cnh%25252Cpl%25252Crequiressl%25252Csource%25252Cupn%25252Cexpire%2526mm%253D31%2526ip%253D209.59.90.242%2526mn%253Dsn-hp57knsd%2526id%253Do-ACv4XPO0-_wcP0GpG5BLIQrZaFiqQmRoQxYs4fhaznIo%2526dur%253D136.636%2526mime%253Dvideo%25252Fwebm%2526ms%253Dau%2526requiressl%253Dyes%2526mt%253D1480947656%2526pl%253D24%2526mv%253Dm%26itag%3D247%2Cbitrate%3D598819%26quality_label%3D480p%26fps%3D30%26lmt%3D1473408657872115%26projection_type%3D1%26index%3D713-1056%26size%3D854x480%26type%3Dvideo%252Fmp4%253B%2Bcodecs%253D%2522avc1.4d401f%2522%26clen%3D7639619%26init%3D0-712%26url%3Dhttps%253A%252F%252Fr20---sn-hp57knsd.googlevideo.com%252Fvideoplayback%253Fexpire%253D1480969427%2526initcwndbps%253D167500%2526key%253Dyt6%2526source%253Dyoutube%2526signature%253DC0515B1079D698FECD1E910CDBE1CA473B28EA90.200D20E61891F50FD964B7179EA33C59B63E88B9%2526upn%253DY68XqgvUBos%2526nh%253DIgpwcjAzLm1pYTA0Kgw2My4yNDUuMy4xNjk%2526clen%253D7639619%2526gir%253Dyes%2526itag%253D135%2526ipbits%253D0%2526lmt%253D1473408657872115%2526sparams%253Dclen%25252Cdur%25252Cgir%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cnh%25252Cpl%25252Crequiressl%25252Csource%25252Cupn%25252Cexpire%2526mm%253D31%2526ip%253D209.59.90.242%2526mn%253Dsn-hp57knsd%2526id%253Do-ACv4XPO0-_wcP0GpG5BLIQrZaFiqQmRoQxYs4fhaznIo%2526dur%253D136.669%2526mime%253Dvideo%25252Fmp4%2526ms%253Dau%2526requiressl%253Dyes%2526mt%253D1480947656%2526pl%253D24%2526mv%253Dm%26itag%3D135%2Cbitrate%3D638648%26quality_label%3D480p%26fps%3D30%26lmt%3D1473279878534038%26projection_type%3D1%26index%3D243-674%26size%3D854x480%26type%3Dvideo%252Fwebm%253B%2Bcodecs%253D%2522vp9%2522%26clen%3D6572571%26init%3D0-242%26url%3Dhttps%253A%252F%252Fr20---sn-hp57knsd.googlevideo.com%252Fvideoplayback%253Fexpire%253D1480969427%2526initcwndbps%253D167500%2526key%253Dyt6%2526source%253Dyoutube%2526signature%253D847C5B04F36B28B603A3A4C3E6AAA2BD52F04190.1688EC5051EFA4B64C5618F0C97D64D5D94A1020%2526upn%253DY68XqgvUBos%2526nh%253DIgpwcjAzLm1pYTA0Kgw2My4yNDUuMy4xNjk%2526clen%253D6572571%2526gir%253Dyes%2526itag%253D244%2526ipbits%253D0%2526lmt%253D1473279878534038%2526sparams%253Dclen%25252Cdur%25252Cgir%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cnh%25252Cpl%25252Crequiressl%25252Csource%25252Cupn%25252Cexpire%2526mm%253D31%2526ip%253D209.59.90.242%2526mn%253Dsn-hp57knsd%2526id%253Do-ACv4XPO0-_wcP0GpG5BLIQrZaFiqQmRoQxYs4fhaznIo%2526dur%253D136.636%2526mime%253Dvideo%25252Fwebm%2526ms%253Dau%2526requiressl%253Dyes%2526mt%253D1480947656%2526pl%253D24%2526mv%253Dm%26itag%3D244%2Cbitrate%3D321633%26quality_label%3D360p%26fps%3D30%26lmt%3D1473408657820066%26projection_type%3D1%26index%3D713-1056%26size%3D640x360%26type%3Dvideo%252Fmp4%253B%2Bcodecs%253D%2522avc1.4d401e%2522%26clen%3D3752171%26init%3D0-712%26url%3Dhttps%253A%252F%252Fr20---sn-hp57knsd.googlevideo.com%252Fvideoplayback%253Fexpire%253D1480969427%2526initcwndbps%253D167500%2526key%253Dyt6%2526source%253Dyoutube%2526signature%253D8552C659B61E082F37EF55FE3FDCBCFC68FF8F3A.D827E8F86BD8C2B23B62D18C85AB4DD8E8F5B1E9%2526upn%253DY68XqgvUBos%2526nh%253DIgpwcjAzLm1pYTA0Kgw2My4yNDUuMy4xNjk%2526clen%253D3752171%2526gir%253Dyes%2526itag%253D134%2526ipbits%253D0%2526lmt%253D1473408657820066%2526sparams%253Dclen%25252Cdur%25252Cgir%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cnh%25252Cpl%25252Crequiressl%25252Csource%25252Cupn%25252Cexpire%2526mm%253D31%2526ip%253D209.59.90.242%2526mn%253Dsn-hp57knsd%2526id%253Do-ACv4XPO0-_wcP0GpG5BLIQrZaFiqQmRoQxYs4fhaznIo%2526dur%253D136.669%2526mime%253Dvideo%25252Fmp4%2526ms%253Dau%2526requiressl%253Dyes%2526mt%253D1480947656%2526pl%253D24%2526mv%253Dm%26itag%3D134%2Cbitrate%3D390441%26quality_label%3D360p%26fps%3D30%26lmt%3D1473279879116670%26projection_type%3D1%26index%3D243-674%26size%3D640x360%26type%3Dvideo%252Fwebm%253B%2Bcodecs%253D%2522vp9%2522%26clen%3D4162676%26init%3D0-242%26url%3Dhttps%253A%252F%252Fr20---sn-hp57knsd.googlevideo.com%252Fvideoplayback%253Fexpire%253D1480969427%2526initcwndbps%253D167500%2526key%253Dyt6%2526source%253Dyoutube%2526signature%253D30448931EA054F725D60177070EE1D5041F215A1.5601CAA979FF9B91AF5724A1A1EDC0D1BBA25816%2526upn%253DY68XqgvUBos%2526nh%253DIgpwcjAzLm1pYTA0Kgw2My4yNDUuMy4xNjk%2526clen%253D4162676%2526gir%253Dyes%2526itag%253D243%2526ipbits%253D0%2526lmt%253D1473279879116670%2526sparams%253Dclen%25252Cdur%25252Cgir%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cnh%25252Cpl%25252Crequiressl%25252Csource%25252Cupn%25252Cexpire%2526mm%253D31%2526ip%253D209.59.90.242%2526mn%253Dsn-hp57knsd%2526id%253Do-ACv4XPO0-_wcP0GpG5BLIQrZaFiqQmRoQxYs4fhaznIo%2526dur%253D136.636%2526mime%253Dvideo%25252Fwebm%2526ms%253Dau%2526requiressl%253Dyes%2526mt%253D1480947656%2526pl%253D24%2526mv%253Dm%26itag%3D243%2Cbitrate%3D247784%26quality_label%3D240p%26fps%3D30%26lmt%3D1473408657773043%26projection_type%3D1%26index%3D713-1056%26size%3D426x240%26type%3Dvideo%252Fmp4%253B%2Bcodecs%253D%2522avc1.4d4015%2522%26clen%3D4103961%26init%3D0-712%26url%3Dhttps%253A%252F%252Fr20---sn-hp57knsd.googlevideo.com%252Fvideoplayback%253Fexpire%253D1480969427%2526initcwndbps%253D167500%2526key%253Dyt6%2526source%253Dyoutube%2526signature%253D48AF8EDA3DE19CFE9739884F520004408E3841DA.CA3828A99B36C4F82B0EE1FC16AEBF4085ED2991%2526upn%253DY68XqgvUBos%2526nh%253DIgpwcjAzLm1pYTA0Kgw2My4yNDUuMy4xNjk%2526clen%253D4103961%2526gir%253Dyes%2526itag%253D133%2526ipbits%253D0%2526lmt%253D1473408657773043%2526sparams%253Dclen%25252Cdur%25252Cgir%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cnh%25252Cpl%25252Crequiressl%25252Csource%25252Cupn%25252Cexpire%2526mm%253D31%2526ip%253D209.59.90.242%2526mn%253Dsn-hp57knsd%2526id%253Do-ACv4XPO0-_wcP0GpG5BLIQrZaFiqQmRoQxYs4fhaznIo%2526dur%253D136.669%2526mime%253Dvideo%25252Fmp4%2526ms%253Dau%2526requiressl%253Dyes%2526mt%253D1480947656%2526pl%253D24%2526mv%253Dm%26itag%3D133%2Cbitrate%3D214849%26quality_label%3D240p%26fps%3D30%26lmt%3D1473279878225184%26projection_type%3D1%26index%3D242-673%26size%3D426x240%26type%3Dvideo%252Fwebm%253B%2Bcodecs%253D%2522vp9%2522%26clen%3D2349040%26init%3D0-241%26url%3Dhttps%253A%252F%252Fr20---sn-hp57knsd.googlevideo.com%252Fvideoplayback%253Fexpire%253D1480969427%2526initcwndbps%253D167500%2526key%253Dyt6%2526source%253Dyoutube%2526signature%253D58EF19C9503725EF0F213FE758DA7562979EB422.2ECADC90738ACA3E3345286F03B496C56ED1CFB3%2526upn%253DY68XqgvUBos%2526nh%253DIgpwcjAzLm1pYTA0Kgw2My4yNDUuMy4xNjk%2526clen%253D2349040%2526gir%253Dyes%2526itag%253D242%2526ipbits%253D0%2526lmt%253D1473279878225184%2526sparams%253Dclen%25252Cdur%25252Cgir%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cnh%25252Cpl%25252Crequiressl%25252Csource%25252Cupn%25252Cexpire%2526mm%253D31%2526ip%253D209.59.90.242%2526mn%253Dsn-hp57knsd%2526id%253Do-ACv4XPO0-_wcP0GpG5BLIQrZaFiqQmRoQxYs4fhaznIo%2526dur%253D136.636%2526mime%253Dvideo%25252Fwebm%2526ms%253Dau%2526requiressl%253Dyes%2526mt%253D1480947656%2526pl%253D24%2526mv%253Dm%26itag%3D242%2Cbitrate%3D116865%26quality_label%3D144p%26fps%3D30%26lmt%3D1473408657773711%26projection_type%3D1%26index%3D675-1018%26size%3D256x144%26type%3Dvideo%252Fmp4%253B%2Bcodecs%253D%2522avc1.4d400c%2522%26clen%3D1852248%26init%3D0-674%26url%3Dhttps%253A%252F%252Fr20---sn-hp57knsd.googlevideo.com%252Fvideoplayback%253Fexpire%253D1480969427%2526initcwndbps%253D167500%2526key%253Dyt6%2526source%253Dyoutube%2526signature%253D11D4170AC8A702DDFF617FA91A665689ED1DBF08.5867B1635425FA1DE198FD81046A2492343ECCB7%2526upn%253DY68XqgvUBos%2526nh%253DIgpwcjAzLm1pYTA0Kgw2My4yNDUuMy4xNjk%2526clen%253D1852248%2526gir%253Dyes%2526itag%253D160%2526ipbits%253D0%2526lmt%253D1473408657773711%2526sparams%253Dclen%25252Cdur%25252Cgir%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cnh%25252Cpl%25252Crequiressl%25252Csource%25252Cupn%25252Cexpire%2526mm%253D31%2526ip%253D209.59.90.242%2526mn%253Dsn-hp57knsd%2526id%253Do-ACv4XPO0-_wcP0GpG5BLIQrZaFiqQmRoQxYs4fhaznIo%2526dur%253D136.669%2526mime%253Dvideo%25252Fmp4%2526ms%253Dau%2526requiressl%253Dyes%2526mt%253D1480947656%2526pl%253D24%2526mv%253Dm%26itag%3D160%2Cbitrate%3D110188%26quality_label%3D144p%26fps%3D30%26lmt%3D1473279878463753%26projection_type%3D1%26index%3D242-673%26size%3D256x144%26type%3Dvideo%252Fwebm%253B%2Bcodecs%253D%2522vp9%2522%26clen%3D1475080%26init%3D0-241%26url%3Dhttps%253A%252F%252Fr20---sn-hp57knsd.googlevideo.com%252Fvideoplayback%253Fexpire%253D1480969427%2526initcwndbps%253D167500%2526key%253Dyt6%2526source%253Dyoutube%2526signature%253DB6ED24091E20E51777750BD3727E59F917A3AC92.5A1D3AD26A2070495432290AF9D427CDCB2C2DE5%2526upn%253DY68XqgvUBos%2526nh%253DIgpwcjAzLm1pYTA0Kgw2My4yNDUuMy4xNjk%2526clen%253D1475080%2526gir%253Dyes%2526itag%253D278%2526ipbits%253D0%2526lmt%253D1473279878463753%2526sparams%253Dclen%25252Cdur%25252Cgir%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cnh%25252Cpl%25252Crequiressl%25252Csource%25252Cupn%25252Cexpire%2526mm%253D31%2526ip%253D209.59.90.242%2526mn%253Dsn-hp57knsd%2526id%253Do-ACv4XPO0-_wcP0GpG5BLIQrZaFiqQmRoQxYs4fhaznIo%2526dur%253D136.636%2526mime%253Dvideo%25252Fwebm%2526ms%253Dau%2526requiressl%253Dyes%2526mt%253D1480947656%2526pl%253D24%2526mv%253Dm%26itag%3D278%2Cindex%3D592-791%26bitrate%3D127977%26projection_type%3D1%26lmt%3D1473408644850312%26type%3Daudio%252Fmp4%253B%2Bcodecs%253D%2522mp4a.40.2%2522%26init%3D0-591%26clen%3D2172089%26url%3Dhttps%253A%252F%252Fr20---sn-hp57knsd.googlevideo.com%252Fvideoplayback%253Fexpire%253D1480969427%2526initcwndbps%253D167500%2526key%253Dyt6%2526source%253Dyoutube%2526signature%253D7E11EFD155364F7C31EAE1AAA7880B1D108841F2.12305D8292BFC8832861BA78453E73E32AAD0741%2526upn%253DY68XqgvUBos%2526nh%253DIgpwcjAzLm1pYTA0Kgw2My4yNDUuMy4xNjk%2526clen%253D2172089%2526gir%253Dyes%2526itag%253D140%2526ipbits%253D0%2526lmt%253D1473408644850312%2526sparams%253Dclen%25252Cdur%25252Cgir%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cnh%25252Cpl%25252Crequiressl%25252Csource%25252Cupn%25252Cexpire%2526mm%253D31%2526ip%253D209.59.90.242%2526mn%253Dsn-hp57knsd%2526id%253Do-ACv4XPO0-_wcP0GpG5BLIQrZaFiqQmRoQxYs4fhaznIo%2526dur%253D136.719%2526mime%253Daudio%25252Fmp4%2526ms%253Dau%2526requiressl%253Dyes%2526mt%253D1480947656%2526pl%253D24%2526mv%253Dm%26itag%3D140%2Cindex%3D4452-4686%26bitrate%3D129694%26projection_type%3D1%26lmt%3D1473279320428711%26type%3Daudio%252Fwebm%253B%2Bcodecs%253D%2522vorbis%2522%26init%3D0-4451%26clen%3D2048449%26url%3Dhttps%253A%252F%252Fr20---sn-hp57knsd.googlevideo.com%252Fvideoplayback%253Fexpire%253D1480969427%2526initcwndbps%253D167500%2526key%253Dyt6%2526source%253Dyoutube%2526signature%253D644CFA846F78A6C01005353FBB04ECA137ABFE22.BE85EDE02B37448B71DDFC0E2B75AB66B1184920%2526upn%253DY68XqgvUBos%2526nh%253DIgpwcjAzLm1pYTA0Kgw2My4yNDUuMy4xNjk%2526clen%253D2048449%2526gir%253Dyes%2526itag%253D171%2526ipbits%253D0%2526lmt%253D1473279320428711%2526sparams%253Dclen%25252Cdur%25252Cgir%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cnh%25252Cpl%25252Crequiressl%25252Csource%25252Cupn%25252Cexpire%2526mm%253D31%2526ip%253D209.59.90.242%2526mn%253Dsn-hp57knsd%2526id%253Do-ACv4XPO0-_wcP0GpG5BLIQrZaFiqQmRoQxYs4fhaznIo%2526dur%253D136.660%2526mime%253Daudio%25252Fwebm%2526ms%253Dau%2526requiressl%253Dyes%2526mt%253D1480947656%2526pl%253D24%2526mv%253Dm%26itag%3D171%2Cindex%3D272-505%26bitrate%3D53942%26projection_type%3D1%26lmt%3D1473279313279079%26type%3Daudio%252Fwebm%253B%2Bcodecs%253D%2522opus%2522%26init%3D0-271%26clen%3D842802%26url%3Dhttps%253A%252F%252Fr20---sn-hp57knsd.googlevideo.com%252Fvideoplayback%253Fexpire%253D1480969427%2526initcwndbps%253D167500%2526key%253Dyt6%2526source%253Dyoutube%2526signature%253DBBACE57AB1C467684D1F7A4F8711F6E92FF1B058.7794F4C13578C7C221AE7598A7907C64F78AAB4B%2526upn%253DY68XqgvUBos%2526nh%253DIgpwcjAzLm1pYTA0Kgw2My4yNDUuMy4xNjk%2526clen%253D842802%2526gir%253Dyes%2526itag%253D249%2526ipbits%253D0%2526lmt%253D1473279313279079%2526sparams%253Dclen%25252Cdur%25252Cgir%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cnh%25252Cpl%25252Crequiressl%25252Csource%25252Cupn%25252Cexpire%2526mm%253D31%2526ip%253D209.59.90.242%2526mn%253Dsn-hp57knsd%2526id%253Do-ACv4XPO0-_wcP0GpG5BLIQrZaFiqQmRoQxYs4fhaznIo%2526dur%253D136.661%2526mime%253Daudio%25252Fwebm%2526ms%253Dau%2526requiressl%253Dyes%2526mt%253D1480947656%2526pl%253D24%2526mv%253Dm%26itag%3D249%2Cindex%3D272-506%26bitrate%3D73884%26projection_type%3D1%26lmt%3D1473279319403451%26type%3Daudio%252Fwebm%253B%2Bcodecs%253D%2522opus%2522%26init%3D0-271%26clen%3D1107745%26url%3Dhttps%253A%252F%252Fr20---sn-hp57knsd.googlevideo.com%252Fvideoplayback%253Fexpire%253D1480969427%2526initcwndbps%253D167500%2526key%253Dyt6%2526source%253Dyoutube%2526signature%253DBBC6BC4641D607C93B9B7980D789D9D74F5FDB70.5645A3E044CC630CE631AC5A743F82EA55E65CDA%2526upn%253DY68XqgvUBos%2526nh%253DIgpwcjAzLm1pYTA0Kgw2My4yNDUuMy4xNjk%2526clen%253D1107745%2526gir%253Dyes%2526itag%253D250%2526ipbits%253D0%2526lmt%253D1473279319403451%2526sparams%253Dclen%25252Cdur%25252Cgir%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cnh%25252Cpl%25252Crequiressl%25252Csource%25252Cupn%25252Cexpire%2526mm%253D31%2526ip%253D209.59.90.242%2526mn%253Dsn-hp57knsd%2526id%253Do-ACv4XPO0-_wcP0GpG5BLIQrZaFiqQmRoQxYs4fhaznIo%2526dur%253D136.661%2526mime%253Daudio%25252Fwebm%2526ms%253Dau%2526requiressl%253Dyes%2526mt%253D1480947656%2526pl%253D24%2526mv%253Dm%26itag%3D250%2Cindex%3D272-506%26bitrate%3D145184%26projection_type%3D1%26lmt%3D1473279317270930%26type%3Daudio%252Fwebm%253B%2Bcodecs%253D%2522opus%2522%26init%3D0-271%26clen%3D2198431%26url%3Dhttps%253A%252F%252Fr20---sn-hp57knsd.googlevideo.com%252Fvideoplayback%253Fexpire%253D1480969427%2526initcwndbps%253D167500%2526key%253Dyt6%2526source%253Dyoutube%2526signature%253D890AFCEA408AAA460AF90FBDA5BE9D4879DACCFB.BCB89B4335666D486A0AAAF96657690108408A70%2526upn%253DY68XqgvUBos%2526nh%253DIgpwcjAzLm1pYTA0Kgw2My4yNDUuMy4xNjk%2526clen%253D2198431%2526gir%253Dyes%2526itag%253D251%2526ipbits%253D0%2526lmt%253D1473279317270930%2526sparams%253Dclen%25252Cdur%25252Cgir%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cnh%25252Cpl%25252Crequiressl%25252Csource%25252Cupn%25252Cexpire%2526mm%253D31%2526ip%253D209.59.90.242%2526mn%253Dsn-hp57knsd%2526id%253Do-ACv4XPO0-_wcP0GpG5BLIQrZaFiqQmRoQxYs4fhaznIo%2526dur%253D136.661%2526mime%253Daudio%25252Fwebm%2526ms%253Dau%2526requiressl%253Dyes%2526mt%253D1480947656%2526pl%253D24%2526mv%253Dm%26itag%3D251&cc_asr=1&video_id=Q6dsRpVyyWs&token=tgbZwmsh2CYBwdHO2AnP4LQnvBqY20in8SYfIfR-GtM%3D&caption_tracks=u%3Dhttps%253A%252F%252Fwww.youtube.com%252Fapi%252Ftimedtext%253Fasr_langs%253Dde%25252Cko%25252Cit%25252Cru%25252Cfr%25252Cen%25252Cnl%25252Cpt%25252Cja%25252Ces%2526caps%253Dasr%2526sparams%253Dasr_langs%25252Ccaps%25252Cv%25252Cexpire%2526hl%253Den_US%2526expire%253D1480973027%2526v%253DQ6dsRpVyyWs%2526key%253Dyttt1%2526signature%253DE3680F2931EC841DFB274A051B0E14A8A5D8C0BC.04004D084C5DE36268E2DA9994D3ABE2E8D3EA7F%2526kind%253Dasr%2526lang%253Den%26t%3D1%26v%3Da.en%26lc%3Den%26n%3DEnglish%2B%2528auto-generated%2529%26k%3Dasr%2Cu%3Dhttps%253A%252F%252Fwww.youtube.com%252Fapi%252Ftimedtext%253Fasr_langs%253Dde%25252Cko%25252Cit%25252Cru%25252Cfr%25252Cen%25252Cnl%25252Cpt%25252Cja%25252Ces%2526caps%253Dasr%2526sparams%253Dasr_langs%25252Ccaps%25252Cv%25252Cexpire%2526hl%253Den_US%2526expire%253D1480973027%2526v%253DQ6dsRpVyyWs%2526key%253Dyttt1%2526signature%253DE3680F2931EC841DFB274A051B0E14A8A5D8C0BC.04004D084C5DE36268E2DA9994D3ABE2E8D3EA7F%2526lang%253Den%26t%3D1%26v%3D.en%26n%3DEnglish%26lc%3Den&iv_module=https%3A%2F%2Fs.ytimg.com%2Fyts%2Fswfbin%2Fplayer-vfldq9G5_%2Fiv_module.swf&iurl=https%3A%2F%2Fi.ytimg.com%2Fvi%2FQ6dsRpVyyWs%2Fhqdefault.jpg&vm=CAEQAA&short_view_count_text=22M+views&loudness=-21.2889995575&iv_invideo_url=https%3A%2F%2Fwww.youtube.com%2Fannotations_invideo%3Fcap_hist%3D1%26video_id%3DQ6dsRpVyyWs%26ei%3DcnhFWKWrO8u1-QWIyaHoBA&cl=140839172&iurlmq=https%3A%2F%2Fi.ytimg.com%2Fvi%2FQ6dsRpVyyWs%2Fmqdefault.jpg&allow_embed=1&video_verticals=%5B1071%2C+1533%5D&fexp=9413138%2C9419452%2C9422596%2C9424416%2C9428398%2C9431012%2C9432565%2C9433096%2C9433221%2C9434046%2C9434289%2C9439580%2C9439971%2C9441514%2C9441651%2C9442073%2C9444206%2C9445371%2C9445895%2C9446054%2C9446364%2C9448915%2C9449034%2C9449243%2C9451415%2C9452154%2C9452377%2C9452882%2C9453797%2C9454390%2C9454476%2C9454867%2C9456273%2C9456582&muted=0&of=dNyaYt9d-ChWdon-o0nRlg&length_seconds=137&cc_font=Arial+Unicode+MS%2C+arial%2C+verdana%2C+_sans&caption_audio_tracks=d%3D1%26v%3D0%26i%3D1%252C0&title=Apple+%E2%80%93+Introducing+iPhone+7&videostats_playback_base_url=https%3A%2F%2Fs.youtube.com&pltype=content&csi_page_type=embed&iv_load_policy=1", + "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=\"36,35,34\"", + "Set-Cookie" : "YSC=mAUks2IAj0s; path=\/; domain=.youtube.com; httponly", + "Server" : "YouTubeFrontEnd", + "Content-Encoding" : "gzip", + "X-XSS-Protection" : "1; mode=block; report=https:\/\/www.google.com\/appserve\/security-bugs\/log\/youtube", + "Expires" : "Tue, 27 Apr 1971 19:44:06 EST", + "Transfer-Encoding" : "Identity", + "Cache-Control" : "no-store", + "Date" : "Mon, 05 Dec 2016 14:23: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=embedded&hl=en&ps=default&video_id=Q6dsRpVyyWs" + } +] \ No newline at end of file diff --git a/XCDYouTubeKit Tests/Cassettes/XCDYouTubeClientTestCase/testVideoWithUndeterminedCaptionLanguageCode.json b/XCDYouTubeKit Tests/Cassettes/XCDYouTubeClientTestCase/testVideoWithUndeterminedCaptionLanguageCode.json new file mode 100644 index 000000000..bd58a693d --- /dev/null +++ b/XCDYouTubeKit Tests/Cassettes/XCDYouTubeClientTestCase/testVideoWithUndeterminedCaptionLanguageCode.json @@ -0,0 +1,44 @@ +[ + { + "body" : "cr=US&status=ok&is_listed=1&remarketing_url=https%3A%2F%2Fgoogleads.g.doubleclick.net%2Fpagead%2Fviewthroughconversion%2F962985656%2F%3Fbackend%3Dinnertube%26cname%3D1%26cver%3D1_20161130%26data%3Dbackend%253Dinnertube%253Bcname%253D1%253Bcver%253D1_20161130%253Bm%253D1%253Bptype%253Dview%253Bsrr%253Dn%253Btype%253Dview%253Butuid%253DVp3nfGRxmMadNDuVbJSk8A%253Butvid%253DRgKAFK5djSk%253Bw%253D1%26foc_id%3DVp3nfGRxmMadNDuVbJSk8A%26label%3Dfollowon_view%26ptype%3Dview%26srr%3Dn&gapi_hint_params=m%3B%2F_%2Fscs%2Fabc-static%2F_%2Fjs%2Fk%3Dgapi.gapi.en.U_ZjamIixkk.O%2Fm%3D__features__%2Frt%3Dj%2Fd%3D1%2Frs%3DAHpOoo-vbowTsdJgxjMinuRjWcqUL15H1g&uid=Vp3nfGRxmMadNDuVbJSk8A&pyv_ad_channel=&iv_invideo_url=https%3A%2F%2Fwww.youtube.com%2Fannotations_invideo%3Fcap_hist%3D1%26video_id%3DRgKAFK5djSk%26client%3D1%26ei%3DpXhFWPGAMNjC-AWZgJfwAw&idpj=-3×tamp=1480947878&ssl=1&csn=pXhFWPGAMNjC-AWZgJfwAw&rmktEnabled=1&video_id=RgKAFK5djSk&vid=RgKAFK5djSk&itct=&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&caption_translation_languages=n%3DAfrikaans%26lc%3Daf%2Cn%3DAlbanian%26lc%3Dsq%2Cn%3DAmharic%26lc%3Dam%2Cn%3DArabic%26lc%3Dar%2Cn%3DArmenian%26lc%3Dhy%2Cn%3DAzerbaijani%26lc%3Daz%2Cn%3DBasque%26lc%3Deu%2Cn%3DBelarusian%26lc%3Dbe%2Cn%3DBengali%26lc%3Dbn%2Cn%3DBosnian%26lc%3Dbs%2Cn%3DBulgarian%26lc%3Dbg%2Cn%3DBurmese%26lc%3Dmy%2Cn%3DCatalan%26lc%3Dca%2Cn%3DCebuano%26lc%3Dceb%2Cn%3DChinese%2B%2528Simplified%2529%26lc%3Dzh-Hans%2Cn%3DChinese%2B%2528Traditional%2529%26lc%3Dzh-Hant%2Cn%3DCorsican%26lc%3Dco%2Cn%3DCroatian%26lc%3Dhr%2Cn%3DCzech%26lc%3Dcs%2Cn%3DDanish%26lc%3Dda%2Cn%3DDutch%26lc%3Dnl%2Cn%3DEnglish%26lc%3Den%2Cn%3DEsperanto%26lc%3Deo%2Cn%3DEstonian%26lc%3Det%2Cn%3DFilipino%26lc%3Dfil%2Cn%3DFinnish%26lc%3Dfi%2Cn%3DFrench%26lc%3Dfr%2Cn%3DGalician%26lc%3Dgl%2Cn%3DGeorgian%26lc%3Dka%2Cn%3DGerman%26lc%3Dde%2Cn%3DGreek%26lc%3Del%2Cn%3DGujarati%26lc%3Dgu%2Cn%3DHaitian%2BCreole%26lc%3Dht%2Cn%3DHausa%26lc%3Dha%2Cn%3DHawaiian%26lc%3Dhaw%2Cn%3DHebrew%26lc%3Diw%2Cn%3DHindi%26lc%3Dhi%2Cn%3DHmong%26lc%3Dhmn%2Cn%3DHungarian%26lc%3Dhu%2Cn%3DIcelandic%26lc%3Dis%2Cn%3DIgbo%26lc%3Dig%2Cn%3DIndonesian%26lc%3Did%2Cn%3DIrish%26lc%3Dga%2Cn%3DItalian%26lc%3Dit%2Cn%3DJapanese%26lc%3Dja%2Cn%3DJavanese%26lc%3Djv%2Cn%3DKannada%26lc%3Dkn%2Cn%3DKazakh%26lc%3Dkk%2Cn%3DKhmer%26lc%3Dkm%2Cn%3DKorean%26lc%3Dko%2Cn%3DKurdish%26lc%3Dku%2Cn%3DKyrgyz%26lc%3Dky%2Cn%3DLao%26lc%3Dlo%2Cn%3DLatin%26lc%3Dla%2Cn%3DLatvian%26lc%3Dlv%2Cn%3DLithuanian%26lc%3Dlt%2Cn%3DLuxembourgish%26lc%3Dlb%2Cn%3DMacedonian%26lc%3Dmk%2Cn%3DMalagasy%26lc%3Dmg%2Cn%3DMalay%26lc%3Dms%2Cn%3DMalayalam%26lc%3Dml%2Cn%3DMaltese%26lc%3Dmt%2Cn%3DMaori%26lc%3Dmi%2Cn%3DMarathi%26lc%3Dmr%2Cn%3DMongolian%26lc%3Dmn%2Cn%3DNepali%26lc%3Dne%2Cn%3DNorwegian%26lc%3Dno%2Cn%3DNyanja%26lc%3Dny%2Cn%3DPashto%26lc%3Dps%2Cn%3DPersian%26lc%3Dfa%2Cn%3DPolish%26lc%3Dpl%2Cn%3DPortuguese%26lc%3Dpt%2Cn%3DPunjabi%26lc%3Dpa%2Cn%3DRomanian%26lc%3Dro%2Cn%3DRussian%26lc%3Dru%2Cn%3DSamoan%26lc%3Dsm%2Cn%3DScottish%2BGaelic%26lc%3Dgd%2Cn%3DSerbian%26lc%3Dsr%2Cn%3DShona%26lc%3Dsn%2Cn%3DSindhi%26lc%3Dsd%2Cn%3DSinhala%26lc%3Dsi%2Cn%3DSlovak%26lc%3Dsk%2Cn%3DSlovenian%26lc%3Dsl%2Cn%3DSomali%26lc%3Dso%2Cn%3DSouthern%2BSotho%26lc%3Dst%2Cn%3DSpanish%26lc%3Des%2Cn%3DSundanese%26lc%3Dsu%2Cn%3DSwahili%26lc%3Dsw%2Cn%3DSwedish%26lc%3Dsv%2Cn%3DTajik%26lc%3Dtg%2Cn%3DTamil%26lc%3Dta%2Cn%3DTelugu%26lc%3Dte%2Cn%3DThai%26lc%3Dth%2Cn%3DTurkish%26lc%3Dtr%2Cn%3DUkrainian%26lc%3Duk%2Cn%3DUrdu%26lc%3Dur%2Cn%3DUzbek%26lc%3Duz%2Cn%3DVietnamese%26lc%3Dvi%2Cn%3DWelsh%26lc%3Dcy%2Cn%3DWestern%2BFrisian%26lc%3Dfy%2Cn%3DXhosa%26lc%3Dxh%2Cn%3DYiddish%26lc%3Dyi%2Cn%3DYoruba%26lc%3Dyo%2Cn%3DZulu%26lc%3Dzu&iurlmaxres=https%3A%2F%2Fi.ytimg.com%2Fvi%2FRgKAFK5djSk%2Fmaxresdefault.jpg&title=Wiz+Khalifa+-+See+You+Again+ft.+Charlie+Puth+%5BOfficial+Video%5D+Furious+7+Soundtrack&probe_url=https%3A%2F%2Fr4---sn-4g57knrz.googlevideo.com%2Fvideogoodput%3Fid%3Do-ADaLUyPFgsBbHL8kLT23VTejlxdida_vlUQQYqJ9tctu%26source%3Dgoodput%26range%3D0-4999%26expire%3D1480951477%26ip%3D209.59.90.242%26ms%3Dpm%26mm%3D35%26pl%3D24%26nh%3DIgpwZjAyLmZyYTE2Kg02Mi4xMTUuMTUxLjI4%26sparams%3Did%2Csource%2Crange%2Cexpire%2Cip%2Cms%2Cmm%2Cpl%2Cnh%26signature%3D0124938206FD32A5215EAB36138435D97BACB57B.296671473677B1F40C4EE181FFAC8E1DC9C7836A%26key%3Dcms1&cl=140839172&root_ve_type=14057&loudness=-17.388999939&vm=CAIQAA&author=Wiz+Khalifa&cver=1.20161130&iv_module=https%3A%2F%2Fs.ytimg.com%2Fyts%2Fswfbin%2Fplayer-vfldq9G5_%2Fiv_module.swf&apiary_host_firstparty=&videostats_playback_base_url=https%3A%2F%2Fs.youtube.com%2Fapi%2Fstats%2Fplayback%3Fcl%3D140839172%26docid%3DRgKAFK5djSk%26ns%3Dyt%26len%3D238%26plid%3DAAVC6gwxCqW399-b%26vm%3DCAIQAA%26el%3Ddetailpage%26ei%3DpXhFWPGAMNjC-AWZgJfwAw%26fexp%3D9413138%252C9419452%252C9422596%252C9424416%252C9428398%252C9431012%252C9432565%252C9433096%252C9433221%252C9434046%252C9434289%252C9439580%252C9439971%252C9441514%252C9441651%252C9442073%252C9444206%252C9445371%252C9445895%252C9446054%252C9446364%252C9448915%252C9449034%252C9449243%252C9451415%252C9452154%252C9452377%252C9452882%252C9453797%252C9454390%252C9454476%252C9454867%252C9456273%252C9456582%26of%3DQGmll0UFduiwtazc2IGB_A&focEnabled=1&innertube_api_key=AIzaSyAO_FJ2SlqU8Q4STEHLGCilw_Y9_11qcW8&account_playback_token=QUFFLUhqa2RKZWNqQkNaNGxTa3Z5SHBQQ3pmU3QzQm80UXxBQ3Jtc0tuOTZOUjlBVEI4ZmVLZlE2Uk1DUFpYRnkzeFlWeUwzYlgtcHdYeFZraUJ1cFNSZnNhclplbExUelI0ejNQa3I0a3ZUTHdYRmFfeHZBTWRyOUxfQ0J3dERMMzhVbUNDVWpub2xlR3gwbFVSekZSdklmNA%3D%3D&adaptive_fmts=projection_type%3D1%26clen%3D57309304%26bitrate%3D3010262%26itag%3D137%26lmt%3D1478640193524064%26size%3D1920x1080%26index%3D715-1310%26url%3Dhttps%253A%252F%252Fr5---sn-hp57knly.googlevideo.com%252Fvideoplayback%253Fip%253D209.59.90.242%2526mime%253Dvideo%25252Fmp4%2526requiressl%253Dyes%2526mn%253Dsn-hp57knly%2526pl%253D24%2526source%253Dyoutube%2526mm%253D31%2526mv%253Dm%2526mt%253D1480947656%2526ms%253Dau%2526id%253Do-AM7-Jfun5pc-Y72NsTHEILPZ-ey6Jmr-Zl8i6n7lvTRL%2526expire%253D1480969477%2526gir%253Dyes%2526lmt%253D1478640193524064%2526sparams%253Dclen%25252Cdur%25252Cei%25252Cgir%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Ckeepalive%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cnh%25252Cpl%25252Crequiressl%25252Csource%25252Cupn%25252Cexpire%2526ipbits%253D0%2526ei%253DpXhFWPGAMNjC-AWZgJfwAw%2526initcwndbps%253D160000%2526signature%253D10A9AEF473E71A8D57CE41CF88DDE7A5128C3F0E.C91745A86BB14E99EBBA66A2AB39AB60F6114263%2526dur%253D237.362%2526nh%253DIgpwcjAyLm1pYTA0Kgw2My4yNDUuNi4xODE%2526key%253Dyt6%2526upn%253Dj43tDjKmyec%2526keepalive%253Dyes%2526itag%253D137%2526clen%253D57309304%26fps%3D24%26type%3Dvideo%252Fmp4%253B%2Bcodecs%253D%2522avc1.640028%2522%26xtags%3D%26init%3D0-714%26quality_label%3D1080p%2Cprojection_type%3D1%26clen%3D44989679%26bitrate%3D2711902%26itag%3D248%26lmt%3D1449572197116515%26size%3D1920x1080%26index%3D243-1026%26url%3Dhttps%253A%252F%252Fr5---sn-hp57knly.googlevideo.com%252Fvideoplayback%253Fip%253D209.59.90.242%2526mime%253Dvideo%25252Fwebm%2526requiressl%253Dyes%2526mn%253Dsn-hp57knly%2526pl%253D24%2526source%253Dyoutube%2526mm%253D31%2526mv%253Dm%2526mt%253D1480947656%2526ms%253Dau%2526id%253Do-AM7-Jfun5pc-Y72NsTHEILPZ-ey6Jmr-Zl8i6n7lvTRL%2526expire%253D1480969477%2526gir%253Dyes%2526lmt%253D1449572197116515%2526sparams%253Dclen%25252Cdur%25252Cei%25252Cgir%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Ckeepalive%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cnh%25252Cpl%25252Crequiressl%25252Csource%25252Cupn%25252Cexpire%2526ipbits%253D0%2526ei%253DpXhFWPGAMNjC-AWZgJfwAw%2526initcwndbps%253D160000%2526signature%253D9A11BA53F49DAA38341EF00AFBD8C32CF3911AF9.AF819794F42181F6DA48F2BEA8CE90FB12379C9E%2526dur%253D237.320%2526nh%253DIgpwcjAyLm1pYTA0Kgw2My4yNDUuNi4xODE%2526key%253Dyt6%2526upn%253Dj43tDjKmyec%2526keepalive%253Dyes%2526itag%253D248%2526clen%253D44989679%26fps%3D24%26type%3Dvideo%252Fwebm%253B%2Bcodecs%253D%2522vp9%2522%26xtags%3D%26init%3D0-242%26quality_label%3D1080p%2Cprojection_type%3D1%26clen%3D30067810%26bitrate%3D1575465%26itag%3D136%26lmt%3D1478641791638236%26size%3D1280x720%26index%3D713-1308%26url%3Dhttps%253A%252F%252Fr5---sn-hp57knly.googlevideo.com%252Fvideoplayback%253Fip%253D209.59.90.242%2526mime%253Dvideo%25252Fmp4%2526requiressl%253Dyes%2526mn%253Dsn-hp57knly%2526pl%253D24%2526source%253Dyoutube%2526mm%253D31%2526mv%253Dm%2526mt%253D1480947656%2526ms%253Dau%2526id%253Do-AM7-Jfun5pc-Y72NsTHEILPZ-ey6Jmr-Zl8i6n7lvTRL%2526expire%253D1480969477%2526gir%253Dyes%2526lmt%253D1478641791638236%2526sparams%253Dclen%25252Cdur%25252Cei%25252Cgir%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Ckeepalive%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cnh%25252Cpl%25252Crequiressl%25252Csource%25252Cupn%25252Cexpire%2526ipbits%253D0%2526ei%253DpXhFWPGAMNjC-AWZgJfwAw%2526initcwndbps%253D160000%2526signature%253D1E90BE0D7936C823BAAEC5D7A574AB1792AE66F8.29CA696DBC3CB6E2138A83E1263A4348EA23936D%2526dur%253D237.362%2526nh%253DIgpwcjAyLm1pYTA0Kgw2My4yNDUuNi4xODE%2526key%253Dyt6%2526upn%253Dj43tDjKmyec%2526keepalive%253Dyes%2526itag%253D136%2526clen%253D30067810%26fps%3D24%26type%3Dvideo%252Fmp4%253B%2Bcodecs%253D%2522avc1.4d401f%2522%26xtags%3D%26init%3D0-712%26quality_label%3D720p%2Cprojection_type%3D1%26clen%3D23491746%26bitrate%3D1363485%26itag%3D247%26lmt%3D1449573017318199%26size%3D1280x720%26index%3D243-1012%26url%3Dhttps%253A%252F%252Fr5---sn-hp57knly.googlevideo.com%252Fvideoplayback%253Fip%253D209.59.90.242%2526mime%253Dvideo%25252Fwebm%2526requiressl%253Dyes%2526mn%253Dsn-hp57knly%2526pl%253D24%2526source%253Dyoutube%2526mm%253D31%2526mv%253Dm%2526mt%253D1480947656%2526ms%253Dau%2526id%253Do-AM7-Jfun5pc-Y72NsTHEILPZ-ey6Jmr-Zl8i6n7lvTRL%2526expire%253D1480969477%2526gir%253Dyes%2526lmt%253D1449573017318199%2526sparams%253Dclen%25252Cdur%25252Cei%25252Cgir%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Ckeepalive%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cnh%25252Cpl%25252Crequiressl%25252Csource%25252Cupn%25252Cexpire%2526ipbits%253D0%2526ei%253DpXhFWPGAMNjC-AWZgJfwAw%2526initcwndbps%253D160000%2526signature%253DA8A4285E225E6C63930B2B3C6783461BC571D922.503A364C965BD9FF72F3B12416527E549D4C3288%2526dur%253D237.320%2526nh%253DIgpwcjAyLm1pYTA0Kgw2My4yNDUuNi4xODE%2526key%253Dyt6%2526upn%253Dj43tDjKmyec%2526keepalive%253Dyes%2526itag%253D247%2526clen%253D23491746%26fps%3D24%26type%3Dvideo%252Fwebm%253B%2Bcodecs%253D%2522vp9%2522%26xtags%3D%26init%3D0-242%26quality_label%3D720p%2Cprojection_type%3D1%26clen%3D15417622%26bitrate%3D849752%26itag%3D135%26lmt%3D1478641791837561%26size%3D854x480%26index%3D713-1308%26url%3Dhttps%253A%252F%252Fr5---sn-hp57knly.googlevideo.com%252Fvideoplayback%253Fip%253D209.59.90.242%2526mime%253Dvideo%25252Fmp4%2526requiressl%253Dyes%2526mn%253Dsn-hp57knly%2526pl%253D24%2526source%253Dyoutube%2526mm%253D31%2526mv%253Dm%2526mt%253D1480947656%2526ms%253Dau%2526id%253Do-AM7-Jfun5pc-Y72NsTHEILPZ-ey6Jmr-Zl8i6n7lvTRL%2526expire%253D1480969477%2526gir%253Dyes%2526lmt%253D1478641791837561%2526sparams%253Dclen%25252Cdur%25252Cei%25252Cgir%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Ckeepalive%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cnh%25252Cpl%25252Crequiressl%25252Csource%25252Cupn%25252Cexpire%2526ipbits%253D0%2526ei%253DpXhFWPGAMNjC-AWZgJfwAw%2526initcwndbps%253D160000%2526signature%253D97E9F89F21D42F8693BEE5D50B4411986F10695E.A7F16BC6070E1D0CDCED21E0861827E3202E330B%2526dur%253D237.362%2526nh%253DIgpwcjAyLm1pYTA0Kgw2My4yNDUuNi4xODE%2526key%253Dyt6%2526upn%253Dj43tDjKmyec%2526keepalive%253Dyes%2526itag%253D135%2526clen%253D15417622%26fps%3D24%26type%3Dvideo%252Fmp4%253B%2Bcodecs%253D%2522avc1.4d401e%2522%26xtags%3D%26init%3D0-712%26quality_label%3D480p%2Cprojection_type%3D1%26clen%3D12473006%26bitrate%3D712638%26itag%3D244%26lmt%3D1449573015368625%26size%3D854x480%26index%3D243-998%26url%3Dhttps%253A%252F%252Fr5---sn-hp57knly.googlevideo.com%252Fvideoplayback%253Fip%253D209.59.90.242%2526mime%253Dvideo%25252Fwebm%2526requiressl%253Dyes%2526mn%253Dsn-hp57knly%2526pl%253D24%2526source%253Dyoutube%2526mm%253D31%2526mv%253Dm%2526mt%253D1480947656%2526ms%253Dau%2526id%253Do-AM7-Jfun5pc-Y72NsTHEILPZ-ey6Jmr-Zl8i6n7lvTRL%2526expire%253D1480969477%2526gir%253Dyes%2526lmt%253D1449573015368625%2526sparams%253Dclen%25252Cdur%25252Cei%25252Cgir%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Ckeepalive%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cnh%25252Cpl%25252Crequiressl%25252Csource%25252Cupn%25252Cexpire%2526ipbits%253D0%2526ei%253DpXhFWPGAMNjC-AWZgJfwAw%2526initcwndbps%253D160000%2526signature%253D7D5724A6DE5F563D00E20053F1671249985AA88B.65829980154DB360408F10F886438F1826F44A20%2526dur%253D237.320%2526nh%253DIgpwcjAyLm1pYTA0Kgw2My4yNDUuNi4xODE%2526key%253Dyt6%2526upn%253Dj43tDjKmyec%2526keepalive%253Dyes%2526itag%253D244%2526clen%253D12473006%26fps%3D24%26type%3Dvideo%252Fwebm%253B%2Bcodecs%253D%2522vp9%2522%26xtags%3D%26init%3D0-242%26quality_label%3D480p%2Cprojection_type%3D1%26clen%3D7404814%26bitrate%3D412081%26itag%3D134%26lmt%3D1478641790034655%26size%3D640x360%26index%3D713-1308%26url%3Dhttps%253A%252F%252Fr5---sn-hp57knly.googlevideo.com%252Fvideoplayback%253Fip%253D209.59.90.242%2526mime%253Dvideo%25252Fmp4%2526requiressl%253Dyes%2526mn%253Dsn-hp57knly%2526pl%253D24%2526source%253Dyoutube%2526mm%253D31%2526mv%253Dm%2526mt%253D1480947656%2526ms%253Dau%2526id%253Do-AM7-Jfun5pc-Y72NsTHEILPZ-ey6Jmr-Zl8i6n7lvTRL%2526expire%253D1480969477%2526gir%253Dyes%2526lmt%253D1478641790034655%2526sparams%253Dclen%25252Cdur%25252Cei%25252Cgir%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Ckeepalive%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cnh%25252Cpl%25252Crequiressl%25252Csource%25252Cupn%25252Cexpire%2526ipbits%253D0%2526ei%253DpXhFWPGAMNjC-AWZgJfwAw%2526initcwndbps%253D160000%2526signature%253D86FE8ED0721ED46CEB6464AA2B1227F0C379D90A.A45088D66BD9D257212868760139FB70898CB015%2526dur%253D237.362%2526nh%253DIgpwcjAyLm1pYTA0Kgw2My4yNDUuNi4xODE%2526key%253Dyt6%2526upn%253Dj43tDjKmyec%2526keepalive%253Dyes%2526itag%253D134%2526clen%253D7404814%26fps%3D24%26type%3Dvideo%252Fmp4%253B%2Bcodecs%253D%2522avc1.4d401e%2522%26xtags%3D%26init%3D0-712%26quality_label%3D360p%2Cprojection_type%3D1%26clen%3D7721603%26bitrate%3D424293%26itag%3D243%26lmt%3D1449573016016815%26size%3D640x360%26index%3D243-998%26url%3Dhttps%253A%252F%252Fr5---sn-hp57knly.googlevideo.com%252Fvideoplayback%253Fip%253D209.59.90.242%2526mime%253Dvideo%25252Fwebm%2526requiressl%253Dyes%2526mn%253Dsn-hp57knly%2526pl%253D24%2526source%253Dyoutube%2526mm%253D31%2526mv%253Dm%2526mt%253D1480947656%2526ms%253Dau%2526id%253Do-AM7-Jfun5pc-Y72NsTHEILPZ-ey6Jmr-Zl8i6n7lvTRL%2526expire%253D1480969477%2526gir%253Dyes%2526lmt%253D1449573016016815%2526sparams%253Dclen%25252Cdur%25252Cei%25252Cgir%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Ckeepalive%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cnh%25252Cpl%25252Crequiressl%25252Csource%25252Cupn%25252Cexpire%2526ipbits%253D0%2526ei%253DpXhFWPGAMNjC-AWZgJfwAw%2526initcwndbps%253D160000%2526signature%253DC6A36E3144656F6FF538015F9F699148C9BFB02D.03B934E38874A65414C753620143B480FD6DA0A2%2526dur%253D237.320%2526nh%253DIgpwcjAyLm1pYTA0Kgw2My4yNDUuNi4xODE%2526key%253Dyt6%2526upn%253Dj43tDjKmyec%2526keepalive%253Dyes%2526itag%253D243%2526clen%253D7721603%26fps%3D24%26type%3Dvideo%252Fwebm%253B%2Bcodecs%253D%2522vp9%2522%26xtags%3D%26init%3D0-242%26quality_label%3D360p%2Cprojection_type%3D1%26clen%3D6884196%26bitrate%3D252235%26itag%3D133%26lmt%3D1478641788943874%26size%3D426x240%26index%3D713-1308%26url%3Dhttps%253A%252F%252Fr5---sn-hp57knly.googlevideo.com%252Fvideoplayback%253Fip%253D209.59.90.242%2526mime%253Dvideo%25252Fmp4%2526requiressl%253Dyes%2526mn%253Dsn-hp57knly%2526pl%253D24%2526source%253Dyoutube%2526mm%253D31%2526mv%253Dm%2526mt%253D1480947656%2526ms%253Dau%2526id%253Do-AM7-Jfun5pc-Y72NsTHEILPZ-ey6Jmr-Zl8i6n7lvTRL%2526expire%253D1480969477%2526gir%253Dyes%2526lmt%253D1478641788943874%2526sparams%253Dclen%25252Cdur%25252Cei%25252Cgir%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Ckeepalive%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cnh%25252Cpl%25252Crequiressl%25252Csource%25252Cupn%25252Cexpire%2526ipbits%253D0%2526ei%253DpXhFWPGAMNjC-AWZgJfwAw%2526initcwndbps%253D160000%2526signature%253DA698F27198DDC75F205C11E32364B05A7041953D.2848E46EEAE05EE6946AC1E15CF475C8D04C9040%2526dur%253D237.362%2526nh%253DIgpwcjAyLm1pYTA0Kgw2My4yNDUuNi4xODE%2526key%253Dyt6%2526upn%253Dj43tDjKmyec%2526keepalive%253Dyes%2526itag%253D133%2526clen%253D6884196%26fps%3D24%26type%3Dvideo%252Fmp4%253B%2Bcodecs%253D%2522avc1.4d4015%2522%26xtags%3D%26init%3D0-712%26quality_label%3D240p%2Cprojection_type%3D1%26clen%3D4313145%26bitrate%3D235876%26itag%3D242%26lmt%3D1449573015228252%26size%3D426x240%26index%3D242-996%26url%3Dhttps%253A%252F%252Fr5---sn-hp57knly.googlevideo.com%252Fvideoplayback%253Fip%253D209.59.90.242%2526mime%253Dvideo%25252Fwebm%2526requiressl%253Dyes%2526mn%253Dsn-hp57knly%2526pl%253D24%2526source%253Dyoutube%2526mm%253D31%2526mv%253Dm%2526mt%253D1480947656%2526ms%253Dau%2526id%253Do-AM7-Jfun5pc-Y72NsTHEILPZ-ey6Jmr-Zl8i6n7lvTRL%2526expire%253D1480969477%2526gir%253Dyes%2526lmt%253D1449573015228252%2526sparams%253Dclen%25252Cdur%25252Cei%25252Cgir%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Ckeepalive%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cnh%25252Cpl%25252Crequiressl%25252Csource%25252Cupn%25252Cexpire%2526ipbits%253D0%2526ei%253DpXhFWPGAMNjC-AWZgJfwAw%2526initcwndbps%253D160000%2526signature%253D2EDAC8CBE5EE7E46428E13B5E7CE1E6527ABBF18.18754F2169B2A0FB63F7048794342166620C1B0E%2526dur%253D237.320%2526nh%253DIgpwcjAyLm1pYTA0Kgw2My4yNDUuNi4xODE%2526key%253Dyt6%2526upn%253Dj43tDjKmyec%2526keepalive%253Dyes%2526itag%253D242%2526clen%253D4313145%26fps%3D24%26type%3Dvideo%252Fwebm%253B%2Bcodecs%253D%2522vp9%2522%26xtags%3D%26init%3D0-241%26quality_label%3D240p%2Cprojection_type%3D1%26clen%3D3099330%26bitrate%3D109291%26itag%3D160%26lmt%3D1478641788634320%26size%3D256x144%26index%3D675-1270%26url%3Dhttps%253A%252F%252Fr5---sn-hp57knly.googlevideo.com%252Fvideoplayback%253Fip%253D209.59.90.242%2526mime%253Dvideo%25252Fmp4%2526requiressl%253Dyes%2526mn%253Dsn-hp57knly%2526pl%253D24%2526source%253Dyoutube%2526mm%253D31%2526mv%253Dm%2526mt%253D1480947656%2526ms%253Dau%2526id%253Do-AM7-Jfun5pc-Y72NsTHEILPZ-ey6Jmr-Zl8i6n7lvTRL%2526expire%253D1480969477%2526gir%253Dyes%2526lmt%253D1478641788634320%2526sparams%253Dclen%25252Cdur%25252Cei%25252Cgir%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Ckeepalive%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cnh%25252Cpl%25252Crequiressl%25252Csource%25252Cupn%25252Cexpire%2526ipbits%253D0%2526ei%253DpXhFWPGAMNjC-AWZgJfwAw%2526initcwndbps%253D160000%2526signature%253D80C3DE22C50337D9B583C8F300C0D02F94F664F5.334574D8173A55E4467FAE65576808E4D76C9955%2526dur%253D237.362%2526nh%253DIgpwcjAyLm1pYTA0Kgw2My4yNDUuNi4xODE%2526key%253Dyt6%2526upn%253Dj43tDjKmyec%2526keepalive%253Dyes%2526itag%253D160%2526clen%253D3099330%26fps%3D24%26type%3Dvideo%252Fmp4%253B%2Bcodecs%253D%2522avc1.4d400c%2522%26xtags%3D%26init%3D0-674%26quality_label%3D144p%2Cprojection_type%3D1%26clen%3D2606036%26bitrate%3D107014%26itag%3D278%26lmt%3D1449573015099569%26size%3D256x144%26index%3D242-996%26url%3Dhttps%253A%252F%252Fr5---sn-hp57knly.googlevideo.com%252Fvideoplayback%253Fip%253D209.59.90.242%2526mime%253Dvideo%25252Fwebm%2526requiressl%253Dyes%2526mn%253Dsn-hp57knly%2526pl%253D24%2526source%253Dyoutube%2526mm%253D31%2526mv%253Dm%2526mt%253D1480947656%2526ms%253Dau%2526id%253Do-AM7-Jfun5pc-Y72NsTHEILPZ-ey6Jmr-Zl8i6n7lvTRL%2526expire%253D1480969477%2526gir%253Dyes%2526lmt%253D1449573015099569%2526sparams%253Dclen%25252Cdur%25252Cei%25252Cgir%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Ckeepalive%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cnh%25252Cpl%25252Crequiressl%25252Csource%25252Cupn%25252Cexpire%2526ipbits%253D0%2526ei%253DpXhFWPGAMNjC-AWZgJfwAw%2526initcwndbps%253D160000%2526signature%253D1942D97717A77857271A1DC2D78578DB7116F2E6.07D18A66CBFE01610FF60503202BEC2F0AE52D6A%2526dur%253D237.320%2526nh%253DIgpwcjAyLm1pYTA0Kgw2My4yNDUuNi4xODE%2526key%253Dyt6%2526upn%253Dj43tDjKmyec%2526keepalive%253Dyes%2526itag%253D278%2526clen%253D2606036%26fps%3D12%26type%3Dvideo%252Fwebm%253B%2Bcodecs%253D%2522vp9%2522%26xtags%3D%26init%3D0-241%26quality_label%3D144p%2Cxtags%3D%26init%3D0-591%26lmt%3D1478638731477108%26index%3D592-911%26clen%3D3771517%26projection_type%3D1%26bitrate%3D128030%26type%3Daudio%252Fmp4%253B%2Bcodecs%253D%2522mp4a.40.2%2522%26itag%3D140%26url%3Dhttps%253A%252F%252Fr5---sn-hp57knly.googlevideo.com%252Fvideoplayback%253Fip%253D209.59.90.242%2526mime%253Daudio%25252Fmp4%2526requiressl%253Dyes%2526mn%253Dsn-hp57knly%2526pl%253D24%2526source%253Dyoutube%2526mm%253D31%2526mv%253Dm%2526mt%253D1480947656%2526ms%253Dau%2526id%253Do-AM7-Jfun5pc-Y72NsTHEILPZ-ey6Jmr-Zl8i6n7lvTRL%2526expire%253D1480969477%2526gir%253Dyes%2526lmt%253D1478638731477108%2526sparams%253Dclen%25252Cdur%25252Cei%25252Cgir%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Ckeepalive%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cnh%25252Cpl%25252Crequiressl%25252Csource%25252Cupn%25252Cexpire%2526ipbits%253D0%2526ei%253DpXhFWPGAMNjC-AWZgJfwAw%2526initcwndbps%253D160000%2526signature%253D35D65C6B2823BA4956C57A079008F7947529DF66.89B1617F57D50B48A5FB2695DB30A7E552FFD08C%2526dur%253D237.424%2526nh%253DIgpwcjAyLm1pYTA0Kgw2My4yNDUuNi4xODE%2526key%253Dyt6%2526upn%253Dj43tDjKmyec%2526keepalive%253Dyes%2526itag%253D140%2526clen%253D3771517%2Cxtags%3D%26init%3D0-4451%26lmt%3D1449571952282400%26index%3D4452-4856%26clen%3D3471225%26projection_type%3D1%26bitrate%3D135626%26type%3Daudio%252Fwebm%253B%2Bcodecs%253D%2522vorbis%2522%26itag%3D171%26url%3Dhttps%253A%252F%252Fr5---sn-hp57knly.googlevideo.com%252Fvideoplayback%253Fip%253D209.59.90.242%2526mime%253Daudio%25252Fwebm%2526requiressl%253Dyes%2526mn%253Dsn-hp57knly%2526pl%253D24%2526source%253Dyoutube%2526mm%253D31%2526mv%253Dm%2526mt%253D1480947656%2526ms%253Dau%2526id%253Do-AM7-Jfun5pc-Y72NsTHEILPZ-ey6Jmr-Zl8i6n7lvTRL%2526expire%253D1480969477%2526gir%253Dyes%2526lmt%253D1449571952282400%2526sparams%253Dclen%25252Cdur%25252Cei%25252Cgir%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Ckeepalive%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cnh%25252Cpl%25252Crequiressl%25252Csource%25252Cupn%25252Cexpire%2526ipbits%253D0%2526ei%253DpXhFWPGAMNjC-AWZgJfwAw%2526initcwndbps%253D160000%2526signature%253D6E729191F79542C60E5443E1313CBAE2B7135B0F.D86DDCC7C880EAAB11A660D4ECFEC5ACBC4BDF90%2526dur%253D237.353%2526nh%253DIgpwcjAyLm1pYTA0Kgw2My4yNDUuNi4xODE%2526key%253Dyt6%2526upn%253Dj43tDjKmyec%2526keepalive%253Dyes%2526itag%253D171%2526clen%253D3471225%2Cxtags%3D%26init%3D0-271%26lmt%3D1449571952563494%26index%3D272-676%26clen%3D1501979%26projection_type%3D1%26bitrate%3D56744%26type%3Daudio%252Fwebm%253B%2Bcodecs%253D%2522opus%2522%26itag%3D249%26url%3Dhttps%253A%252F%252Fr5---sn-hp57knly.googlevideo.com%252Fvideoplayback%253Fip%253D209.59.90.242%2526mime%253Daudio%25252Fwebm%2526requiressl%253Dyes%2526mn%253Dsn-hp57knly%2526pl%253D24%2526source%253Dyoutube%2526mm%253D31%2526mv%253Dm%2526mt%253D1480947656%2526ms%253Dau%2526id%253Do-AM7-Jfun5pc-Y72NsTHEILPZ-ey6Jmr-Zl8i6n7lvTRL%2526expire%253D1480969477%2526gir%253Dyes%2526lmt%253D1449571952563494%2526sparams%253Dclen%25252Cdur%25252Cei%25252Cgir%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Ckeepalive%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cnh%25252Cpl%25252Crequiressl%25252Csource%25252Cupn%25252Cexpire%2526ipbits%253D0%2526ei%253DpXhFWPGAMNjC-AWZgJfwAw%2526initcwndbps%253D160000%2526signature%253D5634E7850ECB71DD6304357DDF2E756165533795.6923CF99EE3CEEE5F1E805C9AA1199D40E64A416%2526dur%253D237.361%2526nh%253DIgpwcjAyLm1pYTA0Kgw2My4yNDUuNi4xODE%2526key%253Dyt6%2526upn%253Dj43tDjKmyec%2526keepalive%253Dyes%2526itag%253D249%2526clen%253D1501979%2Cxtags%3D%26init%3D0-271%26lmt%3D1449571951982951%26index%3D272-676%26clen%3D2020148%26projection_type%3D1%26bitrate%3D79280%26type%3Daudio%252Fwebm%253B%2Bcodecs%253D%2522opus%2522%26itag%3D250%26url%3Dhttps%253A%252F%252Fr5---sn-hp57knly.googlevideo.com%252Fvideoplayback%253Fip%253D209.59.90.242%2526mime%253Daudio%25252Fwebm%2526requiressl%253Dyes%2526mn%253Dsn-hp57knly%2526pl%253D24%2526source%253Dyoutube%2526mm%253D31%2526mv%253Dm%2526mt%253D1480947656%2526ms%253Dau%2526id%253Do-AM7-Jfun5pc-Y72NsTHEILPZ-ey6Jmr-Zl8i6n7lvTRL%2526expire%253D1480969477%2526gir%253Dyes%2526lmt%253D1449571951982951%2526sparams%253Dclen%25252Cdur%25252Cei%25252Cgir%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Ckeepalive%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cnh%25252Cpl%25252Crequiressl%25252Csource%25252Cupn%25252Cexpire%2526ipbits%253D0%2526ei%253DpXhFWPGAMNjC-AWZgJfwAw%2526initcwndbps%253D160000%2526signature%253D769AC10A81B8D96DF2A2153854DD92013242F2C9.7EE2DCD43FD2B1B3D1468AEF4702C85F8BF2B7F1%2526dur%253D237.361%2526nh%253DIgpwcjAyLm1pYTA0Kgw2My4yNDUuNi4xODE%2526key%253Dyt6%2526upn%253Dj43tDjKmyec%2526keepalive%253Dyes%2526itag%253D250%2526clen%253D2020148%2Cxtags%3D%26init%3D0-271%26lmt%3D1449571951932307%26index%3D272-676%26clen%3D3910806%26projection_type%3D1%26bitrate%3D149549%26type%3Daudio%252Fwebm%253B%2Bcodecs%253D%2522opus%2522%26itag%3D251%26url%3Dhttps%253A%252F%252Fr5---sn-hp57knly.googlevideo.com%252Fvideoplayback%253Fip%253D209.59.90.242%2526mime%253Daudio%25252Fwebm%2526requiressl%253Dyes%2526mn%253Dsn-hp57knly%2526pl%253D24%2526source%253Dyoutube%2526mm%253D31%2526mv%253Dm%2526mt%253D1480947656%2526ms%253Dau%2526id%253Do-AM7-Jfun5pc-Y72NsTHEILPZ-ey6Jmr-Zl8i6n7lvTRL%2526expire%253D1480969477%2526gir%253Dyes%2526lmt%253D1449571951932307%2526sparams%253Dclen%25252Cdur%25252Cei%25252Cgir%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Ckeepalive%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cnh%25252Cpl%25252Crequiressl%25252Csource%25252Cupn%25252Cexpire%2526ipbits%253D0%2526ei%253DpXhFWPGAMNjC-AWZgJfwAw%2526initcwndbps%253D160000%2526signature%253D1608EA72390998E4150216B299F794D2448809E3.20FC6E2D19051CCB0B2F1019F89443DB4A9C9B1A%2526dur%253D237.361%2526nh%253DIgpwcjAyLm1pYTA0Kgw2My4yNDUuNi4xODE%2526key%253Dyt6%2526upn%253Dj43tDjKmyec%2526keepalive%253Dyes%2526itag%253D251%2526clen%253D3910806&of=QGmll0UFduiwtazc2IGB_A&iurlmq=https%3A%2F%2Fi.ytimg.com%2Fvi%2FRgKAFK5djSk%2Fhqdefault.jpg%3Fcustom%3Dtrue%26w%3D320%26h%3D180%26stc%3Dtrue%26jpg444%3Dtrue%26jpgq%3D90%26sp%3D68%26sigh%3DCV1o8icgSUeQJ1TzrSCxxK5oh3M&no_get_video_log=1&atc=a%3D3%26b%3DsNt2HMwLko4dNy5mhmyxUiV6NfU%26c%3D1480947877%26d%3D1%26e%3DRgKAFK5djSk%26c3a%3D15%26c1a%3D1%26c6a%3D1%26hh%3D5JvPJD-rcldc3AhJTOU1Oog1w9w&length_seconds=237&rvs=id%3D09R8_2nJtjg%26author%3DMaroon5VEVO%26endscreen_autoplay_session_data%3Dautonav%253D1%2526feature%253Drelated-auto%2526playnext%253D0%26short_view_count_text%3D1.5B%2Bviews%26session_data%3Ditct%253DMgllbmRzY3JlZW5IqZr28sqCoIFG%26length_seconds%3D302%26title%3DMaroon%2B5%2B-%2BSugar%2Cid%3D09R8_2nJtjg%26author%3DMaroon5VEVO%26short_view_count_text%3D1.5B%2Bviews%26session_data%3Ditct%253DMgllbmRzY3JlZW5IqZr28sqCoIFG%26length_seconds%3D302%26title%3DMaroon%2B5%2B-%2BSugar%2Cplaylist_iurlmq%3D%252F%252Fi.ytimg.com%252Fvi%252FRgKAFK5djSk%252Fmqdefault.jpg%26thumbnail_ids%3DAJtDXIazrMo%26session_data%3Ditct%253DMgllbmRzY3JlZW5IqZr28sqCoIFG%26video_id%3DAJtDXIazrMo%26playlist_iurlhq%3D%252F%252Fi.ytimg.com%252Fvi%252FRgKAFK5djSk%252Fhqdefault.jpg%26playlist_title%3DWiz%2BKhalifa%2B-%2BSee%2BYou%2BAgain%2Bft.%2BCharlie%2BPuth%2B%255BOfficial%2BVideo%255D%2BFurious%2B7%2BSoundtrack%26playlist_length%3D0%26list%3DRDRgKAFK5djSk%2Cid%3DqAfzDsZCK2c%26author%3DUosof%2Bahmadi%26short_view_count_text%3D26M%2Bviews%26session_data%3Ditct%253DMgllbmRzY3JlZW5IqZr28sqCoIFG%26length_seconds%3D325%26title%3DSee%2BYou%2BAgain%2B-%2BEmotional%2BTribute%2BTo%2BPaul%2BWalker%2B%2528HD%2529%2Cid%3DYQHsXMglC9A%26author%3DAdeleVEVO%26short_view_count_text%3D1.8B%2Bviews%26session_data%3Ditct%253DMgllbmRzY3JlZW5IqZr28sqCoIFG%26length_seconds%3D367%26title%3DAdele%2B-%2BHello%2Cid%3DjGflUbPQfW8%26author%3DUltra%2BMusic%26short_view_count_text%3D660M%2Bviews%26session_data%3Ditct%253DMgllbmRzY3JlZW5IqZr28sqCoIFG%26length_seconds%3D190%26title%3DOMI%2B-%2BCheerleader%2B%2528Felix%2BJaehn%2BRemix%2529%2B%255BOfficial%2BVideo%255D%2Cid%3DCevxZvSJLk8%26author%3DKatyPerryVEVO%26short_view_count_text%3D1.6B%2Bviews%26session_data%3Ditct%253DMgllbmRzY3JlZW5IqZr28sqCoIFG%26length_seconds%3D270%26title%3DKaty%2BPerry%2B-%2BRoar%2B%2528Official%2529%2Cid%3DX7rdg_tKzKQ%26author%3DAtlantic%2BRecords%26short_view_count_text%3D165M%2Bviews%26session_data%3Ditct%253DMgllbmRzY3JlZW5IqZr28sqCoIFG%26length_seconds%3D213%26title%3DRide%2BOut%2B-%2BKid%2BInk%252C%2BTyga%252C%2BWale%252C%2BYG%252C%2BRich%2BHomie%2BQuan%2B%255BOfficial%2BVideo%2B-%2BFurious%2B7%255D%2Cid%3DRBumgq5yVrA%26author%3DPassenger%26short_view_count_text%3D1.2B%2Bviews%26session_data%3Ditct%253DMgllbmRzY3JlZW5IqZr28sqCoIFG%26length_seconds%3D255%26title%3DPassenger%2B%257C%2BLet%2BHer%2BGo%2B%2528Official%2BVideo%2529%2Cid%3De-ORhEE9VVg%26author%3DTaylorSwiftVEVO%26short_view_count_text%3D1.8B%2Bviews%26session_data%3Ditct%253DMgllbmRzY3JlZW5IqZr28sqCoIFG%26length_seconds%3D273%26title%3DTaylor%2BSwift%2B-%2BBlank%2BSpace%2Cid%3D7PCkvCPvDXk%26author%3DMeghanTrainorVEVO%26short_view_count_text%3D1.6B%2Bviews%26session_data%3Ditct%253DMgllbmRzY3JlZW5IqZr28sqCoIFG%26length_seconds%3D190%26title%3DMeghan%2BTrainor%2B-%2BAll%2BAbout%2BThat%2BBass%2Cid%3DBxuY9FET9Y4%26author%3DCharlie%2BPuth%26short_view_count_text%3D344M%2Bviews%26session_data%3Ditct%253DMgllbmRzY3JlZW5IqZr28sqCoIFG%26length_seconds%3D242%26title%3DCharlie%2BPuth%2B-%2BOne%2BCall%2BAway%2B%255BOfficial%2BVideo%255D&ptchn=Vp3nfGRxmMadNDuVbJSk8A&ppv_remarketing_url=https%3A%2F%2Fwww.googleadservices.com%2Fpagead%2Fconversion%2F971134070%2F%3Fbackend%3Dinnertube%26cname%3D1%26cver%3D1_20161130%26data%3Dbackend%253Dinnertube%253Bcname%253D1%253Bcver%253D1_20161130%253Bdactive%253DNone%253Bdynx_itemid%253DRgKAFK5djSk%253Bptype%253Dppv%26label%3DiuZUCLmC72YQ9qiJzwM%26ptype%3Dppv&baseUrl=https%3A%2F%2Fgoogleads.g.doubleclick.net%2Fpagead%2Fviewthroughconversion%2F962985656%2F&ucid=UCVp3nfGRxmMadNDuVbJSk8A&allow_embed=1&plid=AAVC6gwxCqW399-b&enablecsi=1&player_response=%7B%7D&fflags=dash_manifest_version%3D4%26html5_use_mediastream_timestamp%3Dfalse%26dynamic_ad_break_seek_threshold_sec%3D0%26ad_duration_threshold_for_showing_endcap_seconds%3D15%26html5_always_reload_on_403%3Dtrue%26html5_background_cap_idle_secs%3D60%26html5_deadzone_multiplier%3D1.0%26log_it_display_tree%3Dtrue%26use_web_player_gestures%3Dtrue%26kids_enable_privacy_notice%3Dtrue%26legacy_cast2%3Dtrue%26desktop_fsi_promo%3Dstyle_masthead_ad%26html5_serverside_biscotti_id_wait_ms%3D1000%26mweb_adsense_instreams_disabled_for_android_tablets%3Dtrue%26html5_min_upgrade_health%3D0%26ios_notifications_disabled_subs_tab_promoted_item_promo%3Dtrue%26html5_stop_vss2_q_param%3Dtrue%26product_listing_ads_cards_drawer_auto_open%3Dtrue%26legacy_embed_snippet%3Dtrue%26html5_variability_no_discount_thresh%3D0.0%26cards_drawer_auto_open_offset%3D-10000%26ios_minimum_seconds_between_connectivity_lost_snackbars%3D0%26ios_enable_mixin_accessibility_custom_actions%3Dtrue%26html5_tight_max_buffer_allowed_impaired_time%3D0.0%26live_readahead_seconds_multiplier%3D0.8%26html5_timeupdate_readystate_check%3Dtrue%26html5_throttle_rate%3D0.0%26enable_get_offers_for_item_list_for_get_cart%3Dtrue%26html5_retry_gvi_more%3Dtrue%26website_actions_throttle_percentage%3D1.0%26disable_new_pause_state3%3Dtrue%26kids_enable_brazil_lp%3Dtrue%26yt_unlimited_pts_skip_ads_promo_desktop_always%3Dtrue%26html5_playing_event_buffer_underrun%3Dtrue%26html5_request_size_min_secs%3D0.0%26enable_mrm_channel_approve%3Dtrue%26html5_background_quality_cap%3D360%26html5_variability_discount%3D0.0%26kids_enable_columbia_lp%3Dtrue%26html5_request_sizing_multiplier%3D0.8%26cards_drawer_auto_open_duration%3D-1%26enable_ccs_buy_flow_for_chirp%3Dtrue%26ios_minimum_seconds_between_connectivity_gained_snackbars%3D300%26html5_live_disable_dg_pacing%3Dtrue%26html5_repredict_interval_secs%3D0.0%26html5_retry_limit%3D10%26html5_retry_media_element_errors%3Dtrue%26enable_yt_music_lp%3Dtrue%26legacy_control_redirecting%3Dtrue%26html5_max_buffer_health_for_downgrade%3D0%26yto_enable_ytr_promo_refresh_assets%3Dtrue%26launch_new_wallet_api%3Dtrue%26html5_check_for_reseek%3Dtrue%26enable_offer_restricts_for_watch_page_offers%3Dtrue%26fix_backfill_mpu_api_stats_ads%3Dtrue%26web_player_innertube_response%3Dtrue%26kids_enable_spain_lp%3Dtrue%26use_push_for_desktop_live_chat%3Dtrue%26native_controls_assume_media_volume%3Dtrue%26html5_idle_preload_secs%3D1%26html5_get_video_info_timeout_ms%3D0%26yto_feature_hub_channel%3Dfalse%26html5_long_term_bandwidth_window_size%3D0%26html5_reseek_on_infinite_buffer%3Dtrue%26feeds_on_innertube%3Dtrue%26html5_retry_media_element_errors_delay%3D0%26html5_strip_emsg%3Dtrue%26tvhtml5_audio_starts_radio_station%3Dtrue%26live_chunk_readahead%3D3%26enable_audio_cast%3Dtrue%26html5_max_buffer_duration%3D0%26html5_variability_full_discount_thresh%3D0.0%26enable_playlist_multi_season%3Dtrue%26html5_allowable_liveness_drift_chunks%3D2%26kids_asset_theme%3Dserver_side_assets%26html5_min_buffer_to_resume%3D2%26polymer_report_missing_web_navigation_endpoint%3Dfalse%26html5_suspend_manifest_on_pause%3Dfalse%26lugash_header_by_service%3Dtrue%26dynamic_ad_break_pause_threshold_sec%3D0%26enable_fmp4_defrag%3Dtrue%26playready_on_borg%3Dtrue%26ios_disable_notification_preprompt%3Dtrue%26flex_theater_mode%3Dtrue%26enable_mweb_ypc_promotion_renderer%3Dtrue%26ad_video_end_renderer_duration_milliseconds%3D7000%26high_res_timestamps%3Dtrue%26variable_load_timeout_ms%3D0%26html5_get_video_info_promiseajax%3Dtrue%26lugash_header_warmup%3Dtrue%26cameo_live_chunk_readahead%3D3%26chrome_promo_enabled%3Dtrue%26html5_connect_timeout_secs%3D7.0%26yto_enable_unlimited_landing_page_yto_features%3Dtrue%26log_js_exceptions_fraction%3D0.20%26sdk_wrapper_levels_allowed%3D0%26html5_min_vss_watchtime_to_cut_secs%3D99999%26html5_ajax_qoe_retry%3Dfalse%26enable_live_state_auth%3Dtrue%26html5_max_vss_watchtime_ratio%3D0.0%26player_no_remote_modules%3Dtrue%26music_tastebuilder_p13n%3Dtrue%26yto_enable_watch_offer_module%3Dtrue%26sidebar_renderers%3Dtrue%26autoplay_time%3D8000%26html5_multicam%3Dtrue%26html5_bandwidth_window_size%3D0%26enable_local_channel%3Dtrue%26kids_enable_server_side_assets%3Dtrue%26legacy_autoplay_flag%3Dtrue%26legacy_poster_behavior%3Dtrue%26html5_live_4k_more_buffer%3Dtrue%26html5_tight_max_buffer_allowed_bandwidth_stddevs%3D0.0%26mpu_visible_threshold_count%3D2%26kids_enable_post_onboarding_red_flow%3Dtrue%26kids_enable_latam_lp%3Dtrue&caption_tracks=v%3D.en%26n%3DEnglish%26lc%3Den%26t%3D1%26u%3Dhttps%253A%252F%252Fwww.youtube.com%252Fapi%252Ftimedtext%253Fkey%253Dyttt1%2526v%253DRgKAFK5djSk%2526sparams%253Dcaps%25252Cv%25252Cexpire%2526caps%253D-lyr%2526hl%253Den_US%2526expire%253D1480973077%2526signature%253D753D690165C75A0A1581D3CE28D38BF44E8CDA15.23858BE0085007BF2A69314B806C12732FF7A231%2526lang%253Den%2Cv%3D.und%26n%3Dund%26lc%3Dund%26t%3D1%26u%3Dhttps%253A%252F%252Fwww.youtube.com%252Fapi%252Ftimedtext%253Fkey%253Dyttt1%2526v%253DRgKAFK5djSk%2526sparams%253Dcaps%25252Cv%25252Cexpire%2526caps%253D-lyr%2526hl%253Den_US%2526expire%253D1480973077%2526signature%253D753D690165C75A0A1581D3CE28D38BF44E8CDA15.23858BE0085007BF2A69314B806C12732FF7A231%2526lang%253Dund&ptk=WMG&oid=YbGWGCIUCoaUePqGy_acMw&tmi=1&pltype=content&thumbnail_url=https%3A%2F%2Fi.ytimg.com%2Fvi%2FRgKAFK5djSk%2Fdefault.jpg&keywords=Wiz+Khalifa%2CBlacc+Hollywood%2CTaylor+Gang%2CAtlantic+Records%2Chip+hop%2Cwiz%2Ckhalifa%2CPittsburgh%2CLos+Angeles%2Ctaylorgangent%2CTGOD%2Ctaylor+gang+or+die%2CFurious+7%2Cpaul+walker%2Cpaul+walker+tribute%2CSee+You+Again+%28Composition%29%2CFast+%26+Furious+6+%28Award-Winning+Work%29%2CSee+you+again%2Cvin+diesel%2CMichelle+Rodriguez+%28Celebrity%29%2Ccharlie+puth%2CGRAMMYS&t=1&url_encoded_fmt_stream_map=url%3Dhttps%253A%252F%252Fr5---sn-hp57knly.googlevideo.com%252Fvideoplayback%253Fip%253D209.59.90.242%2526mime%253Dvideo%25252Fmp4%2526requiressl%253Dyes%2526mn%253Dsn-hp57knly%2526pl%253D24%2526source%253Dyoutube%2526mm%253D31%2526mv%253Dm%2526mt%253D1480947656%2526ms%253Dau%2526id%253Do-AM7-Jfun5pc-Y72NsTHEILPZ-ey6Jmr-Zl8i6n7lvTRL%2526expire%253D1480969477%2526lmt%253D1478641815072232%2526sparams%253Ddur%25252Cei%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cnh%25252Cpl%25252Cratebypass%25252Crequiressl%25252Csource%25252Cupn%25252Cexpire%2526ei%253DpXhFWPGAMNjC-AWZgJfwAw%2526initcwndbps%253D160000%2526signature%253D2291EDD85F38B675D1FF8B672C86CD621DD0AA26.9F052848BCF3F646B37A29B5548C3ED23B481E9A%2526dur%253D237.424%2526nh%253DIgpwcjAyLm1pYTA0Kgw2My4yNDUuNi4xODE%2526key%253Dyt6%2526upn%253Dj43tDjKmyec%2526ipbits%253D0%2526ratebypass%253Dyes%2526itag%253D22%26type%3Dvideo%252Fmp4%253B%2Bcodecs%253D%2522avc1.64001F%252C%2Bmp4a.40.2%2522%26itag%3D22%26quality%3Dhd720%2Curl%3Dhttps%253A%252F%252Fr5---sn-hp57knly.googlevideo.com%252Fvideoplayback%253Fip%253D209.59.90.242%2526mime%253Dvideo%25252Fwebm%2526requiressl%253Dyes%2526mn%253Dsn-hp57knly%2526pl%253D24%2526source%253Dyoutube%2526mm%253D31%2526mv%253Dm%2526mt%253D1480947656%2526ms%253Dau%2526id%253Do-AM7-Jfun5pc-Y72NsTHEILPZ-ey6Jmr-Zl8i6n7lvTRL%2526expire%253D1480969477%2526gir%253Dyes%2526lmt%253D1428274110763456%2526sparams%253Dclen%25252Cdur%25252Cei%25252Cgir%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cnh%25252Cpl%25252Cratebypass%25252Crequiressl%25252Csource%25252Cupn%25252Cexpire%2526ei%253DpXhFWPGAMNjC-AWZgJfwAw%2526initcwndbps%253D160000%2526signature%253D40ADD080E3BE1C7141C1FB060599CF71950F98EA.370D1A3FBDDC54E7F5B6823F4A7E151B586F22CE%2526dur%253D0.000%2526nh%253DIgpwcjAyLm1pYTA0Kgw2My4yNDUuNi4xODE%2526key%253Dyt6%2526upn%253Dj43tDjKmyec%2526ipbits%253D0%2526ratebypass%253Dyes%2526itag%253D43%2526clen%253D18764299%26type%3Dvideo%252Fwebm%253B%2Bcodecs%253D%2522vp8.0%252C%2Bvorbis%2522%26itag%3D43%26quality%3Dmedium%2Curl%3Dhttps%253A%252F%252Fr5---sn-hp57knly.googlevideo.com%252Fvideoplayback%253Fip%253D209.59.90.242%2526mime%253Dvideo%25252Fmp4%2526requiressl%253Dyes%2526mn%253Dsn-hp57knly%2526pl%253D24%2526source%253Dyoutube%2526mm%253D31%2526mv%253Dm%2526mt%253D1480947656%2526ms%253Dau%2526id%253Do-AM7-Jfun5pc-Y72NsTHEILPZ-ey6Jmr-Zl8i6n7lvTRL%2526expire%253D1480969477%2526gir%253Dyes%2526lmt%253D1478639667037991%2526sparams%253Dclen%25252Cdur%25252Cei%25252Cgir%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cnh%25252Cpl%25252Cratebypass%25252Crequiressl%25252Csource%25252Cupn%25252Cexpire%2526ei%253DpXhFWPGAMNjC-AWZgJfwAw%2526initcwndbps%253D160000%2526signature%253D075E7AC404AAFA3F6213A296D3CD5710D5E0B9D2.4870DBE8B13429A32A772F2834BA1DA96A546699%2526dur%253D237.424%2526nh%253DIgpwcjAyLm1pYTA0Kgw2My4yNDUuNi4xODE%2526key%253Dyt6%2526upn%253Dj43tDjKmyec%2526ipbits%253D0%2526ratebypass%253Dyes%2526itag%253D18%2526clen%253D13660169%26type%3Dvideo%252Fmp4%253B%2Bcodecs%253D%2522avc1.42001E%252C%2Bmp4a.40.2%2522%26itag%3D18%26quality%3Dmedium%2Curl%3Dhttps%253A%252F%252Fr5---sn-hp57knly.googlevideo.com%252Fvideoplayback%253Fip%253D209.59.90.242%2526mime%253Dvideo%25252F3gpp%2526requiressl%253Dyes%2526mn%253Dsn-hp57knly%2526pl%253D24%2526source%253Dyoutube%2526mm%253D31%2526mv%253Dm%2526mt%253D1480947656%2526ms%253Dau%2526id%253Do-AM7-Jfun5pc-Y72NsTHEILPZ-ey6Jmr-Zl8i6n7lvTRL%2526expire%253D1480969477%2526gir%253Dyes%2526lmt%253D1428273517937613%2526sparams%253Dclen%25252Cdur%25252Cei%25252Cgir%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cnh%25252Cpl%25252Crequiressl%25252Csource%25252Cupn%25252Cexpire%2526ei%253DpXhFWPGAMNjC-AWZgJfwAw%2526initcwndbps%253D160000%2526signature%253DBDC0B2ABFBB4AF34630F62AE91D48B7A51F88455.02EAF30048A6D18C55DA1683DBC4FAB3ED9AC8B7%2526dur%253D237.540%2526nh%253DIgpwcjAyLm1pYTA0Kgw2My4yNDUuNi4xODE%2526key%253Dyt6%2526upn%253Dj43tDjKmyec%2526ipbits%253D0%2526itag%253D36%2526clen%253D6794321%26type%3Dvideo%252F3gpp%253B%2Bcodecs%253D%2522mp4v.20.3%252C%2Bmp4a.40.2%2522%26itag%3D36%26quality%3Dsmall%2Curl%3Dhttps%253A%252F%252Fr5---sn-hp57knly.googlevideo.com%252Fvideoplayback%253Fip%253D209.59.90.242%2526mime%253Dvideo%25252F3gpp%2526requiressl%253Dyes%2526mn%253Dsn-hp57knly%2526pl%253D24%2526source%253Dyoutube%2526mm%253D31%2526mv%253Dm%2526mt%253D1480947656%2526ms%253Dau%2526id%253Do-AM7-Jfun5pc-Y72NsTHEILPZ-ey6Jmr-Zl8i6n7lvTRL%2526expire%253D1480969477%2526gir%253Dyes%2526lmt%253D1428273497121377%2526sparams%253Dclen%25252Cdur%25252Cei%25252Cgir%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cnh%25252Cpl%25252Crequiressl%25252Csource%25252Cupn%25252Cexpire%2526ei%253DpXhFWPGAMNjC-AWZgJfwAw%2526initcwndbps%253D160000%2526signature%253D5B08ED2BF553F7161DF08BD36283A156BB397279.8516AB7E1B9B948D1F96DEB52E7AB3E73FDA35DF%2526dur%253D237.540%2526nh%253DIgpwcjAyLm1pYTA0Kgw2My4yNDUuNi4xODE%2526key%253Dyt6%2526upn%253Dj43tDjKmyec%2526ipbits%253D0%2526itag%253D17%2526clen%253D2463641%26type%3Dvideo%252F3gpp%253B%2Bcodecs%253D%2522mp4v.20.3%252C%2Bmp4a.40.2%2522%26itag%3D17%26quality%3Dsmall&ismb=1280000&innertube_api_version=v1&fmt_list=22%2F1280x720%2F9%2F0%2F115%2C43%2F640x360%2F99%2F0%2F0%2C18%2F640x360%2F9%2F0%2F115%2C36%2F320x180%2F99%2F1%2F0%2C17%2F176x144%2F99%2F1%2F0&allow_ratings=1&apiary_host=&view_count=2235168069&show_pyv_in_related=False&ldpj=-25&innertube_context_client_version=1.20161130&fexp=9413138%2C9419452%2C9422596%2C9424416%2C9428398%2C9431012%2C9432565%2C9433096%2C9433221%2C9434046%2C9434289%2C9439580%2C9439971%2C9441514%2C9441651%2C9442073%2C9444206%2C9445371%2C9445895%2C9446054%2C9446364%2C9448915%2C9449034%2C9449243%2C9451415%2C9452154%2C9452377%2C9452882%2C9453797%2C9454390%2C9454476%2C9454867%2C9456273%2C9456582&avg_rating=4.88237571716&host_language=en&iurlhq=https%3A%2F%2Fi.ytimg.com%2Fvi%2FRgKAFK5djSk%2Fhqdefault.jpg&eventid=pXhFWPGAMNjC-AWZgJfwAw&vmap=%3C%3Fxml+version%3D%221.0%22+encoding%3D%22UTF-8%22%3F%3E%3Cvmap%3AVMAP+xmlns%3Avmap%3D%22http%3A%2F%2Fwww.iab.net%2Fvideosuite%2Fvmap%22+xmlns%3Ayt%3D%22http%3A%2F%2Fyoutube.com%22+version%3D%221.0%22%3E%3C%2Fvmap%3AVMAP%3E&caption_audio_tracks=i%3D0%252C1%26v%3D0%26d%3D0&csi_page_type=watch%2Cwatch7&hl=en_US&iv3_module=1&player_error_log_fraction=1.0&c=WEB&iurl=https%3A%2F%2Fi.ytimg.com%2Fvi%2FRgKAFK5djSk%2Fhqdefault.jpg&iv_load_policy=1&default_audio_track_index=0&token=1&iurlsd=https%3A%2F%2Fi.ytimg.com%2Fvi%2FRgKAFK5djSk%2Fsddefault.jpg", + "headers" : { + "Content-Type" : "application\/x-www-form-urlencoded", + "Alt-Svc" : "quic=\":443\"; ma=2592000; v=\"36,35,34\"", + "Content-Encoding" : "gzip", + "Server" : "YouTubeFrontEnd", + "X-XSS-Protection" : "1; mode=block; report=https:\/\/www.google.com\/appserve\/security-bugs\/log\/youtube", + "Expires" : "Tue, 27 Apr 1971 19:44:06 EST", + "Transfer-Encoding" : "Identity", + "Cache-Control" : "no-store", + "Date" : "Mon, 05 Dec 2016 14:24:38 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=RgKAFK5djSk" + }, + { + "body" : "errorcode=150&videostats_playback_base_url=https%3A%2F%2Fs.youtube.com&reason=This+video+contains+content+from+WMG.+It+is+restricted+from+playback+on+certain+sites.%0A%3Ca+href%3D%27http%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DRgKAFK5djSk%26feature%3Dplayer_embedded%27+target%3D%27_blank%27%3EWatch+on+YouTube%3C%2Fa%3E&c=WEB&enablecsi=1&atc=a%3D3%26b%3DsNt2HMwLko4dNy5mhmyxUiV6NfU%26c%3D1480947877%26d%3D1%26e%3DRgKAFK5djSk%26c3a%3D17%26hh%3DIFccwnspzK7uyQxrh6yyOd2Ifl4&status=fail&csi_page_type=embed&errordetail=0&cver=1.20161130&eventid=pXhFWJbLJY3d-wXypp7YDA", + "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=\"36,35,34\"", + "Set-Cookie" : "YSC=wxmGSlWz4bQ; path=\/; domain=.youtube.com; httponly", + "Server" : "YouTubeFrontEnd", + "Content-Encoding" : "gzip", + "X-XSS-Protection" : "1; mode=block; report=https:\/\/www.google.com\/appserve\/security-bugs\/log\/youtube", + "Expires" : "Tue, 27 Apr 1971 19:44:06 EST", + "Transfer-Encoding" : "Identity", + "Cache-Control" : "no-store", + "Date" : "Mon, 05 Dec 2016 14:24:37 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=RgKAFK5djSk" + } +] \ No newline at end of file diff --git a/XCDYouTubeKit Tests/XCDYouTubeClientTestCase.m b/XCDYouTubeKit Tests/XCDYouTubeClientTestCase.m index 01edc892f..9434330a3 100644 --- a/XCDYouTubeKit Tests/XCDYouTubeClientTestCase.m +++ b/XCDYouTubeKit Tests/XCDYouTubeClientTestCase.m @@ -41,6 +41,37 @@ - (void) testThatVideoHasMetadata [self waitForExpectationsWithTimeout:5 handler:nil]; } +- (void) testVideoThatHasCaptions +{ + __weak XCTestExpectation *expectation = [self expectationWithDescription:@""]; + [[XCDYouTubeClient defaultClient] getVideoWithIdentifier:@"Q6dsRpVyyWs" completionHandler:^(XCDYouTubeVideo *video, NSError *error) + { + XCTAssertNotNil(video); + XCTAssertNotNil(video); + XCTAssertNotNil(video.captionURLs); + XCTAssertNotNil(video.autoGeneratedCaptionURLs); + XCTAssertNotEqual(video.autoGeneratedCaptionURLs[@"en"], video.captionURLs[@"en"]); + [expectation fulfill]; + }]; + [self waitForExpectationsWithTimeout:5 handler:nil]; + +} + +- (void) testVideoWithUndeterminedCaptionLanguageCode +{ + __weak XCTestExpectation *expectation = [self expectationWithDescription:@""]; + [[XCDYouTubeClient defaultClient] getVideoWithIdentifier:@"RgKAFK5djSk" completionHandler:^(XCDYouTubeVideo *video, NSError *error) + { + XCTAssertNil(error); + XCTAssertNotNil(video); + XCTAssertNil(video.captionURLs[@"und"]); + XCTAssertNotNil(video.captionURLs); + [expectation fulfill]; + }]; + [self waitForExpectationsWithTimeout:5 handler:nil]; + +} + - (void) testMobileRestrictedVideo { __weak XCTestExpectation *expectation = [self expectationWithDescription:@""]; diff --git a/XCDYouTubeKit Tests/XCDYouTubeVideoTestCase.m b/XCDYouTubeKit Tests/XCDYouTubeVideoTestCase.m index 6ffb80b3e..307ee545a 100644 --- a/XCDYouTubeKit Tests/XCDYouTubeVideoTestCase.m +++ b/XCDYouTubeKit Tests/XCDYouTubeVideoTestCase.m @@ -84,35 +84,4 @@ - (void) testDescription XCTAssertTrue([videoA.debugDescription rangeOfString:videoA.description].location != NSNotFound && videoA.debugDescription.length > videoA.description.length); } -- (void)testCaptions { - - /* This video: https://www.youtube.com/watch?v=CQY3KUR3VzM - - Has two captions an auto generated one and one that was provided by the uploader. This test ensures that both the `captionURLs` and the `autoGeneratedCaptionURLs` are not `nil`. The test auto ensures that both of the two English captions are not identical. - - */ - NSBundle *testBundle = [NSBundle bundleForClass:[self class]]; - - XCDYouTubeVideo *video = [[XCDYouTubeVideo alloc]initWithIdentifier:@"CQY3KUR3VzM" info:[NSDictionary dictionaryWithContentsOfURL:[testBundle URLForResource:@"testInfo" withExtension:@"plist"]] playerScript:nil response:nil error:nil]; - - XCTAssertNotNil(video); - XCTAssertNotNil(video.captionURLs); - XCTAssertNotNil(video.autoGeneratedCaptionURLs); - XCTAssertNotEqual(video.autoGeneratedCaptionURLs[@"en"], video.captionURLs[@"en"]); -} - -- (void)testUndeterminedCaptionLanguageCode { - - /*This video: https://www.youtube.com/watch?v=RgKAFK5djSk Contains an undertermined language code according to YouTube and should not be included in the `captionURLs` */ - - NSBundle *testBundle = [NSBundle bundleForClass:[self class]]; - - XCDYouTubeVideo *video = [[XCDYouTubeVideo alloc]initWithIdentifier:@"RgKAFK5djSk" info:[NSDictionary dictionaryWithContentsOfURL:[testBundle URLForResource:@"testInfo_undetermined_language_code" withExtension:@"plist"]] playerScript:nil response:nil error:nil]; - - XCTAssertNotNil(video); - XCTAssertNil(video.captionURLs[@"und"]); - XCTAssertNotNil(video.captionURLs); - -} - @end diff --git a/XCDYouTubeKit Tests/testInfo.plist b/XCDYouTubeKit Tests/testInfo.plist deleted file mode 100644 index bc1a01a4f..000000000 --- a/XCDYouTubeKit Tests/testInfo.plist +++ /dev/null @@ -1,146 +0,0 @@ - - - - - account_playback_token - QUFFLUhqbURMQnF5a1g4aWNYYXdVUS1iSS1pSTJlWTA0Z3xBQ3Jtc0tuV0xFVkFIaTFqdDdwSDNwQlBkR0VjekwwTEVMTTlEZVpXRDZ4YVF3NnZnQkFSaHpxVktpVkRpWUgyRGwzeW9zNnZsMDRxOG1JZFlOTUdfYmgyYWNZLUhTNktBZV9rSkQ0LUk5VGZMcnlYNzJKLUFTaw== - adaptive_fmts - type=video%2Fmp4%3B codecs%3D%22avc1.640028%22&url=https%3A%2F%2Fr5---sn-hp57knly.googlevideo.com%2Fvideoplayback%3Fdur%3D118.409%26ipbits%3D0%26expire%3D1476821052%26itag%3D137%26clen%3D35615366%26key%3Dyt6%26mime%3Dvideo%252Fmp4%26gir%3Dyes%26nh%3DIgpwcjAyLm1pYTA0KgkxMjcuMC4wLjE%26signature%3D52BAA3451AD86660F41E74E46198F21792042F3C.CBBE6FF61C301E74095028FCE633FDEBA34CBD6C%26initcwndbps%3D242500%26upn%3DG0fHrTMQiq4%26source%3Dyoutube%26pl%3D24%26id%3Do-AILTGQmmjnz7N83Gxmrj6xWG_7HcFfOjIvl7r5jb5FmQ%26mn%3Dsn-hp57knly%26mm%3D31%26lmt%3D1474565269083648%26requiressl%3Dyes%26ip%3D65.48.218.195%26ms%3Dau%26sparams%3Dclen%252Cdur%252Cgir%252Cid%252Cinitcwndbps%252Cip%252Cipbits%252Citag%252Clmt%252Cmime%252Cmm%252Cmn%252Cms%252Cmv%252Cnh%252Cpl%252Crequiressl%252Csource%252Cupn%252Cexpire%26mv%3Dm%26mt%3D1476798643&size=1920x1080&bitrate=4426490&quality_label=1080p&index=714-1009&itag=137&clen=35615366&lmt=1474565269083648&projection_type=1&fps=24&init=0-713,type=video%2Fwebm%3B codecs%3D%22vp9%22&url=https%3A%2F%2Fr5---sn-hp57knly.googlevideo.com%2Fvideoplayback%3Fdur%3D118.368%26ipbits%3D0%26expire%3D1476821052%26itag%3D248%26clen%3D25520135%26key%3Dyt6%26mime%3Dvideo%252Fwebm%26gir%3Dyes%26nh%3DIgpwcjAyLm1pYTA0KgkxMjcuMC4wLjE%26signature%3D4167B4519DC46314E3A6FB64F43F347238D85285.37B477C9A282A87DD61D10C617BD408789883B37%26initcwndbps%3D242500%26upn%3DG0fHrTMQiq4%26source%3Dyoutube%26pl%3D24%26id%3Do-AILTGQmmjnz7N83Gxmrj6xWG_7HcFfOjIvl7r5jb5FmQ%26mn%3Dsn-hp57knly%26mm%3D31%26lmt%3D1474569402665280%26requiressl%3Dyes%26ip%3D65.48.218.195%26ms%3Dau%26sparams%3Dclen%252Cdur%252Cgir%252Cid%252Cinitcwndbps%252Cip%252Cipbits%252Citag%252Clmt%252Cmime%252Cmm%252Cmn%252Cms%252Cmv%252Cnh%252Cpl%252Crequiressl%252Csource%252Cupn%252Cexpire%26mv%3Dm%26mt%3D1476798643&size=1920x1080&bitrate=2997635&quality_label=1080p&index=243-616&itag=248&clen=25520135&lmt=1474569402665280&projection_type=1&fps=24&init=0-242,type=video%2Fmp4%3B codecs%3D%22avc1.4d401f%22&url=https%3A%2F%2Fr5---sn-hp57knly.googlevideo.com%2Fvideoplayback%3Fdur%3D118.409%26ipbits%3D0%26expire%3D1476821052%26itag%3D136%26clen%3D19076822%26key%3Dyt6%26mime%3Dvideo%252Fmp4%26gir%3Dyes%26nh%3DIgpwcjAyLm1pYTA0KgkxMjcuMC4wLjE%26signature%3D29015A3634C0778EC43C0C31224578CE7E2EA405.3151785C54C0BAE46C7717A0A2010AFDDF113040%26initcwndbps%3D242500%26upn%3DG0fHrTMQiq4%26source%3Dyoutube%26pl%3D24%26id%3Do-AILTGQmmjnz7N83Gxmrj6xWG_7HcFfOjIvl7r5jb5FmQ%26mn%3Dsn-hp57knly%26mm%3D31%26lmt%3D1474565267185729%26requiressl%3Dyes%26ip%3D65.48.218.195%26ms%3Dau%26sparams%3Dclen%252Cdur%252Cgir%252Cid%252Cinitcwndbps%252Cip%252Cipbits%252Citag%252Clmt%252Cmime%252Cmm%252Cmn%252Cms%252Cmv%252Cnh%252Cpl%252Crequiressl%252Csource%252Cupn%252Cexpire%26mv%3Dm%26mt%3D1476798643&size=1280x720&bitrate=2370415&quality_label=720p&index=713-1008&itag=136&clen=19076822&lmt=1474565267185729&projection_type=1&fps=24&init=0-712,type=video%2Fwebm%3B codecs%3D%22vp9%22&url=https%3A%2F%2Fr5---sn-hp57knly.googlevideo.com%2Fvideoplayback%3Fdur%3D118.368%26ipbits%3D0%26expire%3D1476821052%26itag%3D247%26clen%3D14298958%26key%3Dyt6%26mime%3Dvideo%252Fwebm%26gir%3Dyes%26nh%3DIgpwcjAyLm1pYTA0KgkxMjcuMC4wLjE%26signature%3D8B6B18F8BF5E7724F0F36B754A1391A844529852.B30E0E61A8B8F38220E6D32DC5E5C2579512BD58%26initcwndbps%3D242500%26upn%3DG0fHrTMQiq4%26source%3Dyoutube%26pl%3D24%26id%3Do-AILTGQmmjnz7N83Gxmrj6xWG_7HcFfOjIvl7r5jb5FmQ%26mn%3Dsn-hp57knly%26mm%3D31%26lmt%3D1474569681952912%26requiressl%3Dyes%26ip%3D65.48.218.195%26ms%3Dau%26sparams%3Dclen%252Cdur%252Cgir%252Cid%252Cinitcwndbps%252Cip%252Cipbits%252Citag%252Clmt%252Cmime%252Cmm%252Cmn%252Cms%252Cmv%252Cnh%252Cpl%252Crequiressl%252Csource%252Cupn%252Cexpire%26mv%3Dm%26mt%3D1476798643&size=1280x720&bitrate=1678897&quality_label=720p&index=243-607&itag=247&clen=14298958&lmt=1474569681952912&projection_type=1&fps=24&init=0-242,type=video%2Fmp4%3B codecs%3D%22avc1.4d401e%22&url=https%3A%2F%2Fr5---sn-hp57knly.googlevideo.com%2Fvideoplayback%3Fdur%3D118.409%26ipbits%3D0%26expire%3D1476821052%26itag%3D135%26clen%3D9806974%26key%3Dyt6%26mime%3Dvideo%252Fmp4%26gir%3Dyes%26nh%3DIgpwcjAyLm1pYTA0KgkxMjcuMC4wLjE%26signature%3D1F728BE575CBCCD63BABD25E47CA3EB9EB29E624.92D7DDF4500F3ED3B5FBA159F786E05F845AECAA%26initcwndbps%3D242500%26upn%3DG0fHrTMQiq4%26source%3Dyoutube%26pl%3D24%26id%3Do-AILTGQmmjnz7N83Gxmrj6xWG_7HcFfOjIvl7r5jb5FmQ%26mn%3Dsn-hp57knly%26mm%3D31%26lmt%3D1474565264791273%26requiressl%3Dyes%26ip%3D65.48.218.195%26ms%3Dau%26sparams%3Dclen%252Cdur%252Cgir%252Cid%252Cinitcwndbps%252Cip%252Cipbits%252Citag%252Clmt%252Cmime%252Cmm%252Cmn%252Cms%252Cmv%252Cnh%252Cpl%252Crequiressl%252Csource%252Cupn%252Cexpire%26mv%3Dm%26mt%3D1476798643&size=854x480&bitrate=1193101&quality_label=480p&index=713-1008&itag=135&clen=9806974&lmt=1474565264791273&projection_type=1&fps=24&init=0-712,type=video%2Fwebm%3B codecs%3D%22vp9%22&url=https%3A%2F%2Fr5---sn-hp57knly.googlevideo.com%2Fvideoplayback%3Fdur%3D118.368%26ipbits%3D0%26expire%3D1476821052%26itag%3D244%26clen%3D7389819%26key%3Dyt6%26mime%3Dvideo%252Fwebm%26gir%3Dyes%26nh%3DIgpwcjAyLm1pYTA0KgkxMjcuMC4wLjE%26signature%3D119520819E8D91A56191594433918977499C09DC.4F5EAA7DDABE51D89DB46C1792EE5D6AE4875AAA%26initcwndbps%3D242500%26upn%3DG0fHrTMQiq4%26source%3Dyoutube%26pl%3D24%26id%3Do-AILTGQmmjnz7N83Gxmrj6xWG_7HcFfOjIvl7r5jb5FmQ%26mn%3Dsn-hp57knly%26mm%3D31%26lmt%3D1474569681550718%26requiressl%3Dyes%26ip%3D65.48.218.195%26ms%3Dau%26sparams%3Dclen%252Cdur%252Cgir%252Cid%252Cinitcwndbps%252Cip%252Cipbits%252Citag%252Clmt%252Cmime%252Cmm%252Cmn%252Cms%252Cmv%252Cnh%252Cpl%252Crequiressl%252Csource%252Cupn%252Cexpire%26mv%3Dm%26mt%3D1476798643&size=854x480&bitrate=879117&quality_label=480p&index=243-607&itag=244&clen=7389819&lmt=1474569681550718&projection_type=1&fps=24&init=0-242,type=video%2Fmp4%3B codecs%3D%22avc1.4d401e%22&url=https%3A%2F%2Fr5---sn-hp57knly.googlevideo.com%2Fvideoplayback%3Fdur%3D118.409%26ipbits%3D0%26expire%3D1476821052%26itag%3D134%26clen%3D4818649%26key%3Dyt6%26mime%3Dvideo%252Fmp4%26gir%3Dyes%26nh%3DIgpwcjAyLm1pYTA0KgkxMjcuMC4wLjE%26signature%3DA6E77585CD8AC07E6096BAC7732370F125A810DD.6ACA59CAB766A670B0E4ED9666653387EFCDF4C2%26initcwndbps%3D242500%26upn%3DG0fHrTMQiq4%26source%3Dyoutube%26pl%3D24%26id%3Do-AILTGQmmjnz7N83Gxmrj6xWG_7HcFfOjIvl7r5jb5FmQ%26mn%3Dsn-hp57knly%26mm%3D31%26lmt%3D1474565268288101%26requiressl%3Dyes%26ip%3D65.48.218.195%26ms%3Dau%26sparams%3Dclen%252Cdur%252Cgir%252Cid%252Cinitcwndbps%252Cip%252Cipbits%252Citag%252Clmt%252Cmime%252Cmm%252Cmn%252Cms%252Cmv%252Cnh%252Cpl%252Crequiressl%252Csource%252Cupn%252Cexpire%26mv%3Dm%26mt%3D1476798643&size=640x360&bitrate=636745&quality_label=360p&index=713-1008&itag=134&clen=4818649&lmt=1474565268288101&projection_type=1&fps=24&init=0-712,type=video%2Fwebm%3B codecs%3D%22vp9%22&url=https%3A%2F%2Fr5---sn-hp57knly.googlevideo.com%2Fvideoplayback%3Fdur%3D118.368%26ipbits%3D0%26expire%3D1476821052%26itag%3D243%26clen%3D4372313%26key%3Dyt6%26mime%3Dvideo%252Fwebm%26gir%3Dyes%26nh%3DIgpwcjAyLm1pYTA0KgkxMjcuMC4wLjE%26signature%3D99E703D0F816A79DB70A615B188BAA8383E188EF.39BAA3CBA31322B5583ED430AF999CFA069A4F8A%26initcwndbps%3D242500%26upn%3DG0fHrTMQiq4%26source%3Dyoutube%26pl%3D24%26id%3Do-AILTGQmmjnz7N83Gxmrj6xWG_7HcFfOjIvl7r5jb5FmQ%26mn%3Dsn-hp57knly%26mm%3D31%26lmt%3D1474569681575963%26requiressl%3Dyes%26ip%3D65.48.218.195%26ms%3Dau%26sparams%3Dclen%252Cdur%252Cgir%252Cid%252Cinitcwndbps%252Cip%252Cipbits%252Citag%252Clmt%252Cmime%252Cmm%252Cmn%252Cms%252Cmv%252Cnh%252Cpl%252Crequiressl%252Csource%252Cupn%252Cexpire%26mv%3Dm%26mt%3D1476798643&size=640x360&bitrate=459023&quality_label=360p&index=243-607&itag=243&clen=4372313&lmt=1474569681575963&projection_type=1&fps=24&init=0-242,type=video%2Fmp4%3B codecs%3D%22avc1.4d4015%22&url=https%3A%2F%2Fr5---sn-hp57knly.googlevideo.com%2Fvideoplayback%3Fdur%3D118.409%26ipbits%3D0%26expire%3D1476821052%26itag%3D133%26clen%3D3323319%26key%3Dyt6%26mime%3Dvideo%252Fmp4%26gir%3Dyes%26nh%3DIgpwcjAyLm1pYTA0KgkxMjcuMC4wLjE%26signature%3D2F37DC2FC7B1B1B40BD2D8321052525F19F54868.DA685B887EF969C55112CC8189130C0ACB28439F%26initcwndbps%3D242500%26upn%3DG0fHrTMQiq4%26source%3Dyoutube%26pl%3D24%26id%3Do-AILTGQmmjnz7N83Gxmrj6xWG_7HcFfOjIvl7r5jb5FmQ%26mn%3Dsn-hp57knly%26mm%3D31%26lmt%3D1474565264372391%26requiressl%3Dyes%26ip%3D65.48.218.195%26ms%3Dau%26sparams%3Dclen%252Cdur%252Cgir%252Cid%252Cinitcwndbps%252Cip%252Cipbits%252Citag%252Clmt%252Cmime%252Cmm%252Cmn%252Cms%252Cmv%252Cnh%252Cpl%252Crequiressl%252Csource%252Cupn%252Cexpire%26mv%3Dm%26mt%3D1476798643&size=426x240&bitrate=253025&quality_label=240p&index=713-1008&itag=133&clen=3323319&lmt=1474565264372391&projection_type=1&fps=24&init=0-712,type=video%2Fwebm%3B codecs%3D%22vp9%22&url=https%3A%2F%2Fr5---sn-hp57knly.googlevideo.com%2Fvideoplayback%3Fdur%3D118.368%26ipbits%3D0%26expire%3D1476821052%26itag%3D242%26clen%3D2394029%26key%3Dyt6%26mime%3Dvideo%252Fwebm%26gir%3Dyes%26nh%3DIgpwcjAyLm1pYTA0KgkxMjcuMC4wLjE%26signature%3D4FB954C1C7D439B6A6050F080B4BFA6B23940F1E.01F73E52F54585FCC6A8D914301BA1F9708AFAEF%26initcwndbps%3D242500%26upn%3DG0fHrTMQiq4%26source%3Dyoutube%26pl%3D24%26id%3Do-AILTGQmmjnz7N83Gxmrj6xWG_7HcFfOjIvl7r5jb5FmQ%26mn%3Dsn-hp57knly%26mm%3D31%26lmt%3D1474569681136252%26requiressl%3Dyes%26ip%3D65.48.218.195%26ms%3Dau%26sparams%3Dclen%252Cdur%252Cgir%252Cid%252Cinitcwndbps%252Cip%252Cipbits%252Citag%252Clmt%252Cmime%252Cmm%252Cmn%252Cms%252Cmv%252Cnh%252Cpl%252Crequiressl%252Csource%252Cupn%252Cexpire%26mv%3Dm%26mt%3D1476798643&size=426x240&bitrate=248476&quality_label=240p&index=242-606&itag=242&clen=2394029&lmt=1474569681136252&projection_type=1&fps=24&init=0-241,type=video%2Fmp4%3B codecs%3D%22avc1.4d400c%22&url=https%3A%2F%2Fr5---sn-hp57knly.googlevideo.com%2Fvideoplayback%3Fdur%3D118.409%26ipbits%3D0%26expire%3D1476821052%26itag%3D160%26clen%3D1511434%26key%3Dyt6%26mime%3Dvideo%252Fmp4%26gir%3Dyes%26nh%3DIgpwcjAyLm1pYTA0KgkxMjcuMC4wLjE%26signature%3D793668000302F751E334EC08953C6B0F57FFFFE0.B25A2DF2D0E54A5AB2B93167C3626D2A2DE112FF%26initcwndbps%3D242500%26upn%3DG0fHrTMQiq4%26source%3Dyoutube%26pl%3D24%26id%3Do-AILTGQmmjnz7N83Gxmrj6xWG_7HcFfOjIvl7r5jb5FmQ%26mn%3Dsn-hp57knly%26mm%3D31%26lmt%3D1474565263267015%26requiressl%3Dyes%26ip%3D65.48.218.195%26ms%3Dau%26sparams%3Dclen%252Cdur%252Cgir%252Cid%252Cinitcwndbps%252Cip%252Cipbits%252Citag%252Clmt%252Cmime%252Cmm%252Cmn%252Cms%252Cmv%252Cnh%252Cpl%252Crequiressl%252Csource%252Cupn%252Cexpire%26mv%3Dm%26mt%3D1476798643&size=256x144&bitrate=113275&quality_label=144p&index=712-1007&itag=160&clen=1511434&lmt=1474565263267015&projection_type=1&fps=24&init=0-711,type=video%2Fwebm%3B codecs%3D%22vp9%22&url=https%3A%2F%2Fr5---sn-hp57knly.googlevideo.com%2Fvideoplayback%3Fdur%3D118.368%26ipbits%3D0%26expire%3D1476821052%26itag%3D278%26clen%3D1263464%26key%3Dyt6%26mime%3Dvideo%252Fwebm%26gir%3Dyes%26nh%3DIgpwcjAyLm1pYTA0KgkxMjcuMC4wLjE%26signature%3DB02060E5B7316763ED1084F6F3036E6A019D09D1.829769886CD515A0D50280F74A63F54E97D14DC9%26initcwndbps%3D242500%26upn%3DG0fHrTMQiq4%26source%3Dyoutube%26pl%3D24%26id%3Do-AILTGQmmjnz7N83Gxmrj6xWG_7HcFfOjIvl7r5jb5FmQ%26mn%3Dsn-hp57knly%26mm%3D31%26lmt%3D1474569681369427%26requiressl%3Dyes%26ip%3D65.48.218.195%26ms%3Dau%26sparams%3Dclen%252Cdur%252Cgir%252Cid%252Cinitcwndbps%252Cip%252Cipbits%252Citag%252Clmt%252Cmime%252Cmm%252Cmn%252Cms%252Cmv%252Cnh%252Cpl%252Crequiressl%252Csource%252Cupn%252Cexpire%26mv%3Dm%26mt%3D1476798643&size=256x144&bitrate=110882&quality_label=144p&index=242-605&itag=278&clen=1263464&lmt=1474569681369427&projection_type=1&fps=24&init=0-241,bitrate=127947&projection_type=1&lmt=1474565261681153&url=https%3A%2F%2Fr5---sn-hp57knly.googlevideo.com%2Fvideoplayback%3Fdur%3D118.468%26ipbits%3D0%26expire%3D1476821052%26itag%3D140%26clen%3D1882201%26key%3Dyt6%26mime%3Daudio%252Fmp4%26gir%3Dyes%26nh%3DIgpwcjAyLm1pYTA0KgkxMjcuMC4wLjE%26signature%3DE2B0595A2BCE25242C2F20326B77B197088F2940.CF1E5F62927BEC684D52F23FE3129AF7E6029F3C%26initcwndbps%3D242500%26upn%3DG0fHrTMQiq4%26source%3Dyoutube%26pl%3D24%26id%3Do-AILTGQmmjnz7N83Gxmrj6xWG_7HcFfOjIvl7r5jb5FmQ%26mn%3Dsn-hp57knly%26mm%3D31%26lmt%3D1474565261681153%26requiressl%3Dyes%26ip%3D65.48.218.195%26ms%3Dau%26sparams%3Dclen%252Cdur%252Cgir%252Cid%252Cinitcwndbps%252Cip%252Cipbits%252Citag%252Clmt%252Cmime%252Cmm%252Cmn%252Cms%252Cmv%252Cnh%252Cpl%252Crequiressl%252Csource%252Cupn%252Cexpire%26mv%3Dm%26mt%3D1476798643&itag=140&clen=1882201&init=0-591&type=audio%2Fmp4%3B codecs%3D%22mp4a.40.2%22&index=592-767,bitrate=110099&projection_type=1&lmt=1474569320703410&url=https%3A%2F%2Fr5---sn-hp57knly.googlevideo.com%2Fvideoplayback%3Fdur%3D118.406%26ipbits%3D0%26expire%3D1476821052%26itag%3D171%26clen%3D1466478%26key%3Dyt6%26mime%3Daudio%252Fwebm%26gir%3Dyes%26nh%3DIgpwcjAyLm1pYTA0KgkxMjcuMC4wLjE%26signature%3D92E950AFEF220D8F97552BF0FA682477C6C45F7F.A14A54885D49ADA927DE8813254BFBDA7B2B50A9%26initcwndbps%3D242500%26upn%3DG0fHrTMQiq4%26source%3Dyoutube%26pl%3D24%26id%3Do-AILTGQmmjnz7N83Gxmrj6xWG_7HcFfOjIvl7r5jb5FmQ%26mn%3Dsn-hp57knly%26mm%3D31%26lmt%3D1474569320703410%26requiressl%3Dyes%26ip%3D65.48.218.195%26ms%3Dau%26sparams%3Dclen%252Cdur%252Cgir%252Cid%252Cinitcwndbps%252Cip%252Cipbits%252Citag%252Clmt%252Cmime%252Cmm%252Cmn%252Cms%252Cmv%252Cnh%252Cpl%252Crequiressl%252Csource%252Cupn%252Cexpire%26mv%3Dm%26mt%3D1476798643&itag=171&clen=1466478&init=0-4451&type=audio%2Fwebm%3B codecs%3D%22vorbis%22&index=4452-4652,bitrate=52822&projection_type=1&lmt=1474569319163572&url=https%3A%2F%2Fr5---sn-hp57knly.googlevideo.com%2Fvideoplayback%3Fdur%3D118.401%26ipbits%3D0%26expire%3D1476821052%26itag%3D249%26clen%3D746586%26key%3Dyt6%26mime%3Daudio%252Fwebm%26gir%3Dyes%26nh%3DIgpwcjAyLm1pYTA0KgkxMjcuMC4wLjE%26signature%3D5FA8093E4805638704A15E20ED8CF46F396D71BA.66618E8367C45B3BC0A1150F0EA70315D46D3EE2%26initcwndbps%3D242500%26upn%3DG0fHrTMQiq4%26source%3Dyoutube%26pl%3D24%26id%3Do-AILTGQmmjnz7N83Gxmrj6xWG_7HcFfOjIvl7r5jb5FmQ%26mn%3Dsn-hp57knly%26mm%3D31%26lmt%3D1474569319163572%26requiressl%3Dyes%26ip%3D65.48.218.195%26ms%3Dau%26sparams%3Dclen%252Cdur%252Cgir%252Cid%252Cinitcwndbps%252Cip%252Cipbits%252Citag%252Clmt%252Cmime%252Cmm%252Cmn%252Cms%252Cmv%252Cnh%252Cpl%252Crequiressl%252Csource%252Cupn%252Cexpire%26mv%3Dm%26mt%3D1476798643&itag=249&clen=746586&init=0-271&type=audio%2Fwebm%3B codecs%3D%22opus%22&index=272-471,bitrate=66796&projection_type=1&lmt=1474569318917080&url=https%3A%2F%2Fr5---sn-hp57knly.googlevideo.com%2Fvideoplayback%3Fdur%3D118.401%26ipbits%3D0%26expire%3D1476821052%26itag%3D250%26clen%3D931622%26key%3Dyt6%26mime%3Daudio%252Fwebm%26gir%3Dyes%26nh%3DIgpwcjAyLm1pYTA0KgkxMjcuMC4wLjE%26signature%3D326B84E9D12FF3BB1E93210DD23F56A7D6E62EC9.5467E9E9FC519B1BFEC6BC282CB3832A9B945EFA%26initcwndbps%3D242500%26upn%3DG0fHrTMQiq4%26source%3Dyoutube%26pl%3D24%26id%3Do-AILTGQmmjnz7N83Gxmrj6xWG_7HcFfOjIvl7r5jb5FmQ%26mn%3Dsn-hp57knly%26mm%3D31%26lmt%3D1474569318917080%26requiressl%3Dyes%26ip%3D65.48.218.195%26ms%3Dau%26sparams%3Dclen%252Cdur%252Cgir%252Cid%252Cinitcwndbps%252Cip%252Cipbits%252Citag%252Clmt%252Cmime%252Cmm%252Cmn%252Cms%252Cmv%252Cnh%252Cpl%252Crequiressl%252Csource%252Cupn%252Cexpire%26mv%3Dm%26mt%3D1476798643&itag=250&clen=931622&init=0-271&type=audio%2Fwebm%3B codecs%3D%22opus%22&index=272-472,bitrate=129762&projection_type=1&lmt=1474569318312948&url=https%3A%2F%2Fr5---sn-hp57knly.googlevideo.com%2Fvideoplayback%3Fdur%3D118.401%26ipbits%3D0%26expire%3D1476821052%26itag%3D251%26clen%3D1775226%26key%3Dyt6%26mime%3Daudio%252Fwebm%26gir%3Dyes%26nh%3DIgpwcjAyLm1pYTA0KgkxMjcuMC4wLjE%26signature%3D297ED23037D3B1F17E18025D2D519CB5D5A1A074.2150FDAF2032D98C031EB091D62EF84105A1C922%26initcwndbps%3D242500%26upn%3DG0fHrTMQiq4%26source%3Dyoutube%26pl%3D24%26id%3Do-AILTGQmmjnz7N83Gxmrj6xWG_7HcFfOjIvl7r5jb5FmQ%26mn%3Dsn-hp57knly%26mm%3D31%26lmt%3D1474569318312948%26requiressl%3Dyes%26ip%3D65.48.218.195%26ms%3Dau%26sparams%3Dclen%252Cdur%252Cgir%252Cid%252Cinitcwndbps%252Cip%252Cipbits%252Citag%252Clmt%252Cmime%252Cmm%252Cmn%252Cms%252Cmv%252Cnh%252Cpl%252Crequiressl%252Csource%252Cupn%252Cexpire%26mv%3Dm%26mt%3D1476798643&itag=251&clen=1775226&init=0-271&type=audio%2Fwebm%3B codecs%3D%22opus%22&index=272-472 - allow_embed - 1 - allow_ratings - 1 - atc - a=3&b=G0XIms3xv9UwbwqOC7HFsRZyaBk&c=1476799452&d=1&e=CQY3KUR3VzM&c3a=19&hh=ajYswiFFjEMPHO8Jv5_XQrFNU1s - author - Apple - avg_rating - 4.60785837441 - c - WEB - caption_audio_tracks - v=0&d=1&i=1%2C0 - caption_tracks - n=English %28auto-generated%29&k=asr&lc=en&v=a.en&u=https%3A%2F%2Fwww.youtube.com%2Fapi%2Ftimedtext%3Fsignature%3D10596E096A3CB5CEB37A2407B90013F00C1C23DE.0941D2DB3471B804303545FE39C076821D116761%26key%3Dyttt1%26v%3DCQY3KUR3VzM%26asr_langs%3Dko%252Cde%252Cit%252Cja%252Cen%252Cfr%252Cru%252Ces%252Cnl%252Cpt%26sparams%3Dasr_langs%252Ccaps%252Cv%252Cexpire%26expire%3D1476824652%26caps%3Dasr%26hl%3Den_US%26kind%3Dasr%26lang%3Den&t=1,n=English&u=https%3A%2F%2Fwww.youtube.com%2Fapi%2Ftimedtext%3Fsignature%3D10596E096A3CB5CEB37A2407B90013F00C1C23DE.0941D2DB3471B804303545FE39C076821D116761%26key%3Dyttt1%26v%3DCQY3KUR3VzM%26asr_langs%3Dko%252Cde%252Cit%252Cja%252Cen%252Cfr%252Cru%252Ces%252Cnl%252Cpt%26sparams%3Dasr_langs%252Ccaps%252Cv%252Cexpire%26expire%3D1476824652%26caps%3Dasr%26hl%3Den_US%26lang%3Den&lc=en&t=1&v=.en - caption_translation_languages - n=Afrikaans&lc=af,n=Albanian&lc=sq,n=Amharic&lc=am,n=Arabic&lc=ar,n=Armenian&lc=hy,n=Azerbaijani&lc=az,n=Basque&lc=eu,n=Belarusian&lc=be,n=Bengali&lc=bn,n=Bosnian&lc=bs,n=Bulgarian&lc=bg,n=Burmese&lc=my,n=Catalan&lc=ca,n=Cebuano&lc=ceb,n=Chinese %28Simplified%29&lc=zh-Hans,n=Chinese %28Traditional%29&lc=zh-Hant,n=Corsican&lc=co,n=Croatian&lc=hr,n=Czech&lc=cs,n=Danish&lc=da,n=Dutch&lc=nl,n=English&lc=en,n=Esperanto&lc=eo,n=Estonian&lc=et,n=Filipino&lc=fil,n=Finnish&lc=fi,n=French&lc=fr,n=Galician&lc=gl,n=Georgian&lc=ka,n=German&lc=de,n=Greek&lc=el,n=Gujarati&lc=gu,n=Haitian Creole&lc=ht,n=Hausa&lc=ha,n=Hawaiian&lc=haw,n=Hebrew&lc=iw,n=Hindi&lc=hi,n=Hmong&lc=hmn,n=Hungarian&lc=hu,n=Icelandic&lc=is,n=Igbo&lc=ig,n=Indonesian&lc=id,n=Irish&lc=ga,n=Italian&lc=it,n=Japanese&lc=ja,n=Javanese&lc=jv,n=Kannada&lc=kn,n=Kazakh&lc=kk,n=Khmer&lc=km,n=Korean&lc=ko,n=Kurdish&lc=ku,n=Kyrgyz&lc=ky,n=Lao&lc=lo,n=Latin&lc=la,n=Latvian&lc=lv,n=Lithuanian&lc=lt,n=Luxembourgish&lc=lb,n=Macedonian&lc=mk,n=Malagasy&lc=mg,n=Malay&lc=ms,n=Malayalam&lc=ml,n=Maltese&lc=mt,n=Maori&lc=mi,n=Marathi&lc=mr,n=Mongolian&lc=mn,n=Nepali&lc=ne,n=Norwegian&lc=no,n=Nyanja&lc=ny,n=Pashto&lc=ps,n=Persian&lc=fa,n=Polish&lc=pl,n=Portuguese&lc=pt,n=Punjabi&lc=pa,n=Romanian&lc=ro,n=Russian&lc=ru,n=Samoan&lc=sm,n=Scottish Gaelic&lc=gd,n=Serbian&lc=sr,n=Shona&lc=sn,n=Sindhi&lc=sd,n=Sinhala&lc=si,n=Slovak&lc=sk,n=Slovenian&lc=sl,n=Somali&lc=so,n=Southern Sotho&lc=st,n=Spanish&lc=es,n=Sundanese&lc=su,n=Swahili&lc=sw,n=Swedish&lc=sv,n=Tajik&lc=tg,n=Tamil&lc=ta,n=Telugu&lc=te,n=Thai&lc=th,n=Turkish&lc=tr,n=Ukrainian&lc=uk,n=Urdu&lc=ur,n=Uzbek&lc=uz,n=Vietnamese&lc=vi,n=Welsh&lc=cy,n=Western Frisian&lc=fy,n=Xhosa&lc=xh,n=Yiddish&lc=yi,n=Yoruba&lc=yo,n=Zulu&lc=zu - cc3_module - 1 - cc_asr - 1 - cc_font - Arial Unicode MS, arial, verdana, _sans - cc_fonts_url - https://s.ytimg.com/yts/swfbin/player-vflUV9oOf/fonts708.swf - cc_module - https://s.ytimg.com/yts/swfbin/player-vflUV9oOf/subtitle_module.swf - cl - 136372475 - csi_page_type - embed - cver - 1.20161017 - dashmpd - https://manifest.googlevideo.com/api/manifest/dash/hfr/1/ipbits/0/expire/1476821052/itag/0/key/yt6/nh/IgpwcjAyLm1pYTA0KgkxMjcuMC4wLjE/playback_host/r5---sn-hp57knly.googlevideo.com/signature/AC9F8948167E85A4CD67DBBCB666E63FC1D9D79C.17DD4CFA37FF2EE6A8954662D82D88FE54AB3295/initcwndbps/242500/upn/S4g5bRfk4RI/source/youtube/pl/24/id/o-AILTGQmmjnz7N83Gxmrj6xWG_7HcFfOjIvl7r5jb5FmQ/mn/sn-hp57knly/mm/31/as/fmp4_audio_clear%2Cwebm_audio_clear%2Cwebm2_audio_clear%2Cfmp4_sd_hd_clear%2Cwebm2_sd_hd_clear/requiressl/yes/ip/65.48.218.195/ms/au/sparams/as%2Chfr%2Cid%2Cinitcwndbps%2Cip%2Cipbits%2Citag%2Cmm%2Cmn%2Cms%2Cmv%2Cnh%2Cpl%2Cplayback_host%2Crequiressl%2Csource%2Cexpire/mv/m/mt/1476798643 - default_audio_track_index - 0 - enablecsi - 1 - eventid - 3CsGWL-bBoOriQaTl6XADw - fexp - 9410705,9419451,9422596,9428398,9431012,9433096,9433221,9433493,9433946,9434046,9434289,9435526,9435892,9438601,9439580,9441160,9441920,9443493,9443566,9444238,9445077,9446054,9446364,9447647,9447882,9448130,9449549,9449579,9450193,9450481,9450601,9451246,9451531 - fmt_list - 22/1280x720/9/0/115,43/640x360/99/0/0,18/640x360/9/0/115,36/426x240/99/1/0,17/256x144/99/1/0,13/256x144/99/1/0 - has_cc - True - idpj - -6 - is_listed - 1 - iurl - https://i.ytimg.com/vi/CQY3KUR3VzM/hqdefault.jpg - iurlhq - https://i.ytimg.com/vi/CQY3KUR3VzM/hqdefault.jpg - iurlmaxres - https://i.ytimg.com/vi/CQY3KUR3VzM/maxresdefault.jpg - iurlmq - https://i.ytimg.com/vi/CQY3KUR3VzM/mqdefault.jpg - iurlsd - https://i.ytimg.com/vi/CQY3KUR3VzM/sddefault.jpg - iv3_module - 1 - iv_allow_in_place_switch - 1 - iv_invideo_url - https://www.youtube.com/annotations_invideo?cap_hist=1&video_id=CQY3KUR3VzM&ei=3CsGWL-bBoOriQaTl6XADw - iv_load_policy - 1 - iv_module - https://s.ytimg.com/yts/swfbin/player-vflUV9oOf/iv_module.swf - keywords - Apple Music - ldpj - -7 - length_seconds - 119 - muted - 0 - no_get_video_log - 1 - of - 21KtFJWzWb9lY3X6NI5UAw - oid - ffsQQyXI443h2PgMzMjp-g - plid - AAU_JCrBXZtcMN7u - pltype - content - probe_url - https://r15---sn-aigllnle.googlevideo.com/videogoodput?id=o-ALfccxha-qqgG4nLx8c2Y3rEqdJmhYokw3uNnBhN_YUh&source=goodput&range=0-4999&expire=1476803052&ip=65.48.218.195&ms=pm&mm=35&pl=24&nh=IgpwcjA0LmxocjE0Kg03Mi4xNC4xOTcuMjM1&sparams=id,source,range,expire,ip,ms,mm,pl,nh&signature=5AECD46A836984C9F5377ADC8D6444DC3CB71376.4623BA45AB598EA6531E65E0EECBA34ABEA0851B&key=cms1 - ptchn - E_M8A5yxnLfW0KghEeajjw - ptk - Apple%2Bvid - remarketing_url - https://googleads.g.doubleclick.net/pagead/viewthroughconversion/962985656/?backend=player_vars&cname=1&cver=AS3&foc_id=E_M8A5yxnLfW0KghEeajjw&label=followon_view&ptype=no_rmkt&srr=n - short_view_count_text - 1M views - status - ok - storyboard_spec - https://i.ytimg.com/sb/CQY3KUR3VzM/storyboard3_L$L/$N.jpg|48#27#100#10#10#0#default#A_4feu41ZvIulgFKR_MeyUpMXqs|80#45#120#10#10#1000#M$M#Hpo7DFKHRoK2xu714xG56FT2Kew|160#90#120#5#5#1000#M$M#AqM3iOn62Vz789UjfDFX-HsYKsM - thumbnail_url - https://i.ytimg.com/vi/CQY3KUR3VzM/default.jpg - timestamp - 1476799452 - title - The all-new Apple Music. - tmi - 1 - token - Gb16c_uXuYR_omUa3pYbZEsfADxVLzWivAb2S3JSebk= - ttsurl - https://www.youtube.com/api/timedtext?signature=10596E096A3CB5CEB37A2407B90013F00C1C23DE.0941D2DB3471B804303545FE39C076821D116761&key=yttt1&v=CQY3KUR3VzM&asr_langs=ko%2Cde%2Cit%2Cja%2Cen%2Cfr%2Cru%2Ces%2Cnl%2Cpt&sparams=asr_langs%2Ccaps%2Cv%2Cexpire&expire=1476824652&caps=asr&hl=en_US - ucid - UCE_M8A5yxnLfW0KghEeajjw - url_encoded_fmt_stream_map - itag=22&type=video%2Fmp4%3B codecs%3D%22avc1.64001F%2C mp4a.40.2%22&fallback_host=tc.v2.cache1.googlevideo.com&quality=hd720&url=https%3A%2F%2Fr5---sn-hp57knly.googlevideo.com%2Fvideoplayback%3Fdur%3D118.468%26ipbits%3D0%26expire%3D1476821052%26ratebypass%3Dyes%26itag%3D22%26key%3Dyt6%26mime%3Dvideo%252Fmp4%26nh%3DIgpwcjAyLm1pYTA0KgkxMjcuMC4wLjE%26signature%3DDFF2A0A222B1E8FC5877B151E4D643F754165052.470C0539104F227A351CCB241953DA8F7AC4A83D%26initcwndbps%3D242500%26upn%3D6Jx2CzfaB_U%26source%3Dyoutube%26pl%3D24%26id%3Do-AILTGQmmjnz7N83Gxmrj6xWG_7HcFfOjIvl7r5jb5FmQ%26mn%3Dsn-hp57knly%26mm%3D31%26lmt%3D1474565445744645%26requiressl%3Dyes%26ip%3D65.48.218.195%26ms%3Dau%26sparams%3Ddur%252Cid%252Cinitcwndbps%252Cip%252Cipbits%252Citag%252Clmt%252Cmime%252Cmm%252Cmn%252Cms%252Cmv%252Cnh%252Cpl%252Cratebypass%252Crequiressl%252Csource%252Cupn%252Cexpire%26mv%3Dm%26mt%3D1476798643,itag=43&type=video%2Fwebm%3B codecs%3D%22vp8.0%2C vorbis%22&fallback_host=tc.v19.cache6.googlevideo.com&quality=medium&url=https%3A%2F%2Fr5---sn-hp57knly.googlevideo.com%2Fvideoplayback%3Fdur%3D0.000%26ipbits%3D0%26expire%3D1476821052%26ratebypass%3Dyes%26itag%3D43%26key%3Dyt6%26mime%3Dvideo%252Fwebm%26nh%3DIgpwcjAyLm1pYTA0KgkxMjcuMC4wLjE%26signature%3D2636647F5DFA9A4035A5F8B3CAC240994117D5B0.752C7F58D489E093037C44E1D0F43E69DE07EA34%26initcwndbps%3D242500%26upn%3D6Jx2CzfaB_U%26source%3Dyoutube%26pl%3D24%26id%3Do-AILTGQmmjnz7N83Gxmrj6xWG_7HcFfOjIvl7r5jb5FmQ%26mn%3Dsn-hp57knly%26mm%3D31%26lmt%3D1474569251980433%26requiressl%3Dyes%26ip%3D65.48.218.195%26ms%3Dau%26sparams%3Ddur%252Cid%252Cinitcwndbps%252Cip%252Cipbits%252Citag%252Clmt%252Cmime%252Cmm%252Cmn%252Cms%252Cmv%252Cnh%252Cpl%252Cratebypass%252Crequiressl%252Csource%252Cupn%252Cexpire%26mv%3Dm%26mt%3D1476798643,itag=18&type=video%2Fmp4%3B codecs%3D%22avc1.42001E%2C mp4a.40.2%22&fallback_host=tc.v15.cache2.googlevideo.com&quality=medium&url=https%3A%2F%2Fr5---sn-hp57knly.googlevideo.com%2Fvideoplayback%3Fdur%3D118.468%26ipbits%3D0%26expire%3D1476821052%26ratebypass%3Dyes%26itag%3D18%26key%3Dyt6%26mime%3Dvideo%252Fmp4%26nh%3DIgpwcjAyLm1pYTA0KgkxMjcuMC4wLjE%26signature%3D079339ABEAFBBC495FB93F122EAC9A77A33A532F.41C1984713CB9BED92FF9777E5754766FC0FD6%26initcwndbps%3D242500%26upn%3D6Jx2CzfaB_U%26source%3Dyoutube%26pl%3D24%26id%3Do-AILTGQmmjnz7N83Gxmrj6xWG_7HcFfOjIvl7r5jb5FmQ%26mn%3Dsn-hp57knly%26mm%3D31%26lmt%3D1474565212633283%26requiressl%3Dyes%26ip%3D65.48.218.195%26ms%3Dau%26sparams%3Ddur%252Cid%252Cinitcwndbps%252Cip%252Cipbits%252Citag%252Clmt%252Cmime%252Cmm%252Cmn%252Cms%252Cmv%252Cnh%252Cpl%252Cratebypass%252Crequiressl%252Csource%252Cupn%252Cexpire%26mv%3Dm%26mt%3D1476798643,itag=36&type=video%2F3gpp%3B codecs%3D%22mp4v.20.3%2C mp4a.40.2%22&fallback_host=tc.v21.cache8.googlevideo.com&quality=small&url=https%3A%2F%2Fr5---sn-hp57knly.googlevideo.com%2Fvideoplayback%3Fdur%3D118.514%26ipbits%3D0%26expire%3D1476821052%26ms%3Dau%26initcwndbps%3D242500%26signature%3D69718CF3416A5B854EECBF28AD95C32F112716E8.9596A96B39C759E71419FC3A4138B4B4EDC19C24%26upn%3D6Jx2CzfaB_U%26source%3Dyoutube%26pl%3D24%26id%3Do-AILTGQmmjnz7N83Gxmrj6xWG_7HcFfOjIvl7r5jb5FmQ%26mn%3Dsn-hp57knly%26mm%3D31%26itag%3D36%26lmt%3D1474565215934738%26requiressl%3Dyes%26ip%3D65.48.218.195%26key%3Dyt6%26mime%3Dvideo%252F3gpp%26sparams%3Ddur%252Cid%252Cinitcwndbps%252Cip%252Cipbits%252Citag%252Clmt%252Cmime%252Cmm%252Cmn%252Cms%252Cmv%252Cnh%252Cpl%252Crequiressl%252Csource%252Cupn%252Cexpire%26mv%3Dm%26nh%3DIgpwcjAyLm1pYTA0KgkxMjcuMC4wLjE%26mt%3D1476798643,itag=17&type=video%2F3gpp%3B codecs%3D%22mp4v.20.3%2C mp4a.40.2%22&fallback_host=tc.v6.cache1.googlevideo.com&quality=small&url=https%3A%2F%2Fr5---sn-hp57knly.googlevideo.com%2Fvideoplayback%3Fdur%3D118.514%26ipbits%3D0%26expire%3D1476821052%26ms%3Dau%26initcwndbps%3D242500%26signature%3D21A885328E05525D49E81BE8CD4D0806E96DE1CF.98C5C8438CC913C769A3381355F920EAA40B24EB%26upn%3D6Jx2CzfaB_U%26source%3Dyoutube%26pl%3D24%26id%3Do-AILTGQmmjnz7N83Gxmrj6xWG_7HcFfOjIvl7r5jb5FmQ%26mn%3Dsn-hp57knly%26mm%3D31%26itag%3D17%26lmt%3D1474565211348907%26requiressl%3Dyes%26ip%3D65.48.218.195%26key%3Dyt6%26mime%3Dvideo%252F3gpp%26sparams%3Ddur%252Cid%252Cinitcwndbps%252Cip%252Cipbits%252Citag%252Clmt%252Cmime%252Cmm%252Cmn%252Cms%252Cmv%252Cnh%252Cpl%252Crequiressl%252Csource%252Cupn%252Cexpire%26mv%3Dm%26nh%3DIgpwcjAyLm1pYTA0KgkxMjcuMC4wLjE%26mt%3D1476798643 - use_cipher_signature - False - video_id - CQY3KUR3VzM - video_verticals - [1048, 184] - view_count - 1486610 - vm - CAEQAA - vmap - <?xml version="1.0" encoding="UTF-8"?><vmap:VMAP xmlns:vmap="http://www.iab.net/videosuite/vmap" xmlns:yt="http://youtube.com" version="1.0"></vmap:VMAP> - watermark - ,https://s.ytimg.com/yts/img/watermark/youtube_watermark-vflHX6b6E.png,https://s.ytimg.com/yts/img/watermark/youtube_hd_watermark-vflAzLcD6.png - ypc_ad_indicator - 4 - - diff --git a/XCDYouTubeKit Tests/testInfo_undetermined_language_code.plist b/XCDYouTubeKit Tests/testInfo_undetermined_language_code.plist deleted file mode 100644 index f741f272b..000000000 --- a/XCDYouTubeKit Tests/testInfo_undetermined_language_code.plist +++ /dev/null @@ -1,172 +0,0 @@ - - - - - account_playback_token - QUFFLUhqbnc5UHR3bXFfQU90dTUyZGN0dEtWS0JPaUpqZ3xBQ3Jtc0tsbFgwb2tlQ0FMWlhhYjNhQ0kwNzF3S1lHUDNvbTdSWS11U09GTm1nSkpoZUVnY1ktejM0SDI1RDR1c2hxQU5PdnRNTlRaSTRudFRzaC02bWJkY2s4MW5URTNXRnNVbkRKYk9VN0ZETElRMDRjTEtlMA== - adaptive_fmts - url=https%3A%2F%2Fr1---sn-aphx-cbpe.googlevideo.com%2Fvideoplayback%3Fid%3Do-ANFjNPF7nCfMlIgCBQOFsQ-p7Watp3VlZr9sTe7rxsd0%26source%3Dyoutube%26dur%3D237.362%26ip%3D162.252.188.250%26keepalive%3Dyes%26lmt%3D1463797346842495%26itag%3D137%26requiressl%3Dyes%26sparams%3Dclen%252Cdur%252Cei%252Cgir%252Cid%252Cinitcwndbps%252Cip%252Cipbits%252Citag%252Ckeepalive%252Clmt%252Cmime%252Cmm%252Cmn%252Cms%252Cmv%252Cpl%252Crequiressl%252Csource%252Cupn%252Cexpire%26initcwndbps%3D562500%26ipbits%3D0%26expire%3D1478555392%26mime%3Dvideo%252Fmp4%26upn%3DycD_8OsgLHY%26gir%3Dyes%26mt%3D1478533567%26pl%3D26%26mv%3Dm%26ei%3DoKIgWM6eEovOWbnHq_gB%26ms%3Dau%26signature%3D6E2614216A4D41EA90BE8EFDEAD32F7AFE29B5EF.852042386A022A5206279F6BFFEC6DDE50B70FCD%26clen%3D55443685%26key%3Dyt6%26mm%3D31%26mn%3Dsn-aphx-cbpe&lmt=1463797346842495&type=video%2Fmp4%3B codecs%3D%22avc1.640028%22&projection_type=1&index=715-1286&itag=137&quality_label=1080p&bitrate=2678685&size=1920x1080&xtags=&init=0-714&clen=55443685&fps=24,url=https%3A%2F%2Fr1---sn-aphx-cbpe.googlevideo.com%2Fvideoplayback%3Fid%3Do-ANFjNPF7nCfMlIgCBQOFsQ-p7Watp3VlZr9sTe7rxsd0%26source%3Dyoutube%26dur%3D237.320%26ip%3D162.252.188.250%26keepalive%3Dyes%26lmt%3D1449572197116515%26itag%3D248%26requiressl%3Dyes%26sparams%3Dclen%252Cdur%252Cei%252Cgir%252Cid%252Cinitcwndbps%252Cip%252Cipbits%252Citag%252Ckeepalive%252Clmt%252Cmime%252Cmm%252Cmn%252Cms%252Cmv%252Cpl%252Crequiressl%252Csource%252Cupn%252Cexpire%26initcwndbps%3D562500%26ipbits%3D0%26expire%3D1478555392%26mime%3Dvideo%252Fwebm%26upn%3DycD_8OsgLHY%26gir%3Dyes%26mt%3D1478533567%26pl%3D26%26mv%3Dm%26ei%3DoKIgWM6eEovOWbnHq_gB%26ms%3Dau%26signature%3DD40176D4813E39B53312F34F7B02E6389AC890A6.B70CB3D9147957BC2A17DDEFFF6A3F3FBC1B99A1%26clen%3D44989679%26key%3Dyt6%26mm%3D31%26mn%3Dsn-aphx-cbpe&lmt=1449572197116515&type=video%2Fwebm%3B codecs%3D%22vp9%22&projection_type=1&index=243-1026&itag=248&quality_label=1080p&bitrate=2711902&size=1920x1080&xtags=&init=0-242&clen=44989679&fps=24,url=https%3A%2F%2Fr1---sn-aphx-cbpe.googlevideo.com%2Fvideoplayback%3Fid%3Do-ANFjNPF7nCfMlIgCBQOFsQ-p7Watp3VlZr9sTe7rxsd0%26source%3Dyoutube%26dur%3D237.362%26ip%3D162.252.188.250%26keepalive%3Dyes%26lmt%3D1463797732276608%26itag%3D136%26requiressl%3Dyes%26sparams%3Dclen%252Cdur%252Cei%252Cgir%252Cid%252Cinitcwndbps%252Cip%252Cipbits%252Citag%252Ckeepalive%252Clmt%252Cmime%252Cmm%252Cmn%252Cms%252Cmv%252Cpl%252Crequiressl%252Csource%252Cupn%252Cexpire%26initcwndbps%3D562500%26ipbits%3D0%26expire%3D1478555392%26mime%3Dvideo%252Fmp4%26upn%3DycD_8OsgLHY%26gir%3Dyes%26mt%3D1478533567%26pl%3D26%26mv%3Dm%26ei%3DoKIgWM6eEovOWbnHq_gB%26ms%3Dau%26signature%3D3BE998B8CE2BF6FC0DF58B5D6E0F8EEA1397CCDB.8B4DB66F5F2E484D96BA26645D4C2C44AC0DF08A%26clen%3D29250609%26key%3Dyt6%26mm%3D31%26mn%3Dsn-aphx-cbpe&lmt=1463797732276608&type=video%2Fmp4%3B codecs%3D%22avc1.4d401f%22&projection_type=1&index=713-1284&itag=136&quality_label=720p&bitrate=1410094&size=1280x720&xtags=&init=0-712&clen=29250609&fps=24,url=https%3A%2F%2Fr1---sn-aphx-cbpe.googlevideo.com%2Fvideoplayback%3Fid%3Do-ANFjNPF7nCfMlIgCBQOFsQ-p7Watp3VlZr9sTe7rxsd0%26source%3Dyoutube%26dur%3D237.320%26ip%3D162.252.188.250%26keepalive%3Dyes%26lmt%3D1449573017318199%26itag%3D247%26requiressl%3Dyes%26sparams%3Dclen%252Cdur%252Cei%252Cgir%252Cid%252Cinitcwndbps%252Cip%252Cipbits%252Citag%252Ckeepalive%252Clmt%252Cmime%252Cmm%252Cmn%252Cms%252Cmv%252Cpl%252Crequiressl%252Csource%252Cupn%252Cexpire%26initcwndbps%3D562500%26ipbits%3D0%26expire%3D1478555392%26mime%3Dvideo%252Fwebm%26upn%3DycD_8OsgLHY%26gir%3Dyes%26mt%3D1478533567%26pl%3D26%26mv%3Dm%26ei%3DoKIgWM6eEovOWbnHq_gB%26ms%3Dau%26signature%3D0403A9459767E1A1506A471F05ADEDF48D608F21.7730930F3AB92B1D8A04DF6CEAA8D966AA6695C8%26clen%3D23491746%26key%3Dyt6%26mm%3D31%26mn%3Dsn-aphx-cbpe&lmt=1449573017318199&type=video%2Fwebm%3B codecs%3D%22vp9%22&projection_type=1&index=243-1012&itag=247&quality_label=720p&bitrate=1363485&size=1280x720&xtags=&init=0-242&clen=23491746&fps=24,url=https%3A%2F%2Fr1---sn-aphx-cbpe.googlevideo.com%2Fvideoplayback%3Fid%3Do-ANFjNPF7nCfMlIgCBQOFsQ-p7Watp3VlZr9sTe7rxsd0%26source%3Dyoutube%26dur%3D237.362%26ip%3D162.252.188.250%26keepalive%3Dyes%26lmt%3D1463797731876530%26itag%3D135%26requiressl%3Dyes%26sparams%3Dclen%252Cdur%252Cei%252Cgir%252Cid%252Cinitcwndbps%252Cip%252Cipbits%252Citag%252Ckeepalive%252Clmt%252Cmime%252Cmm%252Cmn%252Cms%252Cmv%252Cpl%252Crequiressl%252Csource%252Cupn%252Cexpire%26initcwndbps%3D562500%26ipbits%3D0%26expire%3D1478555392%26mime%3Dvideo%252Fmp4%26upn%3DycD_8OsgLHY%26gir%3Dyes%26mt%3D1478533567%26pl%3D26%26mv%3Dm%26ei%3DoKIgWM6eEovOWbnHq_gB%26ms%3Dau%26signature%3D59763855B42DB2C2D9662BE7DA0C060AA13D46E1.64E370B27F25138D1497802231C26BA91FE038CF%26clen%3D15240890%26key%3Dyt6%26mm%3D31%26mn%3Dsn-aphx-cbpe&lmt=1463797731876530&type=video%2Fmp4%3B codecs%3D%22avc1.4d401e%22&projection_type=1&index=713-1284&itag=135&quality_label=480p&bitrate=771074&size=854x480&xtags=&init=0-712&clen=15240890&fps=24,url=https%3A%2F%2Fr1---sn-aphx-cbpe.googlevideo.com%2Fvideoplayback%3Fid%3Do-ANFjNPF7nCfMlIgCBQOFsQ-p7Watp3VlZr9sTe7rxsd0%26source%3Dyoutube%26dur%3D237.320%26ip%3D162.252.188.250%26keepalive%3Dyes%26lmt%3D1449573015368625%26itag%3D244%26requiressl%3Dyes%26sparams%3Dclen%252Cdur%252Cei%252Cgir%252Cid%252Cinitcwndbps%252Cip%252Cipbits%252Citag%252Ckeepalive%252Clmt%252Cmime%252Cmm%252Cmn%252Cms%252Cmv%252Cpl%252Crequiressl%252Csource%252Cupn%252Cexpire%26initcwndbps%3D562500%26ipbits%3D0%26expire%3D1478555392%26mime%3Dvideo%252Fwebm%26upn%3DycD_8OsgLHY%26gir%3Dyes%26mt%3D1478533567%26pl%3D26%26mv%3Dm%26ei%3DoKIgWM6eEovOWbnHq_gB%26ms%3Dau%26signature%3D241BE3A08B9DBF77CB58CB476F66F57FCF0A5D05.8FD283CB6739EB46F9A4CB147283E3DB167E5DD9%26clen%3D12473006%26key%3Dyt6%26mm%3D31%26mn%3Dsn-aphx-cbpe&lmt=1449573015368625&type=video%2Fwebm%3B codecs%3D%22vp9%22&projection_type=1&index=243-998&itag=244&quality_label=480p&bitrate=712638&size=854x480&xtags=&init=0-242&clen=12473006&fps=24,url=https%3A%2F%2Fr1---sn-aphx-cbpe.googlevideo.com%2Fvideoplayback%3Fid%3Do-ANFjNPF7nCfMlIgCBQOFsQ-p7Watp3VlZr9sTe7rxsd0%26source%3Dyoutube%26dur%3D237.362%26ip%3D162.252.188.250%26keepalive%3Dyes%26lmt%3D1463797731877388%26itag%3D134%26requiressl%3Dyes%26sparams%3Dclen%252Cdur%252Cei%252Cgir%252Cid%252Cinitcwndbps%252Cip%252Cipbits%252Citag%252Ckeepalive%252Clmt%252Cmime%252Cmm%252Cmn%252Cms%252Cmv%252Cpl%252Crequiressl%252Csource%252Cupn%252Cexpire%26initcwndbps%3D562500%26ipbits%3D0%26expire%3D1478555392%26mime%3Dvideo%252Fmp4%26upn%3DycD_8OsgLHY%26gir%3Dyes%26mt%3D1478533567%26pl%3D26%26mv%3Dm%26ei%3DoKIgWM6eEovOWbnHq_gB%26ms%3Dau%26signature%3D0F7BD452D01519007EC001FAABFDA0EE6ED25A54.54FC48A52286DFDCA95FF7AD8A3F5B0DCA80A6B8%26clen%3D7405303%26key%3Dyt6%26mm%3D31%26mn%3Dsn-aphx-cbpe&lmt=1463797731877388&type=video%2Fmp4%3B codecs%3D%22avc1.4d401e%22&projection_type=1&index=713-1284&itag=134&quality_label=360p&bitrate=375135&size=640x360&xtags=&init=0-712&clen=7405303&fps=24,url=https%3A%2F%2Fr1---sn-aphx-cbpe.googlevideo.com%2Fvideoplayback%3Fid%3Do-ANFjNPF7nCfMlIgCBQOFsQ-p7Watp3VlZr9sTe7rxsd0%26source%3Dyoutube%26dur%3D237.320%26ip%3D162.252.188.250%26keepalive%3Dyes%26lmt%3D1449573016016815%26itag%3D243%26requiressl%3Dyes%26sparams%3Dclen%252Cdur%252Cei%252Cgir%252Cid%252Cinitcwndbps%252Cip%252Cipbits%252Citag%252Ckeepalive%252Clmt%252Cmime%252Cmm%252Cmn%252Cms%252Cmv%252Cpl%252Crequiressl%252Csource%252Cupn%252Cexpire%26initcwndbps%3D562500%26ipbits%3D0%26expire%3D1478555392%26mime%3Dvideo%252Fwebm%26upn%3DycD_8OsgLHY%26gir%3Dyes%26mt%3D1478533567%26pl%3D26%26mv%3Dm%26ei%3DoKIgWM6eEovOWbnHq_gB%26ms%3Dau%26signature%3D667BFF0322715381483ED32630BE9A80C5FBC278.C5889A11B96D9B4EB1D2948B472F2F8AA08511EF%26clen%3D7721603%26key%3Dyt6%26mm%3D31%26mn%3Dsn-aphx-cbpe&lmt=1449573016016815&type=video%2Fwebm%3B codecs%3D%22vp9%22&projection_type=1&index=243-998&itag=243&quality_label=360p&bitrate=424293&size=640x360&xtags=&init=0-242&clen=7721603&fps=24,url=https%3A%2F%2Fr1---sn-aphx-cbpe.googlevideo.com%2Fvideoplayback%3Fid%3Do-ANFjNPF7nCfMlIgCBQOFsQ-p7Watp3VlZr9sTe7rxsd0%26source%3Dyoutube%26dur%3D237.362%26ip%3D162.252.188.250%26keepalive%3Dyes%26lmt%3D1463797731776519%26itag%3D133%26requiressl%3Dyes%26sparams%3Dclen%252Cdur%252Cei%252Cgir%252Cid%252Cinitcwndbps%252Cip%252Cipbits%252Citag%252Ckeepalive%252Clmt%252Cmime%252Cmm%252Cmn%252Cms%252Cmv%252Cpl%252Crequiressl%252Csource%252Cupn%252Cexpire%26initcwndbps%3D562500%26ipbits%3D0%26expire%3D1478555392%26mime%3Dvideo%252Fmp4%26upn%3DycD_8OsgLHY%26gir%3Dyes%26mt%3D1478533567%26pl%3D26%26mv%3Dm%26ei%3DoKIgWM6eEovOWbnHq_gB%26ms%3Dau%26signature%3D9E83C63DF86471FB974D7F2CB948C72F2DB0F4E4.864BF44FCA177B967FCC28D2D2CCFD13D911E54D%26clen%3D7198459%26key%3Dyt6%26mm%3D31%26mn%3Dsn-aphx-cbpe&lmt=1463797731776519&type=video%2Fmp4%3B codecs%3D%22avc1.4d4015%22&projection_type=1&index=713-1284&itag=133&quality_label=240p&bitrate=253425&size=426x240&xtags=&init=0-712&clen=7198459&fps=24,url=https%3A%2F%2Fr1---sn-aphx-cbpe.googlevideo.com%2Fvideoplayback%3Fid%3Do-ANFjNPF7nCfMlIgCBQOFsQ-p7Watp3VlZr9sTe7rxsd0%26source%3Dyoutube%26dur%3D237.320%26ip%3D162.252.188.250%26keepalive%3Dyes%26lmt%3D1449573015228252%26itag%3D242%26requiressl%3Dyes%26sparams%3Dclen%252Cdur%252Cei%252Cgir%252Cid%252Cinitcwndbps%252Cip%252Cipbits%252Citag%252Ckeepalive%252Clmt%252Cmime%252Cmm%252Cmn%252Cms%252Cmv%252Cpl%252Crequiressl%252Csource%252Cupn%252Cexpire%26initcwndbps%3D562500%26ipbits%3D0%26expire%3D1478555392%26mime%3Dvideo%252Fwebm%26upn%3DycD_8OsgLHY%26gir%3Dyes%26mt%3D1478533567%26pl%3D26%26mv%3Dm%26ei%3DoKIgWM6eEovOWbnHq_gB%26ms%3Dau%26signature%3D1EAE0C86ADF2CFA58BC943E5AE1EC7AFAAD33C49.6E6AF6D4778916F3C813038DB2FEBE58233C9502%26clen%3D4313145%26key%3Dyt6%26mm%3D31%26mn%3Dsn-aphx-cbpe&lmt=1449573015228252&type=video%2Fwebm%3B codecs%3D%22vp9%22&projection_type=1&index=242-996&itag=242&quality_label=240p&bitrate=235876&size=426x240&xtags=&init=0-241&clen=4313145&fps=24,url=https%3A%2F%2Fr1---sn-aphx-cbpe.googlevideo.com%2Fvideoplayback%3Fid%3Do-ANFjNPF7nCfMlIgCBQOFsQ-p7Watp3VlZr9sTe7rxsd0%26source%3Dyoutube%26dur%3D237.362%26ip%3D162.252.188.250%26keepalive%3Dyes%26lmt%3D1463797731677089%26itag%3D160%26requiressl%3Dyes%26sparams%3Dclen%252Cdur%252Cei%252Cgir%252Cid%252Cinitcwndbps%252Cip%252Cipbits%252Citag%252Ckeepalive%252Clmt%252Cmime%252Cmm%252Cmn%252Cms%252Cmv%252Cpl%252Crequiressl%252Csource%252Cupn%252Cexpire%26initcwndbps%3D562500%26ipbits%3D0%26expire%3D1478555392%26mime%3Dvideo%252Fmp4%26upn%3DycD_8OsgLHY%26gir%3Dyes%26mt%3D1478533567%26pl%3D26%26mv%3Dm%26ei%3DoKIgWM6eEovOWbnHq_gB%26ms%3Dau%26signature%3DA25F49EFF409D2D26ED3FB6894BB5FC4E7EABEF5.3B71B8971E88EC057A0EF9F570599760B3F046CD%26clen%3D3209820%26key%3Dyt6%26mm%3D31%26mn%3Dsn-aphx-cbpe&lmt=1463797731677089&type=video%2Fmp4%3B codecs%3D%22avc1.4d400c%22&projection_type=1&index=675-1246&itag=160&quality_label=144p&bitrate=112251&size=256x144&xtags=&init=0-674&clen=3209820&fps=24,url=https%3A%2F%2Fr1---sn-aphx-cbpe.googlevideo.com%2Fvideoplayback%3Fid%3Do-ANFjNPF7nCfMlIgCBQOFsQ-p7Watp3VlZr9sTe7rxsd0%26source%3Dyoutube%26dur%3D237.320%26ip%3D162.252.188.250%26keepalive%3Dyes%26lmt%3D1449573015099569%26itag%3D278%26requiressl%3Dyes%26sparams%3Dclen%252Cdur%252Cei%252Cgir%252Cid%252Cinitcwndbps%252Cip%252Cipbits%252Citag%252Ckeepalive%252Clmt%252Cmime%252Cmm%252Cmn%252Cms%252Cmv%252Cpl%252Crequiressl%252Csource%252Cupn%252Cexpire%26initcwndbps%3D562500%26ipbits%3D0%26expire%3D1478555392%26mime%3Dvideo%252Fwebm%26upn%3DycD_8OsgLHY%26gir%3Dyes%26mt%3D1478533567%26pl%3D26%26mv%3Dm%26ei%3DoKIgWM6eEovOWbnHq_gB%26ms%3Dau%26signature%3DAD84BCEBB9BE33B01DD8D1FE77C150B76E32164C.1DA4D9C07496F60DD7617100C4CFD318D3D28ADC%26clen%3D2606036%26key%3Dyt6%26mm%3D31%26mn%3Dsn-aphx-cbpe&lmt=1449573015099569&type=video%2Fwebm%3B codecs%3D%22vp9%22&projection_type=1&index=242-996&itag=278&quality_label=144p&bitrate=107014&size=256x144&xtags=&init=0-241&clen=2606036&fps=12,lmt=1463797288150330&url=https%3A%2F%2Fr1---sn-aphx-cbpe.googlevideo.com%2Fvideoplayback%3Fid%3Do-ANFjNPF7nCfMlIgCBQOFsQ-p7Watp3VlZr9sTe7rxsd0%26source%3Dyoutube%26dur%3D237.424%26ip%3D162.252.188.250%26keepalive%3Dyes%26lmt%3D1463797288150330%26itag%3D140%26requiressl%3Dyes%26sparams%3Dclen%252Cdur%252Cei%252Cgir%252Cid%252Cinitcwndbps%252Cip%252Cipbits%252Citag%252Ckeepalive%252Clmt%252Cmime%252Cmm%252Cmn%252Cms%252Cmv%252Cpl%252Crequiressl%252Csource%252Cupn%252Cexpire%26initcwndbps%3D562500%26ipbits%3D0%26expire%3D1478555392%26mime%3Daudio%252Fmp4%26upn%3DycD_8OsgLHY%26gir%3Dyes%26mt%3D1478533567%26pl%3D26%26mv%3Dm%26ei%3DoKIgWM6eEovOWbnHq_gB%26ms%3Dau%26signature%3D8B0B6ADAA01D5688F0BD6EB854391E44C0E21FEC.AA315A9E39D48ED47196194E3881FB5AE9E1B804%26clen%3D3771517%26key%3Dyt6%26mm%3D31%26mn%3Dsn-aphx-cbpe&projection_type=1&bitrate=128030&xtags=&index=592-911&init=0-591&clen=3771517&itag=140&type=audio%2Fmp4%3B codecs%3D%22mp4a.40.2%22,lmt=1449571952282400&url=https%3A%2F%2Fr1---sn-aphx-cbpe.googlevideo.com%2Fvideoplayback%3Fid%3Do-ANFjNPF7nCfMlIgCBQOFsQ-p7Watp3VlZr9sTe7rxsd0%26source%3Dyoutube%26dur%3D237.353%26ip%3D162.252.188.250%26keepalive%3Dyes%26lmt%3D1449571952282400%26itag%3D171%26requiressl%3Dyes%26sparams%3Dclen%252Cdur%252Cei%252Cgir%252Cid%252Cinitcwndbps%252Cip%252Cipbits%252Citag%252Ckeepalive%252Clmt%252Cmime%252Cmm%252Cmn%252Cms%252Cmv%252Cpl%252Crequiressl%252Csource%252Cupn%252Cexpire%26initcwndbps%3D562500%26ipbits%3D0%26expire%3D1478555392%26mime%3Daudio%252Fwebm%26upn%3DycD_8OsgLHY%26gir%3Dyes%26mt%3D1478533567%26pl%3D26%26mv%3Dm%26ei%3DoKIgWM6eEovOWbnHq_gB%26ms%3Dau%26signature%3D8EF4C60A4F7613DEDA12A8FAA4E00AF2B6150CD4.35FDB65ACCD6A1D7FA4B591CBEC61A44BE02C89E%26clen%3D3471225%26key%3Dyt6%26mm%3D31%26mn%3Dsn-aphx-cbpe&projection_type=1&bitrate=135626&xtags=&index=4452-4856&init=0-4451&clen=3471225&itag=171&type=audio%2Fwebm%3B codecs%3D%22vorbis%22,lmt=1449571952563494&url=https%3A%2F%2Fr1---sn-aphx-cbpe.googlevideo.com%2Fvideoplayback%3Fid%3Do-ANFjNPF7nCfMlIgCBQOFsQ-p7Watp3VlZr9sTe7rxsd0%26source%3Dyoutube%26dur%3D237.361%26ip%3D162.252.188.250%26keepalive%3Dyes%26lmt%3D1449571952563494%26itag%3D249%26requiressl%3Dyes%26sparams%3Dclen%252Cdur%252Cei%252Cgir%252Cid%252Cinitcwndbps%252Cip%252Cipbits%252Citag%252Ckeepalive%252Clmt%252Cmime%252Cmm%252Cmn%252Cms%252Cmv%252Cpl%252Crequiressl%252Csource%252Cupn%252Cexpire%26initcwndbps%3D562500%26ipbits%3D0%26expire%3D1478555392%26mime%3Daudio%252Fwebm%26upn%3DycD_8OsgLHY%26gir%3Dyes%26mt%3D1478533567%26pl%3D26%26mv%3Dm%26ei%3DoKIgWM6eEovOWbnHq_gB%26ms%3Dau%26signature%3D083A04A0E69E602677D84E5E2C05CF258CE25451.C624C0557A1B47DCF795BBBFACC0776696F00D3A%26clen%3D1501979%26key%3Dyt6%26mm%3D31%26mn%3Dsn-aphx-cbpe&projection_type=1&bitrate=56744&xtags=&index=272-676&init=0-271&clen=1501979&itag=249&type=audio%2Fwebm%3B codecs%3D%22opus%22,lmt=1449571951982951&url=https%3A%2F%2Fr1---sn-aphx-cbpe.googlevideo.com%2Fvideoplayback%3Fid%3Do-ANFjNPF7nCfMlIgCBQOFsQ-p7Watp3VlZr9sTe7rxsd0%26source%3Dyoutube%26dur%3D237.361%26ip%3D162.252.188.250%26keepalive%3Dyes%26lmt%3D1449571951982951%26itag%3D250%26requiressl%3Dyes%26sparams%3Dclen%252Cdur%252Cei%252Cgir%252Cid%252Cinitcwndbps%252Cip%252Cipbits%252Citag%252Ckeepalive%252Clmt%252Cmime%252Cmm%252Cmn%252Cms%252Cmv%252Cpl%252Crequiressl%252Csource%252Cupn%252Cexpire%26initcwndbps%3D562500%26ipbits%3D0%26expire%3D1478555392%26mime%3Daudio%252Fwebm%26upn%3DycD_8OsgLHY%26gir%3Dyes%26mt%3D1478533567%26pl%3D26%26mv%3Dm%26ei%3DoKIgWM6eEovOWbnHq_gB%26ms%3Dau%26signature%3D82DBF86592417BE71B5AD4D78AFEB180C0737BB9.B10A88EFB80AA9818C5245D543BD337C5E528913%26clen%3D2020148%26key%3Dyt6%26mm%3D31%26mn%3Dsn-aphx-cbpe&projection_type=1&bitrate=79280&xtags=&index=272-676&init=0-271&clen=2020148&itag=250&type=audio%2Fwebm%3B codecs%3D%22opus%22,lmt=1449571951932307&url=https%3A%2F%2Fr1---sn-aphx-cbpe.googlevideo.com%2Fvideoplayback%3Fid%3Do-ANFjNPF7nCfMlIgCBQOFsQ-p7Watp3VlZr9sTe7rxsd0%26source%3Dyoutube%26dur%3D237.361%26ip%3D162.252.188.250%26keepalive%3Dyes%26lmt%3D1449571951932307%26itag%3D251%26requiressl%3Dyes%26sparams%3Dclen%252Cdur%252Cei%252Cgir%252Cid%252Cinitcwndbps%252Cip%252Cipbits%252Citag%252Ckeepalive%252Clmt%252Cmime%252Cmm%252Cmn%252Cms%252Cmv%252Cpl%252Crequiressl%252Csource%252Cupn%252Cexpire%26initcwndbps%3D562500%26ipbits%3D0%26expire%3D1478555392%26mime%3Daudio%252Fwebm%26upn%3DycD_8OsgLHY%26gir%3Dyes%26mt%3D1478533567%26pl%3D26%26mv%3Dm%26ei%3DoKIgWM6eEovOWbnHq_gB%26ms%3Dau%26signature%3D668F47E92413A1721B8C6E6C9D87517C1D25E266.6DF9C4567731026CCB6B338AA87D982D7E24E70E%26clen%3D3910806%26key%3Dyt6%26mm%3D31%26mn%3Dsn-aphx-cbpe&projection_type=1&bitrate=149549&xtags=&index=272-676&init=0-271&clen=3910806&itag=251&type=audio%2Fwebm%3B codecs%3D%22opus%22 - allow_embed - 1 - allow_ratings - 1 - apiary_host - - apiary_host_firstparty - - atc - a=3&b=4i2hiAPl1rWUt_bUEDndmxV2tRI&c=1478533792&d=1&e=RgKAFK5djSk&c3a=28&c1a=1&c6a=1&hh=iqa3YOafKx6FjBxA00VA751t_Xw - author - Wiz Khalifa - avg_rating - 4.88266849518 - baseUrl - https://googleads.g.doubleclick.net/pagead/viewthroughconversion/962985656/ - c - WEB - caption_audio_tracks - i=0%2C1&d=0&v=0 - caption_tracks - t=1&v=.en&lc=en&u=https%3A%2F%2Fwww.youtube.com%2Fapi%2Ftimedtext%3Fsparams%3Dcaps%252Cv%252Cexpire%26signature%3DDBB11C47CC87EE0ACCF96D393546C0066AB9744C.C7B03DD9FCEF34E0A5F83676707C0C521545E96C%26hl%3Den_US%26expire%3D1478558992%26key%3Dyttt1%26v%3DRgKAFK5djSk%26caps%3D-lyr%26lang%3Den&n=English,t=1&v=.und&lc=und&u=https%3A%2F%2Fwww.youtube.com%2Fapi%2Ftimedtext%3Fsparams%3Dcaps%252Cv%252Cexpire%26signature%3DDBB11C47CC87EE0ACCF96D393546C0066AB9744C.C7B03DD9FCEF34E0A5F83676707C0C521545E96C%26hl%3Den_US%26expire%3D1478558992%26key%3Dyttt1%26v%3DRgKAFK5djSk%26caps%3D-lyr%26lang%3Dund&n=und - caption_translation_languages - lc=af&n=Afrikaans,lc=sq&n=Albanian,lc=am&n=Amharic,lc=ar&n=Arabic,lc=hy&n=Armenian,lc=az&n=Azerbaijani,lc=eu&n=Basque,lc=be&n=Belarusian,lc=bn&n=Bengali,lc=bs&n=Bosnian,lc=bg&n=Bulgarian,lc=my&n=Burmese,lc=ca&n=Catalan,lc=ceb&n=Cebuano,lc=zh-Hans&n=Chinese %28Simplified%29,lc=zh-Hant&n=Chinese %28Traditional%29,lc=co&n=Corsican,lc=hr&n=Croatian,lc=cs&n=Czech,lc=da&n=Danish,lc=nl&n=Dutch,lc=en&n=English,lc=eo&n=Esperanto,lc=et&n=Estonian,lc=fil&n=Filipino,lc=fi&n=Finnish,lc=fr&n=French,lc=gl&n=Galician,lc=ka&n=Georgian,lc=de&n=German,lc=el&n=Greek,lc=gu&n=Gujarati,lc=ht&n=Haitian Creole,lc=ha&n=Hausa,lc=haw&n=Hawaiian,lc=iw&n=Hebrew,lc=hi&n=Hindi,lc=hmn&n=Hmong,lc=hu&n=Hungarian,lc=is&n=Icelandic,lc=ig&n=Igbo,lc=id&n=Indonesian,lc=ga&n=Irish,lc=it&n=Italian,lc=ja&n=Japanese,lc=jv&n=Javanese,lc=kn&n=Kannada,lc=kk&n=Kazakh,lc=km&n=Khmer,lc=ko&n=Korean,lc=ku&n=Kurdish,lc=ky&n=Kyrgyz,lc=lo&n=Lao,lc=la&n=Latin,lc=lv&n=Latvian,lc=lt&n=Lithuanian,lc=lb&n=Luxembourgish,lc=mk&n=Macedonian,lc=mg&n=Malagasy,lc=ms&n=Malay,lc=ml&n=Malayalam,lc=mt&n=Maltese,lc=mi&n=Maori,lc=mr&n=Marathi,lc=mn&n=Mongolian,lc=ne&n=Nepali,lc=no&n=Norwegian,lc=ny&n=Nyanja,lc=ps&n=Pashto,lc=fa&n=Persian,lc=pl&n=Polish,lc=pt&n=Portuguese,lc=pa&n=Punjabi,lc=ro&n=Romanian,lc=ru&n=Russian,lc=sm&n=Samoan,lc=gd&n=Scottish Gaelic,lc=sr&n=Serbian,lc=sn&n=Shona,lc=sd&n=Sindhi,lc=si&n=Sinhala,lc=sk&n=Slovak,lc=sl&n=Slovenian,lc=so&n=Somali,lc=st&n=Southern Sotho,lc=es&n=Spanish,lc=su&n=Sundanese,lc=sw&n=Swahili,lc=sv&n=Swedish,lc=tg&n=Tajik,lc=ta&n=Tamil,lc=te&n=Telugu,lc=th&n=Thai,lc=tr&n=Turkish,lc=uk&n=Ukrainian,lc=ur&n=Urdu,lc=uz&n=Uzbek,lc=vi&n=Vietnamese,lc=cy&n=Welsh,lc=fy&n=Western Frisian,lc=xh&n=Xhosa,lc=yi&n=Yiddish,lc=yo&n=Yoruba,lc=zu&n=Zulu - cl - 137866120 - cr - US - csi_page_type - watch,watch7 - csn - oKIgWM6eEovOWbnHq_gB - cver - 1.20161101 - default_audio_track_index - 0 - enablecsi - 1 - eventid - oKIgWM6eEovOWbnHq_gB - fexp - 9407191,9422596,9428398,9429983,9431012,9433096,9433221,9433946,9434046,9434289,9435036,9435526,9439364,9439581,9440286,9442953,9443068,9445169,9446054,9446364,9446882,9447105,9447163,9448358,9449034,9451287,9451419,9452004,9452155,9452650 - fflags - html5_multicam=true&ios_enable_mixin_accessibility_custom_actions=true&enable_get_offers_for_item_list_for_get_cart=true&high_res_timestamps=true&html5_request_sizing_multiplier=0.8&enable_live_state_auth=true&ad_video_end_renderer_duration_milliseconds=7000&enable_playlist_multi_season=true&html5_ajax_qoe_retry=false&cards_drawer_auto_open_duration=-1&html5_max_buffer_health_for_downgrade=0&cards_drawer_auto_open_offset=-10000&lugash_header_warmup=true&ios_minimum_seconds_between_connectivity_gained_snackbars=300&yto_enable_watch_offer_module=true&mpu_visible_threshold_count=4&enable_offer_restricts_for_watch_page_offers=true&desktop_fsi_promo=style_masthead_ad&feeds_on_innertube=true&html5_connect_timeout_secs=7.0&enable_audio_cast=true&html5_retry_limit=4&enable_fmp4_defrag=true&html5_playing_event_buffer_underrun=true&html5_use_mediastream_timestamp=false&html5_min_buffer_to_resume=0&playlist_thumbnails_resizing=true&kids_enable_brazil_lp=true&use_new_skip_icon=true&kids_asset_theme=server_side_assets&playready_on_borg=true&yto_enable_ytr_promo_refresh_assets=true&yto_feature_hub_channel=false&launch_new_wallet_api=true&kids_enable_latam_lp=true&html5_throttle_rate=0.0&html5_retry_gvi_more=true&html5_repredict_interval_secs=0.0&html5_check_for_reseek=true&html5_bandwidth_window_size=0&log_it_display_tree=true&dynamic_ad_break_seek_threshold_sec=0&log_js_exceptions_fraction=0.20&sdk_wrapper_levels_allowed=0&yt_unlimited_pts_skip_ads_promo_desktop_always=true&disable_new_pause_state3=true&html5_request_size_min_secs=0.0&kids_enable_columbia_lp=true&legacy_autoplay_flag=true&html5_idle_preload_secs=1&cameo_live_chunk_readahead=3&live_chunk_readahead=3&html5_tight_max_buffer_allowed_impaired_time=0.0&html5_retry_media_element_errors=true&website_actions_throttle_percentage=1.0&product_listing_ads_cards_drawer_auto_open=true&enable_yt_music_lp=true&yto_enable_unlimited_landing_page_yto_features=true&html5_serverside_biscotti_id_wait_ms=1000&variable_load_timeout_ms=0&use_web_player_gestures=true&kids_enable_spain_lp=true&legacy_poster_behavior=true&tvhtml5_audio_starts_radio_station=true&fix_backfill_mpu_api_stats_ads=true&html5_suspend_manifest_on_pause=false&chrome_promo_enabled=true&html5_live_disable_dg_pacing=true&html5_max_buffer_duration=0&fix_vmap_afc_mpu_api_stats_ads=true&html5_allowable_liveness_drift_chunks=2&html5_deadzone_multiplier=1.0&legacy_control_redirecting=true&kids_enable_privacy_notice=true&html5_strip_emsg=true&lugash_header_by_service=true&native_controls_assume_media_volume=true&ios_minimum_seconds_between_connectivity_lost_snackbars=0&autoplay_time=10000&enable_mweb_ypc_promotion_renderer=true&flex_theater_mode=true&kids_enable_post_onboarding_red_flow=true&enable_mrm_channel_approve=true&fixed_padding_skip_button=true&kids_enable_server_side_assets=true&music_tastebuilder_p13n=true&html5_reseek_on_infinite_buffer=true&legacy_embed_snippet=true&html5_get_video_info_promiseajax=true&html5_tight_max_buffer_allowed_bandwidth_stddevs=0.0&html5_live_4k_more_buffer=true&legacy_cast2=true&sidebar_renderers=true&player_no_remote_modules=true&dynamic_ad_break_pause_threshold_sec=0&html5_background_quality_cap=360&html5_background_cap_idle_secs=60&html5_retry_media_element_errors_delay=0&html5_get_video_info_timeout_ms=0&new_ended_replay=true&ad_duration_threshold_for_showing_endcap_seconds=15 - fmt_list - 22/1280x720/9/0/115,43/640x360/99/0/0,18/640x360/9/0/115,36/320x180/99/1/0,17/176x144/99/1/0 - focEnabled - 1 - gapi_hint_params - m;/_/scs/abc-static/_/js/k=gapi.gapi.en.8KvJMpFyTwI.O/m=__features__/rt=j/d=1/rs=AHpOoo97bqw3j5jg4TkTecEOgY44B9P0Vg - hl - en_US - host_language - en - idpj - -6 - innertube_api_key - AIzaSyAO_FJ2SlqU8Q4STEHLGCilw_Y9_11qcW8 - innertube_api_version - v1 - innertube_context_client_version - 1.20161101 - is_listed - 1 - ismb - 4500000 - itct - - iurl - https://i.ytimg.com/vi/RgKAFK5djSk/hqdefault.jpg - iurlhq - https://i.ytimg.com/vi/RgKAFK5djSk/hqdefault.jpg - iurlmaxres - https://i.ytimg.com/vi/RgKAFK5djSk/maxresdefault.jpg - iurlmq - https://i.ytimg.com/vi/RgKAFK5djSk/hqdefault.jpg?custom=true&w=320&h=180&stc=true&jpg444=true&jpgq=90&sp=68&sigh=CV1o8icgSUeQJ1TzrSCxxK5oh3M - iurlsd - https://i.ytimg.com/vi/RgKAFK5djSk/sddefault.jpg - iv3_module - 1 - iv_invideo_url - https://www.youtube.com/annotations_invideo?cap_hist=1&video_id=RgKAFK5djSk&ei=oKIgWM6eEovOWbnHq_gB - iv_load_policy - 1 - iv_module - https://s.ytimg.com/yts/swfbin/player-vflndLRbA/iv_module.swf - keywords - Wiz Khalifa,Blacc Hollywood,Taylor Gang,Atlantic Records,hip hop,wiz,khalifa,Pittsburgh,Los Angeles,taylorgangent,TGOD,taylor gang or die,Furious 7,paul walker,paul walker tribute,See You Again (Composition),Fast & Furious 6 (Award-Winning Work),See you again,vin diesel,Michelle Rodriguez (Celebrity),charlie puth,GRAMMYS - ldpj - -24 - length_seconds - 237 - loudness - -17.388999939 - no_get_video_log - 1 - of - luRDWgiwKvGb2EhpAX5sYw - oid - YbGWGCIUCoaUePqGy_acMw - player_error_log_fraction - 1.0 - plid - AAVAt_l79w0Olx1X - pltype - content - ppv_remarketing_url - https://www.googleadservices.com/pagead/conversion/971134070/?backend=innertube&cname=1&cver=1_20161101&data=backend%3Dinnertube%3Bcname%3D1%3Bcver%3D1_20161101%3Bdactive%3DNone%3Bdynx_itemid%3DRgKAFK5djSk%3Bptype%3Dppv&label=iuZUCLmC72YQ9qiJzwM&ptype=ppv - probe_url - https://r14---sn-c0q7lnl7.googlevideo.com/videogoodput?id=o-AKOAqEufeH74gc6-CeBDkmffO9IQbsNjnk66Nc7uIL6U&source=goodput&range=0-4999&expire=1478537392&ip=162.252.188.250&ms=pm&mm=35&pl=24&nh=IgpwcjAyLmJ1ZDAyKgw3Mi4xNC4yMTAuNzE&sparams=id,source,range,expire,ip,ms,mm,pl,nh&signature=46CC40150927473EAE3CD13B78800094DA2D02B6.7ECFD027AB36239814133D242225C0D00E59D1F8&key=cms1 - ptchn - Vp3nfGRxmMadNDuVbJSk8A - ptk - WMG - pyv_ad_channel - - remarketing_url - https://googleads.g.doubleclick.net/pagead/viewthroughconversion/962985656/?backend=innertube&cname=1&cver=1_20161101&data=backend%3Dinnertube%3Bcname%3D1%3Bcver%3D1_20161101%3Bm%3D1%3Bptype%3Dview%3Bsrr%3Dn%3Btype%3Dview%3Butuid%3DVp3nfGRxmMadNDuVbJSk8A%3Butvid%3DRgKAFK5djSk%3Bw%3D1&foc_id=Vp3nfGRxmMadNDuVbJSk8A&label=followon_view&ptype=view&srr=n - rmktEnabled - 1 - root_ve_type - 14057 - rvs - short_view_count_text=1.5B views&length_seconds=302&endscreen_autoplay_session_data=feature%3Drelated-auto%26playnext%3D0%26autonav%3D1&author=Maroon5VEVO&id=09R8_2nJtjg&title=Maroon 5 - Sugar&session_data=itct%3DMgllbmRzY3JlZW5IqZr28sqCoIFG,short_view_count_text=1.5B views&length_seconds=302&author=Maroon5VEVO&id=09R8_2nJtjg&title=Maroon 5 - Sugar&session_data=itct%3DMgllbmRzY3JlZW5IqZr28sqCoIFG,playlist_iurlmq=%2F%2Fi.ytimg.com%2Fvi%2FRgKAFK5djSk%2Fmqdefault.jpg&video_id=09R8_2nJtjg&list=RDRgKAFK5djSk&session_data=itct%3DMgllbmRzY3JlZW5IqZr28sqCoIFG&playlist_iurlhq=%2F%2Fi.ytimg.com%2Fvi%2FRgKAFK5djSk%2Fhqdefault.jpg&playlist_title=Wiz Khalifa - See You Again ft. Charlie Puth %5BOfficial Video%5D Furious 7 Soundtrack&thumbnail_ids=09R8_2nJtjg&playlist_length=0,short_view_count_text=1.3B views&length_seconds=250&author=EllieGouldingVEVO&id=AJtDXIazrMo&title=Ellie Goulding - Love Me Like You Do %28Official Video%29&session_data=itct%3DMgllbmRzY3JlZW5IqZr28sqCoIFG,short_view_count_text=648M views&length_seconds=190&author=Ultra Music&id=jGflUbPQfW8&title=OMI - Cheerleader %28Felix Jaehn Remix%29 %5BOfficial Video%5D&session_data=itct%3DMgllbmRzY3JlZW5IqZr28sqCoIFG,short_view_count_text=1B views&length_seconds=203&author=SilentoVEVO&id=vjW8wmF5VWc&title=Silent%C3%B3 - Watch Me %28Whip%2FNae Nae%29 %28Official%29&session_data=itct%3DMgllbmRzY3JlZW5IqZr28sqCoIFG,short_view_count_text=1.7B views&length_seconds=367&author=AdeleVEVO&id=YQHsXMglC9A&title=Adele - Hello&session_data=itct%3DMgllbmRzY3JlZW5IqZr28sqCoIFG,short_view_count_text=1.8B views&length_seconds=273&author=TaylorSwiftVEVO&id=e-ORhEE9VVg&title=Taylor Swift - Blank Space&session_data=itct%3DMgllbmRzY3JlZW5IqZr28sqCoIFG,short_view_count_text=1.9B views&length_seconds=271&author=MarkRonsonVEVO&id=OPf0YbXqDm0&title=Mark Ronson - Uptown Funk ft. Bruno Mars&session_data=itct%3DMgllbmRzY3JlZW5IqZr28sqCoIFG,short_view_count_text=1.3B views&length_seconds=297&author=Ed Sheeran&id=lp-EO5I60KA&title=Ed Sheeran - Thinking Out Loud %5BOfficial Video%5D&session_data=itct%3DMgllbmRzY3JlZW5IqZr28sqCoIFG,short_view_count_text=762M views&length_seconds=252&author=Jack %C3%9C&id=nntGTK2Fhb0&title=Skrillex and Diplo - %22Where Are %C3%9C Now%22 with Justin Bieber %28Official Video%29&session_data=itct%3DMgllbmRzY3JlZW5IqZr28sqCoIFG,short_view_count_text=25M views&length_seconds=325&author=Uosof ahmadi&id=qAfzDsZCK2c&title=See You Again - Emotional Tribute To Paul Walker %28HD%29&session_data=itct%3DMgllbmRzY3JlZW5IqZr28sqCoIFG - show_pyv_in_related - False - ssl - 1 - status - ok - t - 1 - thumbnail_url - https://i.ytimg.com/vi/RgKAFK5djSk/default.jpg - timestamp - 1478533792 - title - Wiz Khalifa - See You Again ft. Charlie Puth [Official Video] Furious 7 Soundtrack - tmi - 1 - token - 1 - ucid - UCVp3nfGRxmMadNDuVbJSk8A - uid - Vp3nfGRxmMadNDuVbJSk8A - url_encoded_fmt_stream_map - url=https%3A%2F%2Fr1---sn-aphx-cbpe.googlevideo.com%2Fvideoplayback%3Fid%3Do-ANFjNPF7nCfMlIgCBQOFsQ-p7Watp3VlZr9sTe7rxsd0%26source%3Dyoutube%26dur%3D237.424%26ip%3D162.252.188.250%26lmt%3D1472950105325211%26itag%3D22%26requiressl%3Dyes%26mime%3Dvideo%252Fmp4%26initcwndbps%3D562500%26ratebypass%3Dyes%26ipbits%3D0%26expire%3D1478555392%26sparams%3Ddur%252Cei%252Cid%252Cinitcwndbps%252Cip%252Cipbits%252Citag%252Clmt%252Cmime%252Cmm%252Cmn%252Cms%252Cmv%252Cpl%252Cratebypass%252Crequiressl%252Csource%252Cupn%252Cexpire%26upn%3DycD_8OsgLHY%26mt%3D1478533567%26pl%3D26%26mv%3Dm%26ei%3DoKIgWM6eEovOWbnHq_gB%26ms%3Dau%26signature%3D956D0B096DA59E3D1DDB526742873DED214688FC.8F95ECD4D1EB39EA70B26422243B6FB9C847E553%26key%3Dyt6%26mm%3D31%26mn%3Dsn-aphx-cbpe&type=video%2Fmp4%3B codecs%3D%22avc1.64001F%2C mp4a.40.2%22&itag=22&quality=hd720,url=https%3A%2F%2Fr1---sn-aphx-cbpe.googlevideo.com%2Fvideoplayback%3Fid%3Do-ANFjNPF7nCfMlIgCBQOFsQ-p7Watp3VlZr9sTe7rxsd0%26source%3Dyoutube%26dur%3D0.000%26ip%3D162.252.188.250%26lmt%3D1428274110763456%26itag%3D43%26requiressl%3Dyes%26sparams%3Dclen%252Cdur%252Cei%252Cgir%252Cid%252Cinitcwndbps%252Cip%252Cipbits%252Citag%252Clmt%252Cmime%252Cmm%252Cmn%252Cms%252Cmv%252Cpl%252Cratebypass%252Crequiressl%252Csource%252Cupn%252Cexpire%26initcwndbps%3D562500%26ratebypass%3Dyes%26ipbits%3D0%26expire%3D1478555392%26mime%3Dvideo%252Fwebm%26upn%3DycD_8OsgLHY%26gir%3Dyes%26mt%3D1478533567%26pl%3D26%26mv%3Dm%26ei%3DoKIgWM6eEovOWbnHq_gB%26ms%3Dau%26signature%3D33716C0F8946DCA35263C3CC698AFEFB75AA0B14.67E4DA02647FA9D1EE1BB095D520448C8E12FC%26clen%3D18764299%26key%3Dyt6%26mm%3D31%26mn%3Dsn-aphx-cbpe&type=video%2Fwebm%3B codecs%3D%22vp8.0%2C vorbis%22&itag=43&quality=medium,url=https%3A%2F%2Fr1---sn-aphx-cbpe.googlevideo.com%2Fvideoplayback%3Fid%3Do-ANFjNPF7nCfMlIgCBQOFsQ-p7Watp3VlZr9sTe7rxsd0%26source%3Dyoutube%26dur%3D237.424%26ip%3D162.252.188.250%26lmt%3D1463797333620847%26itag%3D18%26requiressl%3Dyes%26sparams%3Dclen%252Cdur%252Cei%252Cgir%252Cid%252Cinitcwndbps%252Cip%252Cipbits%252Citag%252Clmt%252Cmime%252Cmm%252Cmn%252Cms%252Cmv%252Cpl%252Cratebypass%252Crequiressl%252Csource%252Cupn%252Cexpire%26initcwndbps%3D562500%26ratebypass%3Dyes%26ipbits%3D0%26expire%3D1478555392%26mime%3Dvideo%252Fmp4%26upn%3DycD_8OsgLHY%26gir%3Dyes%26mt%3D1478533567%26pl%3D26%26mv%3Dm%26ei%3DoKIgWM6eEovOWbnHq_gB%26ms%3Dau%26signature%3D398B6ADE7CC959622AF85F8FEB4967F99F36F394.C978A2F7E68AB98DF51FF4E625FF8AA21D60159B%26clen%3D13672571%26key%3Dyt6%26mm%3D31%26mn%3Dsn-aphx-cbpe&type=video%2Fmp4%3B codecs%3D%22avc1.42001E%2C mp4a.40.2%22&itag=18&quality=medium,url=https%3A%2F%2Fr1---sn-aphx-cbpe.googlevideo.com%2Fvideoplayback%3Fid%3Do-ANFjNPF7nCfMlIgCBQOFsQ-p7Watp3VlZr9sTe7rxsd0%26source%3Dyoutube%26dur%3D237.540%26ip%3D162.252.188.250%26lmt%3D1428273517937613%26itag%3D36%26requiressl%3Dyes%26sparams%3Dclen%252Cdur%252Cei%252Cgir%252Cid%252Cinitcwndbps%252Cip%252Cipbits%252Citag%252Clmt%252Cmime%252Cmm%252Cmn%252Cms%252Cmv%252Cpl%252Crequiressl%252Csource%252Cupn%252Cexpire%26initcwndbps%3D562500%26ipbits%3D0%26expire%3D1478555392%26mime%3Dvideo%252F3gpp%26upn%3DycD_8OsgLHY%26gir%3Dyes%26mt%3D1478533567%26pl%3D26%26mv%3Dm%26ei%3DoKIgWM6eEovOWbnHq_gB%26ms%3Dau%26signature%3D1CADEC1812B661EF8123A95C316B882B0AC2902B.A55268A7E31B63F57DF17663949C5B5956DD6792%26clen%3D6794321%26key%3Dyt6%26mm%3D31%26mn%3Dsn-aphx-cbpe&type=video%2F3gpp%3B codecs%3D%22mp4v.20.3%2C mp4a.40.2%22&itag=36&quality=small,url=https%3A%2F%2Fr1---sn-aphx-cbpe.googlevideo.com%2Fvideoplayback%3Fid%3Do-ANFjNPF7nCfMlIgCBQOFsQ-p7Watp3VlZr9sTe7rxsd0%26source%3Dyoutube%26dur%3D237.540%26ip%3D162.252.188.250%26lmt%3D1428273497121377%26itag%3D17%26requiressl%3Dyes%26sparams%3Dclen%252Cdur%252Cei%252Cgir%252Cid%252Cinitcwndbps%252Cip%252Cipbits%252Citag%252Clmt%252Cmime%252Cmm%252Cmn%252Cms%252Cmv%252Cpl%252Crequiressl%252Csource%252Cupn%252Cexpire%26initcwndbps%3D562500%26ipbits%3D0%26expire%3D1478555392%26mime%3Dvideo%252F3gpp%26upn%3DycD_8OsgLHY%26gir%3Dyes%26mt%3D1478533567%26pl%3D26%26mv%3Dm%26ei%3DoKIgWM6eEovOWbnHq_gB%26ms%3Dau%26signature%3D2CC8287EACD1870E9E79C88A2E5230A70272CA53.69DF8514E7A3884492C7AB046FE52775C4280B5F%26clen%3D2463641%26key%3Dyt6%26mm%3D31%26mn%3Dsn-aphx-cbpe&type=video%2F3gpp%3B codecs%3D%22mp4v.20.3%2C mp4a.40.2%22&itag=17&quality=small - vid - RgKAFK5djSk - video_id - RgKAFK5djSk - videostats_playback_base_url - https://s.youtube.com/api/stats/playback?el=detailpage&fexp=9407191%2C9422596%2C9428398%2C9429983%2C9431012%2C9433096%2C9433221%2C9433946%2C9434046%2C9434289%2C9435036%2C9435526%2C9439364%2C9439581%2C9440286%2C9442953%2C9443068%2C9445169%2C9446054%2C9446364%2C9446882%2C9447105%2C9447163%2C9448358%2C9449034%2C9451287%2C9451419%2C9452004%2C9452155%2C9452650&ei=oKIgWM6eEovOWbnHq_gB&docid=RgKAFK5djSk&len=238&cl=137866120&ns=yt&of=luRDWgiwKvGb2EhpAX5sYw&plid=AAVAt_l79w0Olx1X&vm=CAIQAA - view_count - 2162393233 - vm - CAIQAA - vmap - <?xml version="1.0" encoding="UTF-8"?><vmap:VMAP xmlns:vmap="http://www.iab.net/videosuite/vmap" xmlns:yt="http://youtube.com" version="1.0"></vmap:VMAP> - watermark - ,https://s.ytimg.com/yts/img/watermark/youtube_watermark-vflHX6b6E.png,https://s.ytimg.com/yts/img/watermark/youtube_hd_watermark-vflAzLcD6.png - - diff --git a/XCDYouTubeKit.xcodeproj/project.pbxproj b/XCDYouTubeKit.xcodeproj/project.pbxproj index 09440a81a..7cbc27e61 100644 --- a/XCDYouTubeKit.xcodeproj/project.pbxproj +++ b/XCDYouTubeKit.xcodeproj/project.pbxproj @@ -7,8 +7,6 @@ objects = { /* Begin PBXBuildFile section */ - 0116F7C91DB663A00031004C /* testInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 0116F7C81DB663A00031004C /* testInfo.plist */; }; - 019FEEFC1DD0E47000D40F64 /* testInfo_undetermined_language_code.plist in Resources */ = {isa = PBXBuildFile; fileRef = 019FEEFB1DD0E47000D40F64 /* testInfo_undetermined_language_code.plist */; }; C20F57A818817D5400EDBFB0 /* XCDYouTubeClientTestCase.m in Sources */ = {isa = PBXBuildFile; fileRef = C20F57A718817D5400EDBFB0 /* XCDYouTubeClientTestCase.m */; }; C2142F2A19644779000FA9C0 /* XCDYouTubeKit.h in Headers */ = {isa = PBXBuildFile; fileRef = C2D0CBAC19122A8F00DA8CD4 /* XCDYouTubeKit.h */; settings = {ATTRIBUTES = (Public, ); }; }; C215BEB91BE2E5B500F9783B /* XCDYouTubeVideoWebpage.h in Headers */ = {isa = PBXBuildFile; fileRef = C2386B1C1974036300646123 /* XCDYouTubeVideoWebpage.h */; }; @@ -96,8 +94,6 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ - 0116F7C81DB663A00031004C /* testInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = testInfo.plist; sourceTree = ""; }; - 019FEEFB1DD0E47000D40F64 /* testInfo_undetermined_language_code.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = testInfo_undetermined_language_code.plist; sourceTree = ""; }; C20F579B18817D5400EDBFB0 /* XCDYouTubeKit.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = XCDYouTubeKit.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; C20F57A718817D5400EDBFB0 /* XCDYouTubeClientTestCase.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XCDYouTubeClientTestCase.m; sourceTree = ""; }; C22263371B33FDE000BA6719 /* XCTestWorkarounds.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XCTestWorkarounds.m; sourceTree = ""; }; @@ -168,8 +164,6 @@ C20F57A118817D5400EDBFB0 /* XCDYouTubeKit Tests */ = { isa = PBXGroup; children = ( - 0116F7C81DB663A00031004C /* testInfo.plist */, - 019FEEFB1DD0E47000D40F64 /* testInfo_undetermined_language_code.plist */, C2D0CC5C19126E1200DA8CD4 /* Cassettes */, C2D0CC3A1912673500DA8CD4 /* VCRURLConnection */, C20F57A718817D5400EDBFB0 /* XCDYouTubeClientTestCase.m */, @@ -384,9 +378,7 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - 0116F7C91DB663A00031004C /* testInfo.plist in Resources */, C2D0CC5D19126E1200DA8CD4 /* Cassettes in Resources */, - 019FEEFC1DD0E47000D40F64 /* testInfo_undetermined_language_code.plist in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; From 34ded3985b9d536dadb20a17568bb9522d7c3630 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sone=C3=A9=20John?= Date: Thu, 29 Jun 2017 13:50:12 -0400 Subject: [PATCH 12/52] Adaptation to YouTube caption change --- XCDYouTubeKit/XCDYouTubeVideo+Private.h | 1 + XCDYouTubeKit/XCDYouTubeVideo.m | 46 ++++++++++++++++++------- 2 files changed, 34 insertions(+), 13 deletions(-) diff --git a/XCDYouTubeKit/XCDYouTubeVideo+Private.h b/XCDYouTubeKit/XCDYouTubeVideo+Private.h index 3b50ea3c8..79997dda9 100644 --- a/XCDYouTubeKit/XCDYouTubeVideo+Private.h +++ b/XCDYouTubeKit/XCDYouTubeVideo+Private.h @@ -12,6 +12,7 @@ extern NSString *const XCDYouTubeNoStreamVideoUserInfoKey; extern NSDictionary *XCDDictionaryWithQueryString(NSString *string); extern NSString *XCDQueryStringWithDictionary(NSDictionary *dictionary); +extern NSArray *XCDCaptionArrayWithString(NSString *string); @interface XCDYouTubeVideo () diff --git a/XCDYouTubeKit/XCDYouTubeVideo.m b/XCDYouTubeKit/XCDYouTubeVideo.m index ae9f5c588..5d0625dcd 100644 --- a/XCDYouTubeKit/XCDYouTubeVideo.m +++ b/XCDYouTubeKit/XCDYouTubeVideo.m @@ -14,6 +14,23 @@ NSString *const XCDYouTubeNoStreamVideoUserInfoKey = @"NoStreamVideo"; NSString *const XCDYouTubeVideoQualityHTTPLiveStreaming = @"HTTPLiveStreaming"; +NSArray *XCDCaptionArrayWithString(NSString *string) +{ + NSError *error = nil; + NSData *data = [string dataUsingEncoding:NSUTF8StringEncoding]; + if (!data) { return nil; } + NSDictionary *JSON = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:&error]; + + if (error) { return nil; } + + NSDictionary *captions = JSON[@"captions"]; + NSDictionary *playerCaptionsTracklistRenderer = captions[@"playerCaptionsTracklistRenderer"]; + NSArray *captionTracks = playerCaptionsTracklistRenderer[@"captionTracks"]; + + if (captionTracks.count == 0 || captionTracks == nil) { return nil; } + return captionTracks; +} + NSDictionary *XCDDictionaryWithQueryString(NSString *string) { NSMutableDictionary *dictionary = [NSMutableDictionary new]; @@ -103,7 +120,7 @@ - (instancetype) initWithIdentifier:(NSString *)identifier info:(NSDictionary *) _identifier = identifier; NSString *streamMap = info[@"url_encoded_fmt_stream_map"]; - NSString *captionsMap = info[@"caption_tracks"]; + NSString *captionsMap = info[@"player_response"]; NSString *httpLiveStream = info[@"hlsvp"]; NSString *adaptiveFormats = info[@"adaptive_fmts"]; @@ -113,8 +130,6 @@ - (instancetype) initWithIdentifier:(NSString *)identifier info:(NSDictionary *) { NSMutableArray *streamQueries = [[streamMap componentsSeparatedByString:@","] mutableCopy]; [streamQueries addObjectsFromArray:[adaptiveFormats componentsSeparatedByString:@","]]; - NSMutableArray *captionQueries = [[captionsMap componentsSeparatedByString:@","]mutableCopy]; - NSString *title = info[@"title"] ?: @""; _title = title; @@ -137,27 +152,32 @@ - (instancetype) initWithIdentifier:(NSString *)identifier info:(NSDictionary *) NSMutableDictionary *autoGeneratedCaptionURLs = [NSMutableDictionary new]; - for (NSString *captionQuery in captionQueries) { + for (NSDictionary *caption in XCDCaptionArrayWithString(captionsMap)) { - NSDictionary *captionStream = XCDDictionaryWithQueryString(captionQuery); - NSString *languageCode = captionStream[@"lc"]; - NSString *captionURLString = captionStream[@"u"]; - NSString *captionVersion = captionStream[@"v"]; - if (captionURLString && languageCode) + NSString *languageCode = caption[@"languageCode"]; + NSString *captionVersion = caption[@"vssId"]; + NSString *captionURLString = caption[@"baseUrl"]; + if (!captionURLString) { + continue; + } + NSURL *captionURL = [NSURL URLWithString:captionURLString]; + + if (captionURL && languageCode) { + if ([languageCode isEqualToString:@"und"]) { //Skip because this is a special code than is used to indicate that the lanauage code is undetermined. continue; } if([captionVersion hasPrefix:@"a"]) { //Indicates the caption was auto generated - autoGeneratedCaptionURLs[languageCode] = [NSURL URLWithString:captionURLString]; + autoGeneratedCaptionURLs[languageCode] = captionURL; } else { - - captionURLs[languageCode] = [NSURL URLWithString:captionURLString]; - + + captionURLs[languageCode] = captionURL; + } } From a0237f46081fe41920e65e22ddb6469c762ce71e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sone=C3=A9=20John?= Date: Thu, 29 Jun 2017 13:54:40 -0400 Subject: [PATCH 13/52] Update caption test replay file --- .../testVideoThatHasCaptions.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/XCDYouTubeKit Tests/Cassettes/XCDYouTubeClientTestCase/testVideoThatHasCaptions.json b/XCDYouTubeKit Tests/Cassettes/XCDYouTubeClientTestCase/testVideoThatHasCaptions.json index 7f7e75210..235fe1338 100644 --- a/XCDYouTubeKit Tests/Cassettes/XCDYouTubeClientTestCase/testVideoThatHasCaptions.json +++ b/XCDYouTubeKit Tests/Cassettes/XCDYouTubeClientTestCase/testVideoThatHasCaptions.json @@ -1,18 +1,18 @@ [ { - "body" : "atc=a%3D3%26b%3DeeTA-CXgnf1roK5lqGVn7I_m5nc%26c%3D1480947827%26d%3D1%26e%3DQ6dsRpVyyWs%26c3a%3D26%26hh%3DcfMvqU7QwbZSdO0MmBC_Uw8KDNw&dashmpd=https%3A%2F%2Fmanifest.googlevideo.com%2Fapi%2Fmanifest%2Fdash%2Fexpire%2F1480969427%2Finitcwndbps%2F167500%2Fas%2Ffmp4_audio_clear%252Cwebm_audio_clear%252Cwebm2_audio_clear%252Cfmp4_sd_hd_clear%252Cwebm2_sd_hd_clear%2Fkey%2Fyt6%2Fsource%2Fyoutube%2Fsignature%2FC153D85FD4A1FEFC661D08A973E7985F442BB11F.CAEF900E6A2F6184BCC600494D933CFDB4D9A563%2Fupn%2FJfH_6KE_NJY%2Fnh%2FIgpwcjAzLm1pYTA0Kgw2My4yNDUuMy4xNjk%2Fitag%2F0%2Fipbits%2F0%2Fhfr%2F1%2Fplayback_host%2Fr20---sn-hp57knsd.googlevideo.com%2Fsparams%2Fas%252Chfr%252Cid%252Cinitcwndbps%252Cip%252Cipbits%252Citag%252Cmm%252Cmn%252Cms%252Cmv%252Cnh%252Cpl%252Cplayback_host%252Crequiressl%252Csource%252Cexpire%2Fmm%2F31%2Fip%2F209.59.90.242%2Fmn%2Fsn-hp57knsd%2Fid%2Fo-ACv4XPO0-_wcP0GpG5BLIQrZaFiqQmRoQxYs4fhaznIo%2Fms%2Fau%2Frequiressl%2Fyes%2Fmt%2F1480947656%2Fpl%2F24%2Fmv%2Fm&probe_url=https%3A%2F%2Fr7---sn-4g57kned.googlevideo.com%2Fvideogoodput%3Fid%3Do-AL1yURDRQ3B6pAECurQUtWzUHRCdBoTM5uJ3rzS3VDWU%26source%3Dgoodput%26range%3D0-4999%26expire%3D1480951426%26ip%3D209.59.90.242%26ms%3Dpm%26mm%3D35%26pl%3D24%26nh%3DIgpwcjA1LmZyYTE1KgkxMjcuMC4wLjE%26sparams%3Did%2Csource%2Crange%2Cexpire%2Cip%2Cms%2Cmm%2Cpl%2Cnh%26signature%3D775CAD83E2B55084C7498DFBE5BC5DCC4CD60D54.4A8518F60791DC0E9C4DD49B4AC505310BC148D5%26key%3Dcms1&ypc_ad_indicator=4&ucid=UCE_M8A5yxnLfW0KghEeajjw&storyboard_spec=https%3A%2F%2Fi.ytimg.com%2Fsb%2FQ6dsRpVyyWs%2Fstoryboard3_L%24L%2F%24N.jpg%7C48%2327%23100%2310%2310%230%23default%23Rkk6SmZ-8HKjZExmxiwe-vxtRLI%7C80%2345%2370%2310%2310%232000%23M%24M%236C--c1JM6b_CmETZU9uQuZjqcY8%7C160%2390%2370%235%235%232000%23M%24M%230ueRrvrqEgJJo4enxXBTz0bJAm0&iurlmaxres=https%3A%2F%2Fi.ytimg.com%2Fvi%2FQ6dsRpVyyWs%2Fmaxresdefault.jpg&oid=ffsQQyXI443h2PgMzMjp-g&cver=1.20161130&no_get_video_log=1&tmi=1&avg_rating=4.07910484357&plid=AAVC6gkpEKMVXxjP&keywords=Apple&idpj=-2&c=WEB&enablecsi=1&remarketing_url=https%3A%2F%2Fgoogleads.g.doubleclick.net%2Fpagead%2Fviewthroughconversion%2F962985656%2F%3Fbackend%3Dplayer_vars%26cname%3D1%26cver%3DAS3%26foc_id%3DE_M8A5yxnLfW0KghEeajjw%26label%3Dfollowon_view%26ptype%3Dno_rmkt%26srr%3Dn&account_playback_token=QUFFLUhqblhVVkFiMDlZYlFCN1RpUVl6VExXcVE2S1diUXxBQ3Jtc0ttQ1AwamtzOGNzTmpiS19XMHZnQUpvMmFza2tnVlFJUWVOdzduVXZEUUxIOHZ5cWJBalY2eUp3dnlrTUJWVVYzYWlJd3BkYkthdHpaRG4xV2FRTnd4ak9LcmtyaFJYWFRfQU12RkhZV25qWGM1V2ZLbw%3D%3D&iv3_module=1&iurlhq=https%3A%2F%2Fi.ytimg.com%2Fvi%2FQ6dsRpVyyWs%2Fhqdefault.jpg&iurlhq720=https%3A%2F%2Fi.ytimg.com%2Fvi%2FQ6dsRpVyyWs%2Fhq720.jpg&iurlsd=https%3A%2F%2Fi.ytimg.com%2Fvi%2FQ6dsRpVyyWs%2Fsddefault.jpg&iv_allow_in_place_switch=1&default_audio_track_index=0&allow_ratings=1&use_cipher_signature=False&fmt_list=22%2F1280x720%2F9%2F0%2F115%2C43%2F640x360%2F99%2F0%2F0%2C18%2F640x360%2F9%2F0%2F115%2C36%2F426x240%2F99%2F1%2F0%2C17%2F256x144%2F99%2F1%2F0&thumbnail_url=https%3A%2F%2Fi.ytimg.com%2Fvi%2FQ6dsRpVyyWs%2Fdefault.jpg&vmap=%3C%3Fxml+version%3D%221.0%22+encoding%3D%22UTF-8%22%3F%3E%3Cvmap%3AVMAP+xmlns%3Avmap%3D%22http%3A%2F%2Fwww.iab.net%2Fvideosuite%2Fvmap%22+xmlns%3Ayt%3D%22http%3A%2F%2Fyoutube.com%22+version%3D%221.0%22%3E%3C%2Fvmap%3AVMAP%3E&cc3_module=1&has_cc=True&is_listed=1&cc_module=https%3A%2F%2Fs.ytimg.com%2Fyts%2Fswfbin%2Fplayer-vfldq9G5_%2Fsubtitle_module.swf&url_encoded_fmt_stream_map=type%3Dvideo%252Fmp4%253B%2Bcodecs%253D%2522avc1.64001F%252C%2Bmp4a.40.2%2522%26quality%3Dhd720%26url%3Dhttps%253A%252F%252Fr20---sn-hp57knsd.googlevideo.com%252Fvideoplayback%253Fexpire%253D1480969427%2526initcwndbps%253D167500%2526key%253Dyt6%2526source%253Dyoutube%2526signature%253DAB92550CCB6452BB677B17C585FADB5307CFA89D.C04CB6D75CA80ACCFC6BCD1FAFA07C67A2B95057%2526upn%253Dx-eKNJJY5aU%2526nh%253DIgpwcjAzLm1pYTA0Kgw2My4yNDUuMy4xNjk%2526ratebypass%253Dyes%2526itag%253D22%2526ipbits%253D0%2526lmt%253D1473408787496138%2526sparams%253Ddur%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cnh%25252Cpl%25252Cratebypass%25252Crequiressl%25252Csource%25252Cupn%25252Cexpire%2526mm%253D31%2526ip%253D209.59.90.242%2526mn%253Dsn-hp57knsd%2526id%253Do-ACv4XPO0-_wcP0GpG5BLIQrZaFiqQmRoQxYs4fhaznIo%2526dur%253D136.719%2526mime%253Dvideo%25252Fmp4%2526ms%253Dau%2526requiressl%253Dyes%2526mt%253D1480947656%2526pl%253D24%2526mv%253Dm%26fallback_host%3Dtc.v5.cache2.googlevideo.com%26itag%3D22%2Ctype%3Dvideo%252Fwebm%253B%2Bcodecs%253D%2522vp8.0%252C%2Bvorbis%2522%26quality%3Dmedium%26url%3Dhttps%253A%252F%252Fr20---sn-hp57knsd.googlevideo.com%252Fvideoplayback%253Fexpire%253D1480969427%2526initcwndbps%253D167500%2526key%253Dyt6%2526source%253Dyoutube%2526signature%253DAC692252B954DE487F7D235E5E7E115E1247A60C.2599D9018FC042778E6F78F0E49290118374905F%2526upn%253Dx-eKNJJY5aU%2526nh%253DIgpwcjAzLm1pYTA0Kgw2My4yNDUuMy4xNjk%2526ratebypass%253Dyes%2526itag%253D43%2526ipbits%253D0%2526lmt%253D1473279354614381%2526sparams%253Ddur%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cnh%25252Cpl%25252Cratebypass%25252Crequiressl%25252Csource%25252Cupn%25252Cexpire%2526mm%253D31%2526ip%253D209.59.90.242%2526mn%253Dsn-hp57knsd%2526id%253Do-ACv4XPO0-_wcP0GpG5BLIQrZaFiqQmRoQxYs4fhaznIo%2526dur%253D0.000%2526mime%253Dvideo%25252Fwebm%2526ms%253Dau%2526requiressl%253Dyes%2526mt%253D1480947656%2526pl%253D24%2526mv%253Dm%26fallback_host%3Dtc.v24.cache6.googlevideo.com%26itag%3D43%2Ctype%3Dvideo%252Fmp4%253B%2Bcodecs%253D%2522avc1.42001E%252C%2Bmp4a.40.2%2522%26quality%3Dmedium%26url%3Dhttps%253A%252F%252Fr20---sn-hp57knsd.googlevideo.com%252Fvideoplayback%253Fexpire%253D1480969427%2526initcwndbps%253D167500%2526key%253Dyt6%2526source%253Dyoutube%2526signature%253DA26E72A1E8C781F2E4C5427F30504234D291FE54.D121B8CB7595597949616788668EDB73E2AC0541%2526upn%253Dx-eKNJJY5aU%2526nh%253DIgpwcjAzLm1pYTA0Kgw2My4yNDUuMy4xNjk%2526ratebypass%253Dyes%2526itag%253D18%2526ipbits%253D0%2526lmt%253D1473408658970185%2526sparams%253Ddur%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cnh%25252Cpl%25252Cratebypass%25252Crequiressl%25252Csource%25252Cupn%25252Cexpire%2526mm%253D31%2526ip%253D209.59.90.242%2526mn%253Dsn-hp57knsd%2526id%253Do-ACv4XPO0-_wcP0GpG5BLIQrZaFiqQmRoQxYs4fhaznIo%2526dur%253D136.719%2526mime%253Dvideo%25252Fmp4%2526ms%253Dau%2526requiressl%253Dyes%2526mt%253D1480947656%2526pl%253D24%2526mv%253Dm%26fallback_host%3Dtc.v10.cache1.googlevideo.com%26itag%3D18%2Ctype%3Dvideo%252F3gpp%253B%2Bcodecs%253D%2522mp4v.20.3%252C%2Bmp4a.40.2%2522%26quality%3Dsmall%26url%3Dhttps%253A%252F%252Fr20---sn-hp57knsd.googlevideo.com%252Fvideoplayback%253Fexpire%253D1480969427%2526itag%253D36%2526initcwndbps%253D167500%2526ipbits%253D0%2526lmt%253D1473273458311304%2526key%253Dyt6%2526ip%253D209.59.90.242%2526sparams%253Ddur%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cnh%25252Cpl%25252Crequiressl%25252Csource%25252Cupn%25252Cexpire%2526mm%253D31%2526source%253Dyoutube%2526mn%253Dsn-hp57knsd%2526signature%253DA992E8102B27D4A2DFCE8D29E2D98C91BB863126.B0C6B4386759C5888A019BB934456A1D9E6C7E83%2526id%253Do-ACv4XPO0-_wcP0GpG5BLIQrZaFiqQmRoQxYs4fhaznIo%2526dur%253D136.765%2526mime%253Dvideo%25252F3gpp%2526nh%253DIgpwcjAzLm1pYTA0Kgw2My4yNDUuMy4xNjk%2526upn%253Dx-eKNJJY5aU%2526ms%253Dau%2526requiressl%253Dyes%2526mt%253D1480947656%2526pl%253D24%2526mv%253Dm%26fallback_host%3Dtc.v9.cache8.googlevideo.com%26itag%3D36%2Ctype%3Dvideo%252F3gpp%253B%2Bcodecs%253D%2522mp4v.20.3%252C%2Bmp4a.40.2%2522%26quality%3Dsmall%26url%3Dhttps%253A%252F%252Fr20---sn-hp57knsd.googlevideo.com%252Fvideoplayback%253Fexpire%253D1480969427%2526itag%253D17%2526initcwndbps%253D167500%2526ipbits%253D0%2526lmt%253D1473273454810307%2526key%253Dyt6%2526ip%253D209.59.90.242%2526sparams%253Ddur%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cnh%25252Cpl%25252Crequiressl%25252Csource%25252Cupn%25252Cexpire%2526mm%253D31%2526source%253Dyoutube%2526mn%253Dsn-hp57knsd%2526signature%253D181352BE84EAE99EF7665C9561F8F48065779238.2ABBC3DFFD213ADE5C457F0443B00F8880B94BFA%2526id%253Do-ACv4XPO0-_wcP0GpG5BLIQrZaFiqQmRoQxYs4fhaznIo%2526dur%253D136.765%2526mime%253Dvideo%25252F3gpp%2526nh%253DIgpwcjAzLm1pYTA0Kgw2My4yNDUuMy4xNjk%2526upn%253Dx-eKNJJY5aU%2526ms%253Dau%2526requiressl%253Dyes%2526mt%253D1480947656%2526pl%253D24%2526mv%253Dm%26fallback_host%3Dtc.v1.cache7.googlevideo.com%26itag%3D17&eventid=cnhFWKWrO8u1-QWIyaHoBA&cc_fonts_url=https%3A%2F%2Fs.ytimg.com%2Fyts%2Fswfbin%2Fplayer-vfldq9G5_%2Ffonts708.swf&ptchn=E_M8A5yxnLfW0KghEeajjw&ldpj=-27&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&ttsurl=https%3A%2F%2Fwww.youtube.com%2Fapi%2Ftimedtext%3Fasr_langs%3Dde%252Cko%252Cit%252Cru%252Cfr%252Cen%252Cnl%252Cpt%252Cja%252Ces%26caps%3Dasr%26sparams%3Dasr_langs%252Ccaps%252Cv%252Cexpire%26hl%3Den_US%26expire%3D1480973027%26v%3DQ6dsRpVyyWs%26key%3Dyttt1%26signature%3DE3680F2931EC841DFB274A051B0E14A8A5D8C0BC.04004D084C5DE36268E2DA9994D3ABE2E8D3EA7F&caption_translation_languages=n%3DAfrikaans%26lc%3Daf%2Cn%3DAlbanian%26lc%3Dsq%2Cn%3DAmharic%26lc%3Dam%2Cn%3DArabic%26lc%3Dar%2Cn%3DArmenian%26lc%3Dhy%2Cn%3DAzerbaijani%26lc%3Daz%2Cn%3DBasque%26lc%3Deu%2Cn%3DBelarusian%26lc%3Dbe%2Cn%3DBengali%26lc%3Dbn%2Cn%3DBosnian%26lc%3Dbs%2Cn%3DBulgarian%26lc%3Dbg%2Cn%3DBurmese%26lc%3Dmy%2Cn%3DCatalan%26lc%3Dca%2Cn%3DCebuano%26lc%3Dceb%2Cn%3DChinese%2B%2528Simplified%2529%26lc%3Dzh-Hans%2Cn%3DChinese%2B%2528Traditional%2529%26lc%3Dzh-Hant%2Cn%3DCorsican%26lc%3Dco%2Cn%3DCroatian%26lc%3Dhr%2Cn%3DCzech%26lc%3Dcs%2Cn%3DDanish%26lc%3Dda%2Cn%3DDutch%26lc%3Dnl%2Cn%3DEnglish%26lc%3Den%2Cn%3DEsperanto%26lc%3Deo%2Cn%3DEstonian%26lc%3Det%2Cn%3DFilipino%26lc%3Dfil%2Cn%3DFinnish%26lc%3Dfi%2Cn%3DFrench%26lc%3Dfr%2Cn%3DGalician%26lc%3Dgl%2Cn%3DGeorgian%26lc%3Dka%2Cn%3DGerman%26lc%3Dde%2Cn%3DGreek%26lc%3Del%2Cn%3DGujarati%26lc%3Dgu%2Cn%3DHaitian%2BCreole%26lc%3Dht%2Cn%3DHausa%26lc%3Dha%2Cn%3DHawaiian%26lc%3Dhaw%2Cn%3DHebrew%26lc%3Diw%2Cn%3DHindi%26lc%3Dhi%2Cn%3DHmong%26lc%3Dhmn%2Cn%3DHungarian%26lc%3Dhu%2Cn%3DIcelandic%26lc%3Dis%2Cn%3DIgbo%26lc%3Dig%2Cn%3DIndonesian%26lc%3Did%2Cn%3DIrish%26lc%3Dga%2Cn%3DItalian%26lc%3Dit%2Cn%3DJapanese%26lc%3Dja%2Cn%3DJavanese%26lc%3Djv%2Cn%3DKannada%26lc%3Dkn%2Cn%3DKazakh%26lc%3Dkk%2Cn%3DKhmer%26lc%3Dkm%2Cn%3DKorean%26lc%3Dko%2Cn%3DKurdish%26lc%3Dku%2Cn%3DKyrgyz%26lc%3Dky%2Cn%3DLao%26lc%3Dlo%2Cn%3DLatin%26lc%3Dla%2Cn%3DLatvian%26lc%3Dlv%2Cn%3DLithuanian%26lc%3Dlt%2Cn%3DLuxembourgish%26lc%3Dlb%2Cn%3DMacedonian%26lc%3Dmk%2Cn%3DMalagasy%26lc%3Dmg%2Cn%3DMalay%26lc%3Dms%2Cn%3DMalayalam%26lc%3Dml%2Cn%3DMaltese%26lc%3Dmt%2Cn%3DMaori%26lc%3Dmi%2Cn%3DMarathi%26lc%3Dmr%2Cn%3DMongolian%26lc%3Dmn%2Cn%3DNepali%26lc%3Dne%2Cn%3DNorwegian%26lc%3Dno%2Cn%3DNyanja%26lc%3Dny%2Cn%3DPashto%26lc%3Dps%2Cn%3DPersian%26lc%3Dfa%2Cn%3DPolish%26lc%3Dpl%2Cn%3DPortuguese%26lc%3Dpt%2Cn%3DPunjabi%26lc%3Dpa%2Cn%3DRomanian%26lc%3Dro%2Cn%3DRussian%26lc%3Dru%2Cn%3DSamoan%26lc%3Dsm%2Cn%3DScottish%2BGaelic%26lc%3Dgd%2Cn%3DSerbian%26lc%3Dsr%2Cn%3DShona%26lc%3Dsn%2Cn%3DSindhi%26lc%3Dsd%2Cn%3DSinhala%26lc%3Dsi%2Cn%3DSlovak%26lc%3Dsk%2Cn%3DSlovenian%26lc%3Dsl%2Cn%3DSomali%26lc%3Dso%2Cn%3DSouthern%2BSotho%26lc%3Dst%2Cn%3DSpanish%26lc%3Des%2Cn%3DSundanese%26lc%3Dsu%2Cn%3DSwahili%26lc%3Dsw%2Cn%3DSwedish%26lc%3Dsv%2Cn%3DTajik%26lc%3Dtg%2Cn%3DTamil%26lc%3Dta%2Cn%3DTelugu%26lc%3Dte%2Cn%3DThai%26lc%3Dth%2Cn%3DTurkish%26lc%3Dtr%2Cn%3DUkrainian%26lc%3Duk%2Cn%3DUrdu%26lc%3Dur%2Cn%3DUzbek%26lc%3Duz%2Cn%3DVietnamese%26lc%3Dvi%2Cn%3DWelsh%26lc%3Dcy%2Cn%3DWestern%2BFrisian%26lc%3Dfy%2Cn%3DXhosa%26lc%3Dxh%2Cn%3DYiddish%26lc%3Dyi%2Cn%3DYoruba%26lc%3Dyo%2Cn%3DZulu%26lc%3Dzu×tamp=1480947827&status=ok&view_count=22181585&author=Apple&ptk=Apple%252Bvid&adaptive_fmts=bitrate%3D2001359%26quality_label%3D1080p%26fps%3D30%26lmt%3D1473408644466547%26projection_type%3D1%26index%3D715-1058%26size%3D1920x1080%26type%3Dvideo%252Fmp4%253B%2Bcodecs%253D%2522avc1.640028%2522%26clen%3D28215642%26init%3D0-714%26url%3Dhttps%253A%252F%252Fr20---sn-hp57knsd.googlevideo.com%252Fvideoplayback%253Fexpire%253D1480969427%2526initcwndbps%253D167500%2526key%253Dyt6%2526source%253Dyoutube%2526signature%253D92CCFB037E5784B715BDAFB9B5DE195C191C72F7.CEE307C909BB7A449B94152DE2E2F407CBB90106%2526upn%253DY68XqgvUBos%2526nh%253DIgpwcjAzLm1pYTA0Kgw2My4yNDUuMy4xNjk%2526clen%253D28215642%2526gir%253Dyes%2526itag%253D137%2526ipbits%253D0%2526lmt%253D1473408644466547%2526sparams%253Dclen%25252Cdur%25252Cgir%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cnh%25252Cpl%25252Crequiressl%25252Csource%25252Cupn%25252Cexpire%2526mm%253D31%2526ip%253D209.59.90.242%2526mn%253Dsn-hp57knsd%2526id%253Do-ACv4XPO0-_wcP0GpG5BLIQrZaFiqQmRoQxYs4fhaznIo%2526dur%253D136.669%2526mime%253Dvideo%25252Fmp4%2526ms%253Dau%2526requiressl%253Dyes%2526mt%253D1480947656%2526pl%253D24%2526mv%253Dm%26itag%3D137%2Cbitrate%3D2192311%26quality_label%3D1080p%26fps%3D30%26lmt%3D1473279641224380%26projection_type%3D1%26index%3D243-681%26size%3D1920x1080%26type%3Dvideo%252Fwebm%253B%2Bcodecs%253D%2522vp9%2522%26clen%3D22158692%26init%3D0-242%26url%3Dhttps%253A%252F%252Fr20---sn-hp57knsd.googlevideo.com%252Fvideoplayback%253Fexpire%253D1480969427%2526initcwndbps%253D167500%2526key%253Dyt6%2526source%253Dyoutube%2526signature%253DD138676ADCAC1275686C78DFA31AE11FE9207DA1.C76239985C021D91B79FF38598E2EA0A784C1605%2526upn%253DY68XqgvUBos%2526nh%253DIgpwcjAzLm1pYTA0Kgw2My4yNDUuMy4xNjk%2526clen%253D22158692%2526gir%253Dyes%2526itag%253D248%2526ipbits%253D0%2526lmt%253D1473279641224380%2526sparams%253Dclen%25252Cdur%25252Cgir%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cnh%25252Cpl%25252Crequiressl%25252Csource%25252Cupn%25252Cexpire%2526mm%253D31%2526ip%253D209.59.90.242%2526mn%253Dsn-hp57knsd%2526id%253Do-ACv4XPO0-_wcP0GpG5BLIQrZaFiqQmRoQxYs4fhaznIo%2526dur%253D136.636%2526mime%253Dvideo%25252Fwebm%2526ms%253Dau%2526requiressl%253Dyes%2526mt%253D1480947656%2526pl%253D24%2526mv%253Dm%26itag%3D248%2Cbitrate%3D1062524%26quality_label%3D720p%26fps%3D30%26lmt%3D1473408657870947%26projection_type%3D1%26index%3D713-1056%26size%3D1280x720%26type%3Dvideo%252Fmp4%253B%2Bcodecs%253D%2522avc1.4d401f%2522%26clen%3D14991147%26init%3D0-712%26url%3Dhttps%253A%252F%252Fr20---sn-hp57knsd.googlevideo.com%252Fvideoplayback%253Fexpire%253D1480969427%2526initcwndbps%253D167500%2526key%253Dyt6%2526source%253Dyoutube%2526signature%253D81C6F64A92B2833830327E840350493874A2BD6B.872216CAD51034D80E0FFC47996B432924C44858%2526upn%253DY68XqgvUBos%2526nh%253DIgpwcjAzLm1pYTA0Kgw2My4yNDUuMy4xNjk%2526clen%253D14991147%2526gir%253Dyes%2526itag%253D136%2526ipbits%253D0%2526lmt%253D1473408657870947%2526sparams%253Dclen%25252Cdur%25252Cgir%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cnh%25252Cpl%25252Crequiressl%25252Csource%25252Cupn%25252Cexpire%2526mm%253D31%2526ip%253D209.59.90.242%2526mn%253Dsn-hp57knsd%2526id%253Do-ACv4XPO0-_wcP0GpG5BLIQrZaFiqQmRoQxYs4fhaznIo%2526dur%253D136.669%2526mime%253Dvideo%25252Fmp4%2526ms%253Dau%2526requiressl%253Dyes%2526mt%253D1480947656%2526pl%253D24%2526mv%253Dm%26itag%3D136%2Cbitrate%3D1238923%26quality_label%3D720p%26fps%3D30%26lmt%3D1473279879296686%26projection_type%3D1%26index%3D243-674%26size%3D1280x720%26type%3Dvideo%252Fwebm%253B%2Bcodecs%253D%2522vp9%2522%26clen%3D12356024%26init%3D0-242%26url%3Dhttps%253A%252F%252Fr20---sn-hp57knsd.googlevideo.com%252Fvideoplayback%253Fexpire%253D1480969427%2526initcwndbps%253D167500%2526key%253Dyt6%2526source%253Dyoutube%2526signature%253D48C3F150AC09FC235DE56B5FD29A2697EA68360F.D95E2FC893F9B9C1B517150A0B1B7DD8EBA5DE57%2526upn%253DY68XqgvUBos%2526nh%253DIgpwcjAzLm1pYTA0Kgw2My4yNDUuMy4xNjk%2526clen%253D12356024%2526gir%253Dyes%2526itag%253D247%2526ipbits%253D0%2526lmt%253D1473279879296686%2526sparams%253Dclen%25252Cdur%25252Cgir%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cnh%25252Cpl%25252Crequiressl%25252Csource%25252Cupn%25252Cexpire%2526mm%253D31%2526ip%253D209.59.90.242%2526mn%253Dsn-hp57knsd%2526id%253Do-ACv4XPO0-_wcP0GpG5BLIQrZaFiqQmRoQxYs4fhaznIo%2526dur%253D136.636%2526mime%253Dvideo%25252Fwebm%2526ms%253Dau%2526requiressl%253Dyes%2526mt%253D1480947656%2526pl%253D24%2526mv%253Dm%26itag%3D247%2Cbitrate%3D598819%26quality_label%3D480p%26fps%3D30%26lmt%3D1473408657872115%26projection_type%3D1%26index%3D713-1056%26size%3D854x480%26type%3Dvideo%252Fmp4%253B%2Bcodecs%253D%2522avc1.4d401f%2522%26clen%3D7639619%26init%3D0-712%26url%3Dhttps%253A%252F%252Fr20---sn-hp57knsd.googlevideo.com%252Fvideoplayback%253Fexpire%253D1480969427%2526initcwndbps%253D167500%2526key%253Dyt6%2526source%253Dyoutube%2526signature%253DC0515B1079D698FECD1E910CDBE1CA473B28EA90.200D20E61891F50FD964B7179EA33C59B63E88B9%2526upn%253DY68XqgvUBos%2526nh%253DIgpwcjAzLm1pYTA0Kgw2My4yNDUuMy4xNjk%2526clen%253D7639619%2526gir%253Dyes%2526itag%253D135%2526ipbits%253D0%2526lmt%253D1473408657872115%2526sparams%253Dclen%25252Cdur%25252Cgir%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cnh%25252Cpl%25252Crequiressl%25252Csource%25252Cupn%25252Cexpire%2526mm%253D31%2526ip%253D209.59.90.242%2526mn%253Dsn-hp57knsd%2526id%253Do-ACv4XPO0-_wcP0GpG5BLIQrZaFiqQmRoQxYs4fhaznIo%2526dur%253D136.669%2526mime%253Dvideo%25252Fmp4%2526ms%253Dau%2526requiressl%253Dyes%2526mt%253D1480947656%2526pl%253D24%2526mv%253Dm%26itag%3D135%2Cbitrate%3D638648%26quality_label%3D480p%26fps%3D30%26lmt%3D1473279878534038%26projection_type%3D1%26index%3D243-674%26size%3D854x480%26type%3Dvideo%252Fwebm%253B%2Bcodecs%253D%2522vp9%2522%26clen%3D6572571%26init%3D0-242%26url%3Dhttps%253A%252F%252Fr20---sn-hp57knsd.googlevideo.com%252Fvideoplayback%253Fexpire%253D1480969427%2526initcwndbps%253D167500%2526key%253Dyt6%2526source%253Dyoutube%2526signature%253D847C5B04F36B28B603A3A4C3E6AAA2BD52F04190.1688EC5051EFA4B64C5618F0C97D64D5D94A1020%2526upn%253DY68XqgvUBos%2526nh%253DIgpwcjAzLm1pYTA0Kgw2My4yNDUuMy4xNjk%2526clen%253D6572571%2526gir%253Dyes%2526itag%253D244%2526ipbits%253D0%2526lmt%253D1473279878534038%2526sparams%253Dclen%25252Cdur%25252Cgir%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cnh%25252Cpl%25252Crequiressl%25252Csource%25252Cupn%25252Cexpire%2526mm%253D31%2526ip%253D209.59.90.242%2526mn%253Dsn-hp57knsd%2526id%253Do-ACv4XPO0-_wcP0GpG5BLIQrZaFiqQmRoQxYs4fhaznIo%2526dur%253D136.636%2526mime%253Dvideo%25252Fwebm%2526ms%253Dau%2526requiressl%253Dyes%2526mt%253D1480947656%2526pl%253D24%2526mv%253Dm%26itag%3D244%2Cbitrate%3D321633%26quality_label%3D360p%26fps%3D30%26lmt%3D1473408657820066%26projection_type%3D1%26index%3D713-1056%26size%3D640x360%26type%3Dvideo%252Fmp4%253B%2Bcodecs%253D%2522avc1.4d401e%2522%26clen%3D3752171%26init%3D0-712%26url%3Dhttps%253A%252F%252Fr20---sn-hp57knsd.googlevideo.com%252Fvideoplayback%253Fexpire%253D1480969427%2526initcwndbps%253D167500%2526key%253Dyt6%2526source%253Dyoutube%2526signature%253D8552C659B61E082F37EF55FE3FDCBCFC68FF8F3A.D827E8F86BD8C2B23B62D18C85AB4DD8E8F5B1E9%2526upn%253DY68XqgvUBos%2526nh%253DIgpwcjAzLm1pYTA0Kgw2My4yNDUuMy4xNjk%2526clen%253D3752171%2526gir%253Dyes%2526itag%253D134%2526ipbits%253D0%2526lmt%253D1473408657820066%2526sparams%253Dclen%25252Cdur%25252Cgir%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cnh%25252Cpl%25252Crequiressl%25252Csource%25252Cupn%25252Cexpire%2526mm%253D31%2526ip%253D209.59.90.242%2526mn%253Dsn-hp57knsd%2526id%253Do-ACv4XPO0-_wcP0GpG5BLIQrZaFiqQmRoQxYs4fhaznIo%2526dur%253D136.669%2526mime%253Dvideo%25252Fmp4%2526ms%253Dau%2526requiressl%253Dyes%2526mt%253D1480947656%2526pl%253D24%2526mv%253Dm%26itag%3D134%2Cbitrate%3D390441%26quality_label%3D360p%26fps%3D30%26lmt%3D1473279879116670%26projection_type%3D1%26index%3D243-674%26size%3D640x360%26type%3Dvideo%252Fwebm%253B%2Bcodecs%253D%2522vp9%2522%26clen%3D4162676%26init%3D0-242%26url%3Dhttps%253A%252F%252Fr20---sn-hp57knsd.googlevideo.com%252Fvideoplayback%253Fexpire%253D1480969427%2526initcwndbps%253D167500%2526key%253Dyt6%2526source%253Dyoutube%2526signature%253D30448931EA054F725D60177070EE1D5041F215A1.5601CAA979FF9B91AF5724A1A1EDC0D1BBA25816%2526upn%253DY68XqgvUBos%2526nh%253DIgpwcjAzLm1pYTA0Kgw2My4yNDUuMy4xNjk%2526clen%253D4162676%2526gir%253Dyes%2526itag%253D243%2526ipbits%253D0%2526lmt%253D1473279879116670%2526sparams%253Dclen%25252Cdur%25252Cgir%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cnh%25252Cpl%25252Crequiressl%25252Csource%25252Cupn%25252Cexpire%2526mm%253D31%2526ip%253D209.59.90.242%2526mn%253Dsn-hp57knsd%2526id%253Do-ACv4XPO0-_wcP0GpG5BLIQrZaFiqQmRoQxYs4fhaznIo%2526dur%253D136.636%2526mime%253Dvideo%25252Fwebm%2526ms%253Dau%2526requiressl%253Dyes%2526mt%253D1480947656%2526pl%253D24%2526mv%253Dm%26itag%3D243%2Cbitrate%3D247784%26quality_label%3D240p%26fps%3D30%26lmt%3D1473408657773043%26projection_type%3D1%26index%3D713-1056%26size%3D426x240%26type%3Dvideo%252Fmp4%253B%2Bcodecs%253D%2522avc1.4d4015%2522%26clen%3D4103961%26init%3D0-712%26url%3Dhttps%253A%252F%252Fr20---sn-hp57knsd.googlevideo.com%252Fvideoplayback%253Fexpire%253D1480969427%2526initcwndbps%253D167500%2526key%253Dyt6%2526source%253Dyoutube%2526signature%253D48AF8EDA3DE19CFE9739884F520004408E3841DA.CA3828A99B36C4F82B0EE1FC16AEBF4085ED2991%2526upn%253DY68XqgvUBos%2526nh%253DIgpwcjAzLm1pYTA0Kgw2My4yNDUuMy4xNjk%2526clen%253D4103961%2526gir%253Dyes%2526itag%253D133%2526ipbits%253D0%2526lmt%253D1473408657773043%2526sparams%253Dclen%25252Cdur%25252Cgir%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cnh%25252Cpl%25252Crequiressl%25252Csource%25252Cupn%25252Cexpire%2526mm%253D31%2526ip%253D209.59.90.242%2526mn%253Dsn-hp57knsd%2526id%253Do-ACv4XPO0-_wcP0GpG5BLIQrZaFiqQmRoQxYs4fhaznIo%2526dur%253D136.669%2526mime%253Dvideo%25252Fmp4%2526ms%253Dau%2526requiressl%253Dyes%2526mt%253D1480947656%2526pl%253D24%2526mv%253Dm%26itag%3D133%2Cbitrate%3D214849%26quality_label%3D240p%26fps%3D30%26lmt%3D1473279878225184%26projection_type%3D1%26index%3D242-673%26size%3D426x240%26type%3Dvideo%252Fwebm%253B%2Bcodecs%253D%2522vp9%2522%26clen%3D2349040%26init%3D0-241%26url%3Dhttps%253A%252F%252Fr20---sn-hp57knsd.googlevideo.com%252Fvideoplayback%253Fexpire%253D1480969427%2526initcwndbps%253D167500%2526key%253Dyt6%2526source%253Dyoutube%2526signature%253D58EF19C9503725EF0F213FE758DA7562979EB422.2ECADC90738ACA3E3345286F03B496C56ED1CFB3%2526upn%253DY68XqgvUBos%2526nh%253DIgpwcjAzLm1pYTA0Kgw2My4yNDUuMy4xNjk%2526clen%253D2349040%2526gir%253Dyes%2526itag%253D242%2526ipbits%253D0%2526lmt%253D1473279878225184%2526sparams%253Dclen%25252Cdur%25252Cgir%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cnh%25252Cpl%25252Crequiressl%25252Csource%25252Cupn%25252Cexpire%2526mm%253D31%2526ip%253D209.59.90.242%2526mn%253Dsn-hp57knsd%2526id%253Do-ACv4XPO0-_wcP0GpG5BLIQrZaFiqQmRoQxYs4fhaznIo%2526dur%253D136.636%2526mime%253Dvideo%25252Fwebm%2526ms%253Dau%2526requiressl%253Dyes%2526mt%253D1480947656%2526pl%253D24%2526mv%253Dm%26itag%3D242%2Cbitrate%3D116865%26quality_label%3D144p%26fps%3D30%26lmt%3D1473408657773711%26projection_type%3D1%26index%3D675-1018%26size%3D256x144%26type%3Dvideo%252Fmp4%253B%2Bcodecs%253D%2522avc1.4d400c%2522%26clen%3D1852248%26init%3D0-674%26url%3Dhttps%253A%252F%252Fr20---sn-hp57knsd.googlevideo.com%252Fvideoplayback%253Fexpire%253D1480969427%2526initcwndbps%253D167500%2526key%253Dyt6%2526source%253Dyoutube%2526signature%253D11D4170AC8A702DDFF617FA91A665689ED1DBF08.5867B1635425FA1DE198FD81046A2492343ECCB7%2526upn%253DY68XqgvUBos%2526nh%253DIgpwcjAzLm1pYTA0Kgw2My4yNDUuMy4xNjk%2526clen%253D1852248%2526gir%253Dyes%2526itag%253D160%2526ipbits%253D0%2526lmt%253D1473408657773711%2526sparams%253Dclen%25252Cdur%25252Cgir%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cnh%25252Cpl%25252Crequiressl%25252Csource%25252Cupn%25252Cexpire%2526mm%253D31%2526ip%253D209.59.90.242%2526mn%253Dsn-hp57knsd%2526id%253Do-ACv4XPO0-_wcP0GpG5BLIQrZaFiqQmRoQxYs4fhaznIo%2526dur%253D136.669%2526mime%253Dvideo%25252Fmp4%2526ms%253Dau%2526requiressl%253Dyes%2526mt%253D1480947656%2526pl%253D24%2526mv%253Dm%26itag%3D160%2Cbitrate%3D110188%26quality_label%3D144p%26fps%3D30%26lmt%3D1473279878463753%26projection_type%3D1%26index%3D242-673%26size%3D256x144%26type%3Dvideo%252Fwebm%253B%2Bcodecs%253D%2522vp9%2522%26clen%3D1475080%26init%3D0-241%26url%3Dhttps%253A%252F%252Fr20---sn-hp57knsd.googlevideo.com%252Fvideoplayback%253Fexpire%253D1480969427%2526initcwndbps%253D167500%2526key%253Dyt6%2526source%253Dyoutube%2526signature%253DB6ED24091E20E51777750BD3727E59F917A3AC92.5A1D3AD26A2070495432290AF9D427CDCB2C2DE5%2526upn%253DY68XqgvUBos%2526nh%253DIgpwcjAzLm1pYTA0Kgw2My4yNDUuMy4xNjk%2526clen%253D1475080%2526gir%253Dyes%2526itag%253D278%2526ipbits%253D0%2526lmt%253D1473279878463753%2526sparams%253Dclen%25252Cdur%25252Cgir%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cnh%25252Cpl%25252Crequiressl%25252Csource%25252Cupn%25252Cexpire%2526mm%253D31%2526ip%253D209.59.90.242%2526mn%253Dsn-hp57knsd%2526id%253Do-ACv4XPO0-_wcP0GpG5BLIQrZaFiqQmRoQxYs4fhaznIo%2526dur%253D136.636%2526mime%253Dvideo%25252Fwebm%2526ms%253Dau%2526requiressl%253Dyes%2526mt%253D1480947656%2526pl%253D24%2526mv%253Dm%26itag%3D278%2Cindex%3D592-791%26bitrate%3D127977%26projection_type%3D1%26lmt%3D1473408644850312%26type%3Daudio%252Fmp4%253B%2Bcodecs%253D%2522mp4a.40.2%2522%26init%3D0-591%26clen%3D2172089%26url%3Dhttps%253A%252F%252Fr20---sn-hp57knsd.googlevideo.com%252Fvideoplayback%253Fexpire%253D1480969427%2526initcwndbps%253D167500%2526key%253Dyt6%2526source%253Dyoutube%2526signature%253D7E11EFD155364F7C31EAE1AAA7880B1D108841F2.12305D8292BFC8832861BA78453E73E32AAD0741%2526upn%253DY68XqgvUBos%2526nh%253DIgpwcjAzLm1pYTA0Kgw2My4yNDUuMy4xNjk%2526clen%253D2172089%2526gir%253Dyes%2526itag%253D140%2526ipbits%253D0%2526lmt%253D1473408644850312%2526sparams%253Dclen%25252Cdur%25252Cgir%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cnh%25252Cpl%25252Crequiressl%25252Csource%25252Cupn%25252Cexpire%2526mm%253D31%2526ip%253D209.59.90.242%2526mn%253Dsn-hp57knsd%2526id%253Do-ACv4XPO0-_wcP0GpG5BLIQrZaFiqQmRoQxYs4fhaznIo%2526dur%253D136.719%2526mime%253Daudio%25252Fmp4%2526ms%253Dau%2526requiressl%253Dyes%2526mt%253D1480947656%2526pl%253D24%2526mv%253Dm%26itag%3D140%2Cindex%3D4452-4686%26bitrate%3D129694%26projection_type%3D1%26lmt%3D1473279320428711%26type%3Daudio%252Fwebm%253B%2Bcodecs%253D%2522vorbis%2522%26init%3D0-4451%26clen%3D2048449%26url%3Dhttps%253A%252F%252Fr20---sn-hp57knsd.googlevideo.com%252Fvideoplayback%253Fexpire%253D1480969427%2526initcwndbps%253D167500%2526key%253Dyt6%2526source%253Dyoutube%2526signature%253D644CFA846F78A6C01005353FBB04ECA137ABFE22.BE85EDE02B37448B71DDFC0E2B75AB66B1184920%2526upn%253DY68XqgvUBos%2526nh%253DIgpwcjAzLm1pYTA0Kgw2My4yNDUuMy4xNjk%2526clen%253D2048449%2526gir%253Dyes%2526itag%253D171%2526ipbits%253D0%2526lmt%253D1473279320428711%2526sparams%253Dclen%25252Cdur%25252Cgir%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cnh%25252Cpl%25252Crequiressl%25252Csource%25252Cupn%25252Cexpire%2526mm%253D31%2526ip%253D209.59.90.242%2526mn%253Dsn-hp57knsd%2526id%253Do-ACv4XPO0-_wcP0GpG5BLIQrZaFiqQmRoQxYs4fhaznIo%2526dur%253D136.660%2526mime%253Daudio%25252Fwebm%2526ms%253Dau%2526requiressl%253Dyes%2526mt%253D1480947656%2526pl%253D24%2526mv%253Dm%26itag%3D171%2Cindex%3D272-505%26bitrate%3D53942%26projection_type%3D1%26lmt%3D1473279313279079%26type%3Daudio%252Fwebm%253B%2Bcodecs%253D%2522opus%2522%26init%3D0-271%26clen%3D842802%26url%3Dhttps%253A%252F%252Fr20---sn-hp57knsd.googlevideo.com%252Fvideoplayback%253Fexpire%253D1480969427%2526initcwndbps%253D167500%2526key%253Dyt6%2526source%253Dyoutube%2526signature%253DBBACE57AB1C467684D1F7A4F8711F6E92FF1B058.7794F4C13578C7C221AE7598A7907C64F78AAB4B%2526upn%253DY68XqgvUBos%2526nh%253DIgpwcjAzLm1pYTA0Kgw2My4yNDUuMy4xNjk%2526clen%253D842802%2526gir%253Dyes%2526itag%253D249%2526ipbits%253D0%2526lmt%253D1473279313279079%2526sparams%253Dclen%25252Cdur%25252Cgir%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cnh%25252Cpl%25252Crequiressl%25252Csource%25252Cupn%25252Cexpire%2526mm%253D31%2526ip%253D209.59.90.242%2526mn%253Dsn-hp57knsd%2526id%253Do-ACv4XPO0-_wcP0GpG5BLIQrZaFiqQmRoQxYs4fhaznIo%2526dur%253D136.661%2526mime%253Daudio%25252Fwebm%2526ms%253Dau%2526requiressl%253Dyes%2526mt%253D1480947656%2526pl%253D24%2526mv%253Dm%26itag%3D249%2Cindex%3D272-506%26bitrate%3D73884%26projection_type%3D1%26lmt%3D1473279319403451%26type%3Daudio%252Fwebm%253B%2Bcodecs%253D%2522opus%2522%26init%3D0-271%26clen%3D1107745%26url%3Dhttps%253A%252F%252Fr20---sn-hp57knsd.googlevideo.com%252Fvideoplayback%253Fexpire%253D1480969427%2526initcwndbps%253D167500%2526key%253Dyt6%2526source%253Dyoutube%2526signature%253DBBC6BC4641D607C93B9B7980D789D9D74F5FDB70.5645A3E044CC630CE631AC5A743F82EA55E65CDA%2526upn%253DY68XqgvUBos%2526nh%253DIgpwcjAzLm1pYTA0Kgw2My4yNDUuMy4xNjk%2526clen%253D1107745%2526gir%253Dyes%2526itag%253D250%2526ipbits%253D0%2526lmt%253D1473279319403451%2526sparams%253Dclen%25252Cdur%25252Cgir%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cnh%25252Cpl%25252Crequiressl%25252Csource%25252Cupn%25252Cexpire%2526mm%253D31%2526ip%253D209.59.90.242%2526mn%253Dsn-hp57knsd%2526id%253Do-ACv4XPO0-_wcP0GpG5BLIQrZaFiqQmRoQxYs4fhaznIo%2526dur%253D136.661%2526mime%253Daudio%25252Fwebm%2526ms%253Dau%2526requiressl%253Dyes%2526mt%253D1480947656%2526pl%253D24%2526mv%253Dm%26itag%3D250%2Cindex%3D272-506%26bitrate%3D145184%26projection_type%3D1%26lmt%3D1473279317270930%26type%3Daudio%252Fwebm%253B%2Bcodecs%253D%2522opus%2522%26init%3D0-271%26clen%3D2198431%26url%3Dhttps%253A%252F%252Fr20---sn-hp57knsd.googlevideo.com%252Fvideoplayback%253Fexpire%253D1480969427%2526initcwndbps%253D167500%2526key%253Dyt6%2526source%253Dyoutube%2526signature%253D890AFCEA408AAA460AF90FBDA5BE9D4879DACCFB.BCB89B4335666D486A0AAAF96657690108408A70%2526upn%253DY68XqgvUBos%2526nh%253DIgpwcjAzLm1pYTA0Kgw2My4yNDUuMy4xNjk%2526clen%253D2198431%2526gir%253Dyes%2526itag%253D251%2526ipbits%253D0%2526lmt%253D1473279317270930%2526sparams%253Dclen%25252Cdur%25252Cgir%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cnh%25252Cpl%25252Crequiressl%25252Csource%25252Cupn%25252Cexpire%2526mm%253D31%2526ip%253D209.59.90.242%2526mn%253Dsn-hp57knsd%2526id%253Do-ACv4XPO0-_wcP0GpG5BLIQrZaFiqQmRoQxYs4fhaznIo%2526dur%253D136.661%2526mime%253Daudio%25252Fwebm%2526ms%253Dau%2526requiressl%253Dyes%2526mt%253D1480947656%2526pl%253D24%2526mv%253Dm%26itag%3D251&cc_asr=1&video_id=Q6dsRpVyyWs&token=tgbZwmsh2CYBwdHO2AnP4LQnvBqY20in8SYfIfR-GtM%3D&caption_tracks=u%3Dhttps%253A%252F%252Fwww.youtube.com%252Fapi%252Ftimedtext%253Fasr_langs%253Dde%25252Cko%25252Cit%25252Cru%25252Cfr%25252Cen%25252Cnl%25252Cpt%25252Cja%25252Ces%2526caps%253Dasr%2526sparams%253Dasr_langs%25252Ccaps%25252Cv%25252Cexpire%2526hl%253Den_US%2526expire%253D1480973027%2526v%253DQ6dsRpVyyWs%2526key%253Dyttt1%2526signature%253DE3680F2931EC841DFB274A051B0E14A8A5D8C0BC.04004D084C5DE36268E2DA9994D3ABE2E8D3EA7F%2526kind%253Dasr%2526lang%253Den%26t%3D1%26v%3Da.en%26lc%3Den%26n%3DEnglish%2B%2528auto-generated%2529%26k%3Dasr%2Cu%3Dhttps%253A%252F%252Fwww.youtube.com%252Fapi%252Ftimedtext%253Fasr_langs%253Dde%25252Cko%25252Cit%25252Cru%25252Cfr%25252Cen%25252Cnl%25252Cpt%25252Cja%25252Ces%2526caps%253Dasr%2526sparams%253Dasr_langs%25252Ccaps%25252Cv%25252Cexpire%2526hl%253Den_US%2526expire%253D1480973027%2526v%253DQ6dsRpVyyWs%2526key%253Dyttt1%2526signature%253DE3680F2931EC841DFB274A051B0E14A8A5D8C0BC.04004D084C5DE36268E2DA9994D3ABE2E8D3EA7F%2526lang%253Den%26t%3D1%26v%3D.en%26n%3DEnglish%26lc%3Den&iv_module=https%3A%2F%2Fs.ytimg.com%2Fyts%2Fswfbin%2Fplayer-vfldq9G5_%2Fiv_module.swf&iurl=https%3A%2F%2Fi.ytimg.com%2Fvi%2FQ6dsRpVyyWs%2Fhqdefault.jpg&vm=CAEQAA&short_view_count_text=22M+views&loudness=-21.2889995575&iv_invideo_url=https%3A%2F%2Fwww.youtube.com%2Fannotations_invideo%3Fcap_hist%3D1%26video_id%3DQ6dsRpVyyWs%26ei%3DcnhFWKWrO8u1-QWIyaHoBA&cl=140839172&iurlmq=https%3A%2F%2Fi.ytimg.com%2Fvi%2FQ6dsRpVyyWs%2Fmqdefault.jpg&allow_embed=1&video_verticals=%5B1071%2C+1533%5D&fexp=9413138%2C9419452%2C9422596%2C9424416%2C9428398%2C9431012%2C9432565%2C9433096%2C9433221%2C9434046%2C9434289%2C9439580%2C9439971%2C9441514%2C9441651%2C9442073%2C9444206%2C9445371%2C9445895%2C9446054%2C9446364%2C9448915%2C9449034%2C9449243%2C9451415%2C9452154%2C9452377%2C9452882%2C9453797%2C9454390%2C9454476%2C9454867%2C9456273%2C9456582&muted=0&of=dNyaYt9d-ChWdon-o0nRlg&length_seconds=137&cc_font=Arial+Unicode+MS%2C+arial%2C+verdana%2C+_sans&caption_audio_tracks=d%3D1%26v%3D0%26i%3D1%252C0&title=Apple+%E2%80%93+Introducing+iPhone+7&videostats_playback_base_url=https%3A%2F%2Fs.youtube.com&pltype=content&csi_page_type=embed&iv_load_policy=1", + "body" : "author=Apple&swf_player_response=1&ucid=UCE_M8A5yxnLfW0KghEeajjw&cver=1.20170625&no_get_video_log=1&vm=CAEQABgE&length_seconds=137&hl=en_US&token=1&root_ve_type=27240&title=Apple+%E2%80%93+Introducing+iPhone+7&videostats_playback_base_url=https%3A%2F%2Fs.youtube.com%2Fapi%2Fstats%2Fplayback%3Fof%3DNeSPT9zeUO7XnGdOGDj13w%26docid%3DQ6dsRpVyyWs%26ei%3DRT5VWar9JsaXDM3nssAN%26fexp%3D9422596%252C9431012%252C9434046%252C9434289%252C9446054%252C9446364%252C9449243%252C9453897%252C9455776%252C9457141%252C9460072%252C9463594%252C9465813%252C9466793%252C9466795%252C9466797%252C9467217%252C9468797%252C9468799%252C9468805%252C9477080%252C9480475%252C9480503%26el%3Dembedded%26plid%3DAAVTHPVzge-xqtLt%26cl%3D160466596%26len%3D137%26ns%3Dyt%26vm%3DCAEQABgE&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.BznCEch7yrY.O%2Fm%3D__features__%2Frt%3Dj%2Fd%3D1%2Frs%3DAHpOoo89FbxkNsIBOnpzYJliP4nzTuPXPg&baseUrl=https%3A%2F%2Fwww.youtube.com%2Fpagead%2Fviewthroughconversion%2F962985656%2F&atc=a%3D3%26b%3DbP2gBXDjCoM6aiQ1lyzUVlNLSO8%26c%3D1498758725%26d%3D1%26e%3DQ6dsRpVyyWs%26c3a%3D22%26c1a%3D1%26c6a%3D1%26hh%3DrC3TkHEM-mHFLybyTwD7ByrY9LlaLhiGNjk2Gm4aYqI&ismb=2370000&t=1&idpj=-9&fmt_list=22%2F1280x720%2F9%2F0%2F115%2C43%2F640x360%2F99%2F0%2F0%2C18%2F640x360%2F9%2F0%2F115%2C36%2F320x180%2F99%2F1%2F0%2C17%2F176x144%2F99%2F1%2F0&enablecsi=1&tmi=1&adaptive_fmts=projection_type%3D1%26type%3Dvideo%252Fmp4%253B%2Bcodecs%253D%2522avc1.640028%2522%26lmt%3D1473408644466547%26bitrate%3D2001359%26quality_label%3D1080p%26xtags%3D%26fps%3D30%26size%3D1920x1080%26index%3D715-1058%26clen%3D28215642%26itag%3D137%26init%3D0-714%26url%3Dhttps%253A%252F%252Fr1---sn-4avf-cbpe.googlevideo.com%252Fvideoplayback%253Fsignature%253D6F4618577B4B1DE64AAA3A460D4FCD76F4D10240.2BC073AB0A564B884D0D731D792BA3FE225BD238%2526ipbits%253D0%2526requiressl%253Dyes%2526clen%253D28215642%2526keepalive%253Dyes%2526lmt%253D1473408644466547%2526sparams%253Dclen%25252Cdur%25252Cei%25252Cgir%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Ckeepalive%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cpl%25252Crequiressl%25252Csource%25252Cexpire%2526initcwndbps%253D296250%2526key%253Dyt6%2526expire%253D1498780325%2526ms%253Dau%2526ei%253DRT5VWar9JsaXDM3nssAN%2526id%253Do-AGIEUgXiEzJ2QFrlqWk-vpRVajRz9RIJB2amomkR0JL0%2526pl%253D24%2526mv%253Dm%2526mt%253D1498758622%2526mn%253Dsn-4avf-cbpe%2526mm%253D31%2526source%253Dyoutube%2526gir%253Dyes%2526ip%253D69.57.233.153%2526itag%253D137%2526dur%253D136.669%2526mime%253Dvideo%25252Fmp4%2Cprojection_type%3D1%26type%3Dvideo%252Fwebm%253B%2Bcodecs%253D%2522vp9%2522%26lmt%3D1492998184329120%26bitrate%3D2167760%26quality_label%3D1080p%26xtags%3D%26fps%3D30%26size%3D1920x1080%26index%3D243-680%26clen%3D21466932%26itag%3D248%26init%3D0-242%26url%3Dhttps%253A%252F%252Fr1---sn-4avf-cbpe.googlevideo.com%252Fvideoplayback%253Fsignature%253D2DBE6D09E091542B172C633D4E5DE9549310B491.0415D06F498DCEC27BE298F3D900A149C69CE891%2526ipbits%253D0%2526requiressl%253Dyes%2526clen%253D21466932%2526keepalive%253Dyes%2526lmt%253D1492998184329120%2526sparams%253Dclen%25252Cdur%25252Cei%25252Cgir%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Ckeepalive%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cpl%25252Crequiressl%25252Csource%25252Cexpire%2526initcwndbps%253D296250%2526key%253Dyt6%2526expire%253D1498780325%2526ms%253Dau%2526ei%253DRT5VWar9JsaXDM3nssAN%2526id%253Do-AGIEUgXiEzJ2QFrlqWk-vpRVajRz9RIJB2amomkR0JL0%2526pl%253D24%2526mv%253Dm%2526mt%253D1498758622%2526mn%253Dsn-4avf-cbpe%2526mm%253D31%2526source%253Dyoutube%2526gir%253Dyes%2526ip%253D69.57.233.153%2526itag%253D248%2526dur%253D136.636%2526mime%253Dvideo%25252Fwebm%2Cprojection_type%3D1%26type%3Dvideo%252Fmp4%253B%2Bcodecs%253D%2522avc1.4d401f%2522%26lmt%3D1473408657870947%26bitrate%3D1062524%26quality_label%3D720p%26xtags%3D%26fps%3D30%26size%3D1280x720%26index%3D713-1056%26clen%3D14991147%26itag%3D136%26init%3D0-712%26url%3Dhttps%253A%252F%252Fr1---sn-4avf-cbpe.googlevideo.com%252Fvideoplayback%253Fsignature%253DE2D57449016252199D49BA0D93FC92081151F92E.197784664791E176C1EE0921DAC1A52DFE59A042%2526ipbits%253D0%2526requiressl%253Dyes%2526clen%253D14991147%2526keepalive%253Dyes%2526lmt%253D1473408657870947%2526sparams%253Dclen%25252Cdur%25252Cei%25252Cgir%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Ckeepalive%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cpl%25252Crequiressl%25252Csource%25252Cexpire%2526initcwndbps%253D296250%2526key%253Dyt6%2526expire%253D1498780325%2526ms%253Dau%2526ei%253DRT5VWar9JsaXDM3nssAN%2526id%253Do-AGIEUgXiEzJ2QFrlqWk-vpRVajRz9RIJB2amomkR0JL0%2526pl%253D24%2526mv%253Dm%2526mt%253D1498758622%2526mn%253Dsn-4avf-cbpe%2526mm%253D31%2526source%253Dyoutube%2526gir%253Dyes%2526ip%253D69.57.233.153%2526itag%253D136%2526dur%253D136.669%2526mime%253Dvideo%25252Fmp4%2Cprojection_type%3D1%26type%3Dvideo%252Fwebm%253B%2Bcodecs%253D%2522vp9%2522%26lmt%3D1492997809375306%26bitrate%3D1250261%26quality_label%3D720p%26xtags%3D%26fps%3D30%26size%3D1280x720%26index%3D243-674%26clen%3D12137994%26itag%3D247%26init%3D0-242%26url%3Dhttps%253A%252F%252Fr1---sn-4avf-cbpe.googlevideo.com%252Fvideoplayback%253Fsignature%253D7C037527A593F50638D6C564C87877AE242656CE.4F98F9B0BCA59E5ED436D121F91EAAF62CD3A12B%2526ipbits%253D0%2526requiressl%253Dyes%2526clen%253D12137994%2526keepalive%253Dyes%2526lmt%253D1492997809375306%2526sparams%253Dclen%25252Cdur%25252Cei%25252Cgir%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Ckeepalive%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cpl%25252Crequiressl%25252Csource%25252Cexpire%2526initcwndbps%253D296250%2526key%253Dyt6%2526expire%253D1498780325%2526ms%253Dau%2526ei%253DRT5VWar9JsaXDM3nssAN%2526id%253Do-AGIEUgXiEzJ2QFrlqWk-vpRVajRz9RIJB2amomkR0JL0%2526pl%253D24%2526mv%253Dm%2526mt%253D1498758622%2526mn%253Dsn-4avf-cbpe%2526mm%253D31%2526source%253Dyoutube%2526gir%253Dyes%2526ip%253D69.57.233.153%2526itag%253D247%2526dur%253D136.636%2526mime%253Dvideo%25252Fwebm%2Cprojection_type%3D1%26type%3Dvideo%252Fmp4%253B%2Bcodecs%253D%2522avc1.4d401f%2522%26lmt%3D1473408657872115%26bitrate%3D598819%26quality_label%3D480p%26xtags%3D%26fps%3D30%26size%3D854x480%26index%3D713-1056%26clen%3D7639619%26itag%3D135%26init%3D0-712%26url%3Dhttps%253A%252F%252Fr1---sn-4avf-cbpe.googlevideo.com%252Fvideoplayback%253Fsignature%253DE4158D47983B68D934613C1071EB1E0FEB74A2E3.4B16AFF8EBBAA0AED44E86C4BA7E45C9D31BD2A3%2526ipbits%253D0%2526requiressl%253Dyes%2526clen%253D7639619%2526keepalive%253Dyes%2526lmt%253D1473408657872115%2526sparams%253Dclen%25252Cdur%25252Cei%25252Cgir%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Ckeepalive%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cpl%25252Crequiressl%25252Csource%25252Cexpire%2526initcwndbps%253D296250%2526key%253Dyt6%2526expire%253D1498780325%2526ms%253Dau%2526ei%253DRT5VWar9JsaXDM3nssAN%2526id%253Do-AGIEUgXiEzJ2QFrlqWk-vpRVajRz9RIJB2amomkR0JL0%2526pl%253D24%2526mv%253Dm%2526mt%253D1498758622%2526mn%253Dsn-4avf-cbpe%2526mm%253D31%2526source%253Dyoutube%2526gir%253Dyes%2526ip%253D69.57.233.153%2526itag%253D135%2526dur%253D136.669%2526mime%253Dvideo%25252Fmp4%2Cprojection_type%3D1%26type%3Dvideo%252Fwebm%253B%2Bcodecs%253D%2522vp9%2522%26lmt%3D1492997808133411%26bitrate%3D648638%26quality_label%3D480p%26xtags%3D%26fps%3D30%26size%3D854x480%26index%3D243-674%26clen%3D6550656%26itag%3D244%26init%3D0-242%26url%3Dhttps%253A%252F%252Fr1---sn-4avf-cbpe.googlevideo.com%252Fvideoplayback%253Fsignature%253D2E3D6AA3E05B460D137993D954BB6B7B167684CD.AC3375059CF80DF570F42A2AEAD148628C36B94E%2526ipbits%253D0%2526requiressl%253Dyes%2526clen%253D6550656%2526keepalive%253Dyes%2526lmt%253D1492997808133411%2526sparams%253Dclen%25252Cdur%25252Cei%25252Cgir%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Ckeepalive%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cpl%25252Crequiressl%25252Csource%25252Cexpire%2526initcwndbps%253D296250%2526key%253Dyt6%2526expire%253D1498780325%2526ms%253Dau%2526ei%253DRT5VWar9JsaXDM3nssAN%2526id%253Do-AGIEUgXiEzJ2QFrlqWk-vpRVajRz9RIJB2amomkR0JL0%2526pl%253D24%2526mv%253Dm%2526mt%253D1498758622%2526mn%253Dsn-4avf-cbpe%2526mm%253D31%2526source%253Dyoutube%2526gir%253Dyes%2526ip%253D69.57.233.153%2526itag%253D244%2526dur%253D136.636%2526mime%253Dvideo%25252Fwebm%2Cprojection_type%3D1%26type%3Dvideo%252Fmp4%253B%2Bcodecs%253D%2522avc1.4d401e%2522%26lmt%3D1473408657820066%26bitrate%3D321633%26quality_label%3D360p%26xtags%3D%26fps%3D30%26size%3D640x360%26index%3D713-1056%26clen%3D3752171%26itag%3D134%26init%3D0-712%26url%3Dhttps%253A%252F%252Fr1---sn-4avf-cbpe.googlevideo.com%252Fvideoplayback%253Fsignature%253D3E5A71CD46A73F108639382968A30CD7BEB228CF.72283801548935BF957F4882BE833135BFC4355C%2526ipbits%253D0%2526requiressl%253Dyes%2526clen%253D3752171%2526keepalive%253Dyes%2526lmt%253D1473408657820066%2526sparams%253Dclen%25252Cdur%25252Cei%25252Cgir%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Ckeepalive%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cpl%25252Crequiressl%25252Csource%25252Cexpire%2526initcwndbps%253D296250%2526key%253Dyt6%2526expire%253D1498780325%2526ms%253Dau%2526ei%253DRT5VWar9JsaXDM3nssAN%2526id%253Do-AGIEUgXiEzJ2QFrlqWk-vpRVajRz9RIJB2amomkR0JL0%2526pl%253D24%2526mv%253Dm%2526mt%253D1498758622%2526mn%253Dsn-4avf-cbpe%2526mm%253D31%2526source%253Dyoutube%2526gir%253Dyes%2526ip%253D69.57.233.153%2526itag%253D134%2526dur%253D136.669%2526mime%253Dvideo%25252Fmp4%2Cprojection_type%3D1%26type%3Dvideo%252Fwebm%253B%2Bcodecs%253D%2522vp9%2522%26lmt%3D1492997809608993%26bitrate%3D394419%26quality_label%3D360p%26xtags%3D%26fps%3D30%26size%3D640x360%26index%3D243-674%26clen%3D4168472%26itag%3D243%26init%3D0-242%26url%3Dhttps%253A%252F%252Fr1---sn-4avf-cbpe.googlevideo.com%252Fvideoplayback%253Fsignature%253D860FE032EEDDC051430D99004AD71507393E3881.280387E8073F9B599BD6C5B7D28420135E01D49C%2526ipbits%253D0%2526requiressl%253Dyes%2526clen%253D4168472%2526keepalive%253Dyes%2526lmt%253D1492997809608993%2526sparams%253Dclen%25252Cdur%25252Cei%25252Cgir%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Ckeepalive%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cpl%25252Crequiressl%25252Csource%25252Cexpire%2526initcwndbps%253D296250%2526key%253Dyt6%2526expire%253D1498780325%2526ms%253Dau%2526ei%253DRT5VWar9JsaXDM3nssAN%2526id%253Do-AGIEUgXiEzJ2QFrlqWk-vpRVajRz9RIJB2amomkR0JL0%2526pl%253D24%2526mv%253Dm%2526mt%253D1498758622%2526mn%253Dsn-4avf-cbpe%2526mm%253D31%2526source%253Dyoutube%2526gir%253Dyes%2526ip%253D69.57.233.153%2526itag%253D243%2526dur%253D136.636%2526mime%253Dvideo%25252Fwebm%2Cprojection_type%3D1%26type%3Dvideo%252Fmp4%253B%2Bcodecs%253D%2522avc1.4d4015%2522%26lmt%3D1473408657773043%26bitrate%3D247784%26quality_label%3D240p%26xtags%3D%26fps%3D30%26size%3D426x240%26index%3D713-1056%26clen%3D4103961%26itag%3D133%26init%3D0-712%26url%3Dhttps%253A%252F%252Fr1---sn-4avf-cbpe.googlevideo.com%252Fvideoplayback%253Fsignature%253D6C928F6BB9AA90FE13500CF25B89580571E20006.8874AA14E7B361104C90B0439E9EDB210A0A4EBC%2526ipbits%253D0%2526requiressl%253Dyes%2526clen%253D4103961%2526keepalive%253Dyes%2526lmt%253D1473408657773043%2526sparams%253Dclen%25252Cdur%25252Cei%25252Cgir%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Ckeepalive%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cpl%25252Crequiressl%25252Csource%25252Cexpire%2526initcwndbps%253D296250%2526key%253Dyt6%2526expire%253D1498780325%2526ms%253Dau%2526ei%253DRT5VWar9JsaXDM3nssAN%2526id%253Do-AGIEUgXiEzJ2QFrlqWk-vpRVajRz9RIJB2amomkR0JL0%2526pl%253D24%2526mv%253Dm%2526mt%253D1498758622%2526mn%253Dsn-4avf-cbpe%2526mm%253D31%2526source%253Dyoutube%2526gir%253Dyes%2526ip%253D69.57.233.153%2526itag%253D133%2526dur%253D136.669%2526mime%253Dvideo%25252Fmp4%2Cprojection_type%3D1%26type%3Dvideo%252Fwebm%253B%2Bcodecs%253D%2522vp9%2522%26lmt%3D1492997810607442%26bitrate%3D214890%26quality_label%3D240p%26xtags%3D%26fps%3D30%26size%3D426x240%26index%3D242-673%26clen%3D2351434%26itag%3D242%26init%3D0-241%26url%3Dhttps%253A%252F%252Fr1---sn-4avf-cbpe.googlevideo.com%252Fvideoplayback%253Fsignature%253D2CCB764B778C41A44E7EFE8988FE6E6F3BAB4351.E41B789209ED06C955A67EC5D401DD8B19ABA193%2526ipbits%253D0%2526requiressl%253Dyes%2526clen%253D2351434%2526keepalive%253Dyes%2526lmt%253D1492997810607442%2526sparams%253Dclen%25252Cdur%25252Cei%25252Cgir%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Ckeepalive%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cpl%25252Crequiressl%25252Csource%25252Cexpire%2526initcwndbps%253D296250%2526key%253Dyt6%2526expire%253D1498780325%2526ms%253Dau%2526ei%253DRT5VWar9JsaXDM3nssAN%2526id%253Do-AGIEUgXiEzJ2QFrlqWk-vpRVajRz9RIJB2amomkR0JL0%2526pl%253D24%2526mv%253Dm%2526mt%253D1498758622%2526mn%253Dsn-4avf-cbpe%2526mm%253D31%2526source%253Dyoutube%2526gir%253Dyes%2526ip%253D69.57.233.153%2526itag%253D242%2526dur%253D136.636%2526mime%253Dvideo%25252Fwebm%2Cprojection_type%3D1%26type%3Dvideo%252Fmp4%253B%2Bcodecs%253D%2522avc1.4d400c%2522%26lmt%3D1473408657773711%26bitrate%3D116865%26quality_label%3D144p%26xtags%3D%26fps%3D30%26size%3D256x144%26index%3D675-1018%26clen%3D1852248%26itag%3D160%26init%3D0-674%26url%3Dhttps%253A%252F%252Fr1---sn-4avf-cbpe.googlevideo.com%252Fvideoplayback%253Fsignature%253D23F05D88735A7CBA6257815F7FEFBF57E1FFCB27.C02E645DFA35AAE84C4BEFEB79102E164261C2BA%2526ipbits%253D0%2526requiressl%253Dyes%2526clen%253D1852248%2526keepalive%253Dyes%2526lmt%253D1473408657773711%2526sparams%253Dclen%25252Cdur%25252Cei%25252Cgir%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Ckeepalive%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cpl%25252Crequiressl%25252Csource%25252Cexpire%2526initcwndbps%253D296250%2526key%253Dyt6%2526expire%253D1498780325%2526ms%253Dau%2526ei%253DRT5VWar9JsaXDM3nssAN%2526id%253Do-AGIEUgXiEzJ2QFrlqWk-vpRVajRz9RIJB2amomkR0JL0%2526pl%253D24%2526mv%253Dm%2526mt%253D1498758622%2526mn%253Dsn-4avf-cbpe%2526mm%253D31%2526source%253Dyoutube%2526gir%253Dyes%2526ip%253D69.57.233.153%2526itag%253D160%2526dur%253D136.669%2526mime%253Dvideo%25252Fmp4%2Cprojection_type%3D1%26type%3Dvideo%252Fwebm%253B%2Bcodecs%253D%2522vp9%2522%26lmt%3D1492997809177420%26bitrate%3D111788%26quality_label%3D144p%26xtags%3D%26fps%3D30%26size%3D256x144%26index%3D242-673%26clen%3D1516912%26itag%3D278%26init%3D0-241%26url%3Dhttps%253A%252F%252Fr1---sn-4avf-cbpe.googlevideo.com%252Fvideoplayback%253Fsignature%253D3291CD104183EF789EE76A2DC15D5A95AC62B9BF.B604BD307DD9D3CC2E32D381C244988A93ED4C3F%2526ipbits%253D0%2526requiressl%253Dyes%2526clen%253D1516912%2526keepalive%253Dyes%2526lmt%253D1492997809177420%2526sparams%253Dclen%25252Cdur%25252Cei%25252Cgir%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Ckeepalive%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cpl%25252Crequiressl%25252Csource%25252Cexpire%2526initcwndbps%253D296250%2526key%253Dyt6%2526expire%253D1498780325%2526ms%253Dau%2526ei%253DRT5VWar9JsaXDM3nssAN%2526id%253Do-AGIEUgXiEzJ2QFrlqWk-vpRVajRz9RIJB2amomkR0JL0%2526pl%253D24%2526mv%253Dm%2526mt%253D1498758622%2526mn%253Dsn-4avf-cbpe%2526mm%253D31%2526source%253Dyoutube%2526gir%253Dyes%2526ip%253D69.57.233.153%2526itag%253D278%2526dur%253D136.636%2526mime%253Dvideo%25252Fwebm%2Cindex%3D592-791%26lmt%3D1473408644850312%26clen%3D2172089%26itag%3D140%26bitrate%3D127977%26xtags%3D%26projection_type%3D1%26init%3D0-591%26url%3Dhttps%253A%252F%252Fr1---sn-4avf-cbpe.googlevideo.com%252Fvideoplayback%253Fsignature%253D2AC953C3A5FFE3ECE5F3F5C70DFBADA2B2136D3F.71843DBFD9CA36ABC8F6B1428E0B076D3EB163C8%2526ipbits%253D0%2526requiressl%253Dyes%2526clen%253D2172089%2526keepalive%253Dyes%2526lmt%253D1473408644850312%2526sparams%253Dclen%25252Cdur%25252Cei%25252Cgir%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Ckeepalive%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cpl%25252Crequiressl%25252Csource%25252Cexpire%2526initcwndbps%253D296250%2526key%253Dyt6%2526expire%253D1498780325%2526ms%253Dau%2526ei%253DRT5VWar9JsaXDM3nssAN%2526id%253Do-AGIEUgXiEzJ2QFrlqWk-vpRVajRz9RIJB2amomkR0JL0%2526pl%253D24%2526mv%253Dm%2526mt%253D1498758622%2526mn%253Dsn-4avf-cbpe%2526mm%253D31%2526source%253Dyoutube%2526gir%253Dyes%2526ip%253D69.57.233.153%2526itag%253D140%2526dur%253D136.719%2526mime%253Daudio%25252Fmp4%26type%3Daudio%252Fmp4%253B%2Bcodecs%253D%2522mp4a.40.2%2522%2Cindex%3D4452-4686%26lmt%3D1492997352967849%26clen%3D2052162%26itag%3D171%26bitrate%3D131088%26xtags%3D%26projection_type%3D1%26init%3D0-4451%26url%3Dhttps%253A%252F%252Fr1---sn-4avf-cbpe.googlevideo.com%252Fvideoplayback%253Fsignature%253D322096EFDAF832112E28A8EA949C9AD5D6A87C0B.71C24196B21E63DE7626B6A812A881FA25D77712%2526ipbits%253D0%2526requiressl%253Dyes%2526clen%253D2052162%2526keepalive%253Dyes%2526lmt%253D1492997352967849%2526sparams%253Dclen%25252Cdur%25252Cei%25252Cgir%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Ckeepalive%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cpl%25252Crequiressl%25252Csource%25252Cexpire%2526initcwndbps%253D296250%2526key%253Dyt6%2526expire%253D1498780325%2526ms%253Dau%2526ei%253DRT5VWar9JsaXDM3nssAN%2526id%253Do-AGIEUgXiEzJ2QFrlqWk-vpRVajRz9RIJB2amomkR0JL0%2526pl%253D24%2526mv%253Dm%2526mt%253D1498758622%2526mn%253Dsn-4avf-cbpe%2526mm%253D31%2526source%253Dyoutube%2526gir%253Dyes%2526ip%253D69.57.233.153%2526itag%253D171%2526dur%253D136.660%2526mime%253Daudio%25252Fwebm%26type%3Daudio%252Fwebm%253B%2Bcodecs%253D%2522vorbis%2522%2Cindex%3D272-505%26lmt%3D1492997350332333%26clen%3D848264%26itag%3D249%26bitrate%3D57134%26xtags%3D%26projection_type%3D1%26init%3D0-271%26url%3Dhttps%253A%252F%252Fr1---sn-4avf-cbpe.googlevideo.com%252Fvideoplayback%253Fsignature%253D551A83A6E703256416F69296D16A132E9974A4DE.A0A397DB43613FE7290A930D7861D36C785DC498%2526ipbits%253D0%2526requiressl%253Dyes%2526clen%253D848264%2526keepalive%253Dyes%2526lmt%253D1492997350332333%2526sparams%253Dclen%25252Cdur%25252Cei%25252Cgir%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Ckeepalive%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cpl%25252Crequiressl%25252Csource%25252Cexpire%2526initcwndbps%253D296250%2526key%253Dyt6%2526expire%253D1498780325%2526ms%253Dau%2526ei%253DRT5VWar9JsaXDM3nssAN%2526id%253Do-AGIEUgXiEzJ2QFrlqWk-vpRVajRz9RIJB2amomkR0JL0%2526pl%253D24%2526mv%253Dm%2526mt%253D1498758622%2526mn%253Dsn-4avf-cbpe%2526mm%253D31%2526source%253Dyoutube%2526gir%253Dyes%2526ip%253D69.57.233.153%2526itag%253D249%2526dur%253D136.661%2526mime%253Daudio%25252Fwebm%26type%3Daudio%252Fwebm%253B%2Bcodecs%253D%2522opus%2522%2Cindex%3D272-506%26lmt%3D1492997351708246%26clen%3D1123513%26itag%3D250%26bitrate%3D75007%26xtags%3D%26projection_type%3D1%26init%3D0-271%26url%3Dhttps%253A%252F%252Fr1---sn-4avf-cbpe.googlevideo.com%252Fvideoplayback%253Fsignature%253D09833FE051EF05FF46DAF95E3B812F2C380FB95F.837E7C3F95A3F8A80931CC57D646DDEB0FBBAF5F%2526ipbits%253D0%2526requiressl%253Dyes%2526clen%253D1123513%2526keepalive%253Dyes%2526lmt%253D1492997351708246%2526sparams%253Dclen%25252Cdur%25252Cei%25252Cgir%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Ckeepalive%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cpl%25252Crequiressl%25252Csource%25252Cexpire%2526initcwndbps%253D296250%2526key%253Dyt6%2526expire%253D1498780325%2526ms%253Dau%2526ei%253DRT5VWar9JsaXDM3nssAN%2526id%253Do-AGIEUgXiEzJ2QFrlqWk-vpRVajRz9RIJB2amomkR0JL0%2526pl%253D24%2526mv%253Dm%2526mt%253D1498758622%2526mn%253Dsn-4avf-cbpe%2526mm%253D31%2526source%253Dyoutube%2526gir%253Dyes%2526ip%253D69.57.233.153%2526itag%253D250%2526dur%253D136.661%2526mime%253Daudio%25252Fwebm%26type%3Daudio%252Fwebm%253B%2Bcodecs%253D%2522opus%2522%2Cindex%3D272-506%26lmt%3D1492997353145689%26clen%3D2225740%26itag%3D251%26bitrate%3D147255%26xtags%3D%26projection_type%3D1%26init%3D0-271%26url%3Dhttps%253A%252F%252Fr1---sn-4avf-cbpe.googlevideo.com%252Fvideoplayback%253Fsignature%253D69AE2362F9D6B4DE764D075B9BE6DD801F3ED2C0.01E22E26E1B023F0A29662EB80A0EA3B509AC600%2526ipbits%253D0%2526requiressl%253Dyes%2526clen%253D2225740%2526keepalive%253Dyes%2526lmt%253D1492997353145689%2526sparams%253Dclen%25252Cdur%25252Cei%25252Cgir%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Ckeepalive%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cpl%25252Crequiressl%25252Csource%25252Cexpire%2526initcwndbps%253D296250%2526key%253Dyt6%2526expire%253D1498780325%2526ms%253Dau%2526ei%253DRT5VWar9JsaXDM3nssAN%2526id%253Do-AGIEUgXiEzJ2QFrlqWk-vpRVajRz9RIJB2amomkR0JL0%2526pl%253D24%2526mv%253Dm%2526mt%253D1498758622%2526mn%253Dsn-4avf-cbpe%2526mm%253D31%2526source%253Dyoutube%2526gir%253Dyes%2526ip%253D69.57.233.153%2526itag%253D251%2526dur%253D136.661%2526mime%253Daudio%25252Fwebm%26type%3Daudio%252Fwebm%253B%2Bcodecs%253D%2522opus%2522&xhr_apiary_host=youtubei.youtube.com&allow_embed=1&fflags=html5_adjust_effective_request_size%3Dtrue%26html5_local_max_byterate_lookahead%3D15%26sidebar_renderers%3Dtrue%26ad_video_end_renderer_duration_milliseconds%3D7000%26disable_reporting_html5_no_vast_ads_as_error%3Dtrue%26html5_connect_timeout_secs%3D7.0%26yto_enable_ytr_promo_refresh_assets%3Dtrue%26player_destroy_old_version%3Dtrue%26html5_throttle_rate%3D0.0%26html5_msi_error_fallback%3Dtrue%26html5_subsegment_readahead_target_buffer_health_secs%3D0.5%26ios_enable_mixin_accessibility_custom_actions%3Dtrue%26html5_serverside_biscotti_id_wait_ms%3D1000%26mweb_pu_android_chrome_54_above%3Dtrue%26forced_brand_precap_duration_ms%3D2000%26html5_throttle_burst_secs%3D15.0%26html5_use_mediastream_timestamp%3Dtrue%26html5_get_video_info_promiseajax%3Dtrue%26live_readahead_seconds_multiplier%3D0.8%26html5_live_4k_more_buffer%3Dtrue%26sdk_ad_prefetch_time_seconds%3D-1%26enable_live_state_auth%3Dtrue%26html5_live_pin_to_tail%3Dtrue%26html5_min_upgrade_health%3D0%26html5_get_video_info_timeout_ms%3D0%26mweb_blacklist_progressive_chrome_mobile%3Dtrue%26html5_pause_manifest_ended%3Dtrue%26html5_variability_discount%3D0.5%26legacy_autoplay_flag%3Dtrue%26signed_out_notification_settings%3Dtrue%26html5_vp9_live_whitelist%3Dfalse%26player_interaction_logging%3Dtrue%26html5_seeks_are_not_rebuffers%3Dtrue%26disable_client_side_midroll_freq_capping%3Dtrue%26html5_stale_dash_manifest_retry_factor%3D1.0%26disable_max_adsense_channel_limit%3Dtrue%26watermark_src%3D%26kids_enable_post_onboarding_red_flow%3Dtrue%26html5_default_quality_cap%3D0%26lugash_header_by_service%3Dtrue%26kids_enable_block_servlet%3Dtrue%26desktop_cleanup_companion_on_instream_begin%3Dtrue%26lock_fullscreen%3Dfalse%26disable_new_pause_state3%3Dtrue%26html5_chrome_ambisonics_opus%3Dtrue%26html5_trust_platform_bitrate_limits%3Dtrue%26html5_subsegment_readahead_tail_margin_secs%3D0.2%26use_push_for_desktop_live_chat%3Dtrue%26mweb_autonav_paddles%3Dtrue%26large_play_button_src%3D%26persist_text_on_preview_button%3Dtrue%26enable_local_channel%3Dtrue%26sdk_wrapper_levels_allowed%3D0%26uniplayer_dbp%3Dtrue%26html5_repredict_misses%3D5%26android_enable_thumbnail_overlay_side_panel%3Dfalse%26html5_nnr_downgrade_count%3D4%26html5_min_readbehind_secs%3D0%26enable_plus_page_pts%3Dtrue%26fixed_padding_skip_button%3Dtrue%26html5_min_startup_smooth_target%3D10.0%26html5_retry_media_element_errors_delay%3D0%26mpu_visible_threshold_count%3D2%26segment_volume_reporting%3Dtrue%26html5_background_cap_idle_secs%3D60%26fix_api_stats_ads_companion_backfill_break_type%3Dtrue%26disable_search_mpu%3Dtrue%26enable_pla_desktop_shelf%3Dtrue%26html5_new_preloading%3Dtrue%26lugash_header_warmup%3Dtrue%26html5_enable_embedded_player_visibility_signals%3Dtrue%26max_resolution_for_white_noise%3D360%26html5_preload_size_excludes_metadata%3Dtrue%26disable_indisplay_adunit_on_embedded%3Dtrue%26ad_duration_threshold_for_showing_endcap_seconds%3D15%26html5_idle_preload_secs%3D1%26new_promo_page%3Dtrue%26html5_reduce_startup_rebuffers%3Dtrue%26html5_clearance_fix%3Dtrue%26live_fresca_v2%3Dtrue%26ios_disable_notification_preprompt%3Dtrue%26chrome_promo_enabled%3Dtrue%26kids_enable_privacy_notice%3Dtrue%26show_thumbnail_on_standard%3Dtrue%26channel_about_page_gadgets%3Dtrue%26variable_load_timeout_ms%3D0%26kids_enable_server_side_assets%3Dtrue%26mweb_enable_skippables_on_iphone%3Dtrue%26html5_report_conn%3Dtrue%26enable_playlist_multi_season%3Dtrue%26mobile_disable_ad_mob_on_home%3Dtrue%26dynamic_ad_break_seek_threshold_sec%3D0%26yto_enable_unlimited_landing_page_yto_features%3Dtrue%26logo_src%3D%26request_mpu_on_unfilled_ad_break%3Dtrue%26flex_theater_mode%3Dtrue%26html5_allowable_liveness_drift_chunks%3D2%26html5_repredict_interval_secs%3D0.0%26use_new_skip_icon%3Dtrue%26postroll_notify_time_seconds%3D5%26website_actions_throttle_percentage%3D1.0%26html5_min_secs_between_format_selections%3D8.0%26html5_tight_max_buffer_allowed_impaired_time%3D0.0%26ios_notifications_disabled_subs_tab_promoted_item_promo%3Dtrue%26html5_max_readahead_bandwidth_cap%3D0%26yt_unlimited_pts_skip_ads_promo_desktop_always%3Dtrue%26html5_subsegment_readahead_progress_timeout_fraction%3D0.8%26html5_min_vss_watchtime_to_cut_secs_redux%3D0.0%26html5_timeupdate_readystate_check%3Dtrue%26html5_observed_downgrade_prop%3D0.0%26html5_min_vss_watchtime_to_cut_secs%3D0.0%26html5_live_disable_dg_pacing%3Dtrue%26report_promotes_terrorism_desktop%3Dtrue%26html5_progressive_signature_reload%3Dtrue%26html5_max_buffer_health_for_downgrade%3D15%26report_promotes_terrorism_ios%3Dtrue%26stop_using_ima_sdk_gpt_request_activity%3Dtrue%26logo_gaming_src%3D%26html5_tight_max_buffer_allowed_bandwidth_stddevs%3D0.0%26html5_disable_audio_slicing%3Dtrue%26html5_request_size_min_secs%3D0.0%26use_new_style%3Dtrue%26html5_always_enable_timeouts%3Dtrue%26mysubs_highlight_shelf_counterfactual%3Dfalse%26html5_deadzone_multiplier%3D1.1%26enable_prefetch_for_postrolls%3Dtrue%26enable_offer_restricts_for_watch_page_offers%3Dtrue%26android_buy_bucket_buy_flows%3Dtrue%26android_native_live_enablement%3Dtrue%26html5_elbow_tracking_tweaks%3Dtrue%26enable_bulleit_lidar_integration%3Dtrue%26html5_strip_emsg%3Dtrue%26html5_disable_urgent_upgrade_for_quality%3Dtrue%26playready_on_borg%3Dtrue%26enable_red_carpet_p13n_shelves%3Dtrue%26yto_feature_hub_channel%3Dfalse%26html5_request_sizing_multiplier%3D0.8%26website_actions_use_companion_image_as_banner%3Dtrue%26html5_post_interrupt_readahead%3D20%26kids_asset_theme%3Dserver_side_assets%26disable_trusted_ad_domains_player_check%3Dtrue%26dynamic_ad_break_pause_threshold_sec%3D0%26web_player_api_logging_fraction%3D0.01%26polymer_report_missing_web_navigation_endpoint%3Dfalse%26html5_use_adaptive_live_readahead%3Dtrue%26html5_subsegment_readahead_timeout_secs%3D2.0%26html5_deferred_source_buffer_creation%3Dtrue%26html5_no_clear_on_quota_exceeded%3Dtrue%26midroll_notify_time_seconds%3D5%26html5_playing_event_buffer_underrun%3Dtrue%26html5_min_buffer_to_resume%3D6%26html5_max_av_sync_drift%3D50%26html5_background_quality_cap%3D360%26vss_dni_delayping%3D0%26html5_variability_full_discount_thresh%3D3.0%26youtubei_for_web%3Dtrue%26enable_ccs_buy_flow_for_chirp%3Dtrue%26interaction_log_delayed_event_batch_size%3D200%26html5_check_for_reseek%3Dtrue%26fix_gpt_pos_params%3Dtrue%26report_promotes_terrorism_android%3Dtrue%26html5_max_buffer_duration%3D0%26html5_spherical_bicubic_mode%3D0%26large_play_button_hover_src%3D%26html5_aspect_from_adaptive_format%3Dtrue%26kids_enable_terms_servlet%3Dtrue%26html5_min_readbehind_cap_secs%3D0%26html5_suspended_state%3Dtrue%26signed_out_notifications_inbox%3Dtrue%26yto_enable_watch_offer_module%3Dtrue%26html5_disable_non_contiguous%3Dtrue%26king_crimson_player%3Dfalse%26autoplay_time%3D8000%26html5_variability_no_discount_thresh%3D1.0%26html5_reseek_on_infinite_buffer%3Dtrue%26html5_suspend_manifest_on_pause%3Dtrue%26html5_always_reload_on_403%3Dtrue%26mweb_muted_autoplay_animation%3Dnone%26html5_bandwidth_window_size%3D0%26html5_max_vss_watchtime_ratio%3D0.0%26show_countdown_on_bumper%3Dtrue%26dash_manifest_version%3D5%26king_crimson_player_redux%3Dtrue%26web_player_flash_fallback_killswitch%3Dtrue%26doubleclick_gpt_retagging%3Dtrue%26pla_shelf_hovercard%3Dtrue%26send_html5_api_stats_ads_abandon%3Dtrue%26use_fast_fade_in_0s%3Dtrue%26live_chunk_readahead%3D3%26html5_ad_no_buffer_abort_after_skippable%3Dtrue%26html5_long_term_bandwidth_window_size%3D0&vmap=%3C%3Fxml+version%3D%221.0%22+encoding%3D%22UTF-8%22%3F%3E%3Cvmap%3AVMAP+xmlns%3Avmap%3D%22http%3A%2F%2Fwww.iab.net%2Fvideosuite%2Fvmap%22+xmlns%3Ayt%3D%22http%3A%2F%2Fyoutube.com%22+version%3D%221.0%22%3E%3C%2Fvmap%3AVMAP%3E&account_playback_token=QUFFLUhqbmxKUDJpa1lvTDdUVkQydllPaWhGQlVVZmlPQXxBQ3Jtc0treDBKRXpWMVpqSGM3bE1jb0lzUk5mdzIwcVBBNE02VTFzZG5icXRDX0hnbzZWNUdPOWlsVWJLNExSaTFVTi1QMV8tR0N3SzhrelFpTVd4aThrX2w1VGhFLV84ZUR4Z2hWTWtMUFhudWpFLVpFTHBmZw%3D%3D&uid=E_M8A5yxnLfW0KghEeajjw&ldpj=-36&iv_load_policy=1&c=WEB&storyboard_spec=https%3A%2F%2Fi9.ytimg.com%2Fsb%2FQ6dsRpVyyWs%2Fstoryboard3_L%24L%2F%24N.jpg%7C48%2327%23100%2310%2310%230%23default%23rs%24AOn4CLCi9VgkBfNuDJox-C1CfHei6GjKXg%7C80%2345%2370%2310%2310%232000%23M%24M%23rs%24AOn4CLAH5-M7PMEQdzAuDvfD1l3evtAYVQ%7C160%2390%2370%235%235%232000%23M%24M%23rs%24AOn4CLC0UXdXIJ_VAkCkSqy4CxzTBEj5XA&avg_rating=4.09499263763&iv_invideo_url=https%3A%2F%2Fwww.youtube.com%2Fannotations_invideo%3Fcap_hist%3D1%26video_id%3DQ6dsRpVyyWs%26client%3D1%26ei%3DRT5VWar9JsaXDM3nssAN&ssl=1&vid=Q6dsRpVyyWs&csn=RT5VWar9JsaXDM3nssAN&apiary_host_firstparty=&keywords=Apple×tamp=1498758725&oid=ffsQQyXI443h2PgMzMjp-g&relative_loudness=-0.288999557495&url_encoded_fmt_stream_map=quality%3Dhd720%26itag%3D22%26url%3Dhttps%253A%252F%252Fr1---sn-4avf-cbpe.googlevideo.com%252Fvideoplayback%253Fexpire%253D1498780325%2526ms%253Dau%2526ei%253DRT5VWar9JsaXDM3nssAN%2526id%253Do-AGIEUgXiEzJ2QFrlqWk-vpRVajRz9RIJB2amomkR0JL0%2526pl%253D24%2526mv%253Dm%2526mt%253D1498758622%2526mn%253Dsn-4avf-cbpe%2526mm%253D31%2526source%253Dyoutube%2526ratebypass%253Dyes%2526ipbits%253D0%2526ip%253D69.57.233.153%2526requiressl%253Dyes%2526lmt%253D1473408787496138%2526itag%253D22%2526signature%253D99CA14C67BEC8C9B5C4B20D3427A1D596CAA6787.21894A02B6E190B6ECFB44BDBAE8D7D5C0FAA602%2526sparams%253Ddur%25252Cei%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cpl%25252Cratebypass%25252Crequiressl%25252Csource%25252Cexpire%2526dur%253D136.719%2526mime%253Dvideo%25252Fmp4%2526initcwndbps%253D296250%2526key%253Dyt6%26type%3Dvideo%252Fmp4%253B%2Bcodecs%253D%2522avc1.64001F%252C%2Bmp4a.40.2%2522%2Cquality%3Dmedium%26itag%3D43%26url%3Dhttps%253A%252F%252Fr1---sn-4avf-cbpe.googlevideo.com%252Fvideoplayback%253Fsignature%253D140B197C69F247B50D01A8D8779C2186ED42AACF.64C453C18DE20B4B6105F8161F6E1A0413974F14%2526ipbits%253D0%2526requiressl%253Dyes%2526clen%253D10148756%2526lmt%253D1473279354614381%2526sparams%253Dclen%25252Cdur%25252Cei%25252Cgir%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cpl%25252Cratebypass%25252Crequiressl%25252Csource%25252Cexpire%2526initcwndbps%253D296250%2526key%253Dyt6%2526expire%253D1498780325%2526ms%253Dau%2526ei%253DRT5VWar9JsaXDM3nssAN%2526id%253Do-AGIEUgXiEzJ2QFrlqWk-vpRVajRz9RIJB2amomkR0JL0%2526pl%253D24%2526mv%253Dm%2526mt%253D1498758622%2526mn%253Dsn-4avf-cbpe%2526mm%253D31%2526source%253Dyoutube%2526ratebypass%253Dyes%2526gir%253Dyes%2526ip%253D69.57.233.153%2526itag%253D43%2526dur%253D0.000%2526mime%253Dvideo%25252Fwebm%26type%3Dvideo%252Fwebm%253B%2Bcodecs%253D%2522vp8.0%252C%2Bvorbis%2522%2Cquality%3Dmedium%26itag%3D18%26url%3Dhttps%253A%252F%252Fr1---sn-4avf-cbpe.googlevideo.com%252Fvideoplayback%253Fsignature%253D38A507B90D754CF5BC92F540C90AB8FB41E9868B.20F0D9815150D1C398AB4B9FF39897268002399A%2526ipbits%253D0%2526requiressl%253Dyes%2526clen%253D6616928%2526lmt%253D1473408658970185%2526sparams%253Dclen%25252Cdur%25252Cei%25252Cgir%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cpl%25252Cratebypass%25252Crequiressl%25252Csource%25252Cexpire%2526initcwndbps%253D296250%2526key%253Dyt6%2526expire%253D1498780325%2526ms%253Dau%2526ei%253DRT5VWar9JsaXDM3nssAN%2526id%253Do-AGIEUgXiEzJ2QFrlqWk-vpRVajRz9RIJB2amomkR0JL0%2526pl%253D24%2526mv%253Dm%2526mt%253D1498758622%2526mn%253Dsn-4avf-cbpe%2526mm%253D31%2526source%253Dyoutube%2526ratebypass%253Dyes%2526gir%253Dyes%2526ip%253D69.57.233.153%2526itag%253D18%2526dur%253D136.719%2526mime%253Dvideo%25252Fmp4%26type%3Dvideo%252Fmp4%253B%2Bcodecs%253D%2522avc1.42001E%252C%2Bmp4a.40.2%2522%2Cquality%3Dsmall%26itag%3D36%26url%3Dhttps%253A%252F%252Fr1---sn-4avf-cbpe.googlevideo.com%252Fvideoplayback%253Fsignature%253D70BE415CC8548F0E880040745DCEA4FC55651BBA.9D5011654A89A8CDDCC8D87AD7B8493EFCE99088%2526ipbits%253D0%2526requiressl%253Dyes%2526clen%253D3904749%2526lmt%253D1473273458311304%2526sparams%253Dclen%25252Cdur%25252Cei%25252Cgir%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cpl%25252Crequiressl%25252Csource%25252Cexpire%2526initcwndbps%253D296250%2526key%253Dyt6%2526expire%253D1498780325%2526ms%253Dau%2526ei%253DRT5VWar9JsaXDM3nssAN%2526id%253Do-AGIEUgXiEzJ2QFrlqWk-vpRVajRz9RIJB2amomkR0JL0%2526pl%253D24%2526mv%253Dm%2526mt%253D1498758622%2526mn%253Dsn-4avf-cbpe%2526mm%253D31%2526source%253Dyoutube%2526gir%253Dyes%2526ip%253D69.57.233.153%2526itag%253D36%2526dur%253D136.765%2526mime%253Dvideo%25252F3gpp%26type%3Dvideo%252F3gpp%253B%2Bcodecs%253D%2522mp4v.20.3%252C%2Bmp4a.40.2%2522%2Cquality%3Dsmall%26itag%3D17%26url%3Dhttps%253A%252F%252Fr1---sn-4avf-cbpe.googlevideo.com%252Fvideoplayback%253Fsignature%253DC5CC2C701825B0D034712BA47F0AD707B8D4E88B.9F5162B70B0BACE6A7C7A47385E1253B0EFB0BEF%2526ipbits%253D0%2526requiressl%253Dyes%2526clen%253D1407504%2526lmt%253D1473273454810307%2526sparams%253Dclen%25252Cdur%25252Cei%25252Cgir%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cpl%25252Crequiressl%25252Csource%25252Cexpire%2526initcwndbps%253D296250%2526key%253Dyt6%2526expire%253D1498780325%2526ms%253Dau%2526ei%253DRT5VWar9JsaXDM3nssAN%2526id%253Do-AGIEUgXiEzJ2QFrlqWk-vpRVajRz9RIJB2amomkR0JL0%2526pl%253D24%2526mv%253Dm%2526mt%253D1498758622%2526mn%253Dsn-4avf-cbpe%2526mm%253D31%2526source%253Dyoutube%2526gir%253Dyes%2526ip%253D69.57.233.153%2526itag%253D17%2526dur%253D136.765%2526mime%253Dvideo%25252F3gpp%26type%3Dvideo%252F3gpp%253B%2Bcodecs%253D%2522mp4v.20.3%252C%2Bmp4a.40.2%2522&loudness=-21.2889995575&thumbnail_url=https%3A%2F%2Fi.ytimg.com%2Fvi%2FQ6dsRpVyyWs%2Fdefault.jpg&player_error_log_fraction=1.0&eventid=RT5VWar9JsaXDM3nssAN&innertube_context_client_version=1.20170625&plid=AAVTHPVzge-xqtLt&fexp=9422596%2C9431012%2C9434046%2C9434289%2C9446054%2C9446364%2C9449243%2C9453897%2C9455776%2C9457141%2C9460072%2C9463594%2C9465813%2C9466793%2C9466795%2C9466797%2C9467217%2C9468797%2C9468799%2C9468805%2C9477080%2C9480475%2C9480503&iv_allow_in_place_switch=1&itct=CAEQu2kiEwjqs8irz-PUAhXGCwMKHc2zDNgo6NQB&video_id=Q6dsRpVyyWs&innertube_api_version=v1&status=ok&is_listed=1&ptchn=E_M8A5yxnLfW0KghEeajjw&remarketing_url=https%3A%2F%2Fwww.youtube.com%2Fpagead%2Fviewthroughconversion%2F962985656%2F%3Fbackend%3Dinnertube%26cname%3D1%26cver%3D1_20170625%26foc_id%3DE_M8A5yxnLfW0KghEeajjw%26label%3Dfollowon_view%26ptype%3Dno_rmkt&ppv_remarketing_url=https%3A%2F%2Fwww.googleadservices.com%2Fpagead%2Fconversion%2F971134070%2F%3Fbackend%3Dinnertube%26cname%3D1%26cver%3D1_20170625%26data%3Dbackend%253Dinnertube%253Bcname%253D1%253Bcver%253D1_20170625%253Bdactive%253DNone%253Bdynx_itemid%253DQ6dsRpVyyWs%253Bptype%253Dppv%26label%3DiuZUCLmC72YQ9qiJzwM%26ptype%3Dppv&csi_page_type=embed&focEnabled=1&pltype=content&view_count=24456252&cr=US&innertube_api_key=AIzaSyAO_FJ2SlqU8Q4STEHLGCilw_Y9_11qcW8&cl=160466596&player_response=%7B%22captions%22%3A%7B%22playerCaptionsTracklistRenderer%22%3A%7B%22captionTracks%22%3A%5B%7B%22baseUrl%22%3A%22https%3A%2F%2Fwww.youtube.com%2Fapi%2Ftimedtext%3Fexpire%3D1498783925%5Cu0026hl%3Den_US%5Cu0026signature%3DD8E0B910E8957657D16973A2463840CA8FD08BDE.ECFDD940217639DD2A8AFE95329B05605E75DE00%5Cu0026v%3DQ6dsRpVyyWs%5Cu0026sparams%3Dasr_langs%252Ccaps%252Cv%252Cexpire%5Cu0026caps%3Dasr%5Cu0026key%3Dyttt1%5Cu0026asr_langs%3Dpt%252Cen%252Ces%252Cnl%252Cja%252Cfr%252Cde%252Cit%252Cko%252Cru%5Cu0026kind%3Dasr%5Cu0026lang%3Den%22%2C%22name%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22English+%28auto-generated%29%22%7D%5D%7D%2C%22vssId%22%3A%22a.en%22%2C%22languageCode%22%3A%22en%22%2C%22kind%22%3A%22asr%22%2C%22isTranslatable%22%3Atrue%7D%2C%7B%22baseUrl%22%3A%22https%3A%2F%2Fwww.youtube.com%2Fapi%2Ftimedtext%3Fexpire%3D1498783925%5Cu0026hl%3Den_US%5Cu0026signature%3DD8E0B910E8957657D16973A2463840CA8FD08BDE.ECFDD940217639DD2A8AFE95329B05605E75DE00%5Cu0026v%3DQ6dsRpVyyWs%5Cu0026sparams%3Dasr_langs%252Ccaps%252Cv%252Cexpire%5Cu0026caps%3Dasr%5Cu0026key%3Dyttt1%5Cu0026asr_langs%3Dpt%252Cen%252Ces%252Cnl%252Cja%252Cfr%252Cde%252Cit%252Cko%252Cru%5Cu0026lang%3Den%22%2C%22name%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22English%22%7D%5D%7D%2C%22vssId%22%3A%22.en%22%2C%22languageCode%22%3A%22en%22%2C%22isTranslatable%22%3Atrue%7D%5D%2C%22audioTracks%22%3A%5B%7B%22captionTrackIndices%22%3A%5B1%2C0%5D%2C%22defaultCaptionTrackIndex%22%3A1%2C%22visibility%22%3A%22UNKNOWN%22%2C%22hasDefaultTrack%22%3Atrue%7D%5D%2C%22translationLanguages%22%3A%5B%7B%22languageCode%22%3A%22af%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Afrikaans%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22sq%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Albanian%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22am%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Amharic%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22ar%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Arabic%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22hy%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Armenian%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22az%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Azerbaijani%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22bn%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Bangla%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22eu%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Basque%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22be%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Belarusian%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22bs%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Bosnian%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22bg%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Bulgarian%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22my%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Burmese%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22ca%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Catalan%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22ceb%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Cebuano%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22zh-Hans%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Chinese+%28Simplified%29%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22zh-Hant%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Chinese+%28Traditional%29%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22co%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Corsican%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22hr%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Croatian%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22cs%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Czech%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22da%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Danish%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22nl%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Dutch%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22en%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22English%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22eo%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Esperanto%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22et%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Estonian%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22fil%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Filipino%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22fi%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Finnish%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22fr%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22French%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22gl%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Galician%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22ka%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Georgian%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22de%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22German%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22el%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Greek%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22gu%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Gujarati%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22ht%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Haitian+Creole%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22ha%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Hausa%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22haw%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Hawaiian%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22iw%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Hebrew%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22hi%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Hindi%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22hmn%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Hmong%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22hu%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Hungarian%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22is%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Icelandic%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22ig%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Igbo%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22id%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Indonesian%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22ga%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Irish%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22it%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Italian%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22ja%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Japanese%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22jv%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Javanese%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22kn%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Kannada%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22kk%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Kazakh%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22km%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Khmer%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22ko%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Korean%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22ku%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Kurdish%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22ky%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Kyrgyz%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22lo%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Lao%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22la%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Latin%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22lv%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Latvian%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22lt%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Lithuanian%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22lb%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Luxembourgish%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22mk%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Macedonian%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22mg%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Malagasy%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22ms%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Malay%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22ml%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Malayalam%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22mt%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Maltese%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22mi%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Maori%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22mr%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Marathi%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22mn%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Mongolian%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22ne%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Nepali%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22no%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Norwegian%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22ny%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Nyanja%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22ps%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Pashto%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22fa%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Persian%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22pl%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Polish%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22pt%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Portuguese%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22pa%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Punjabi%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22ro%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Romanian%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22ru%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Russian%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22sm%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Samoan%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22gd%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Scottish+Gaelic%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22sr%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Serbian%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22sn%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Shona%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22sd%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Sindhi%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22si%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Sinhala%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22sk%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Slovak%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22sl%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Slovenian%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22so%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Somali%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22st%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Southern+Sotho%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22es%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Spanish%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22su%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Sundanese%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22sw%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Swahili%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22sv%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Swedish%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22tg%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Tajik%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22ta%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Tamil%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22te%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Telugu%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22th%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Thai%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22tr%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Turkish%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22uk%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Ukrainian%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22ur%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Urdu%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22uz%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Uzbek%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22vi%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Vietnamese%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22cy%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Welsh%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22fy%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Western+Frisian%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22xh%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Xhosa%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22yi%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Yiddish%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22yo%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Yoruba%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22zu%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Zulu%22%7D%5D%7D%7D%5D%2C%22defaultAudioTrackIndex%22%3A0%7D%7D%2C%22videoDetails%22%3A%7B%22thumbnail%22%3A%7B%22thumbnails%22%3A%5B%7B%22url%22%3A%22https%3A%2F%2Fi.ytimg.com%2Fvi%2FQ6dsRpVyyWs%2Fhqdefault.jpg%3Fsqp%3D-oaymwEWCKgBEF5IWvKriqkDCQgBFQAAiEIYAQ%3D%3D%5Cu0026rs%3DAOn4CLDJyEVaGbKLVmiuelPk0Me3E6XopQ%22%2C%22width%22%3A168%2C%22height%22%3A94%7D%2C%7B%22url%22%3A%22https%3A%2F%2Fi.ytimg.com%2Fvi%2FQ6dsRpVyyWs%2Fhqdefault.jpg%3Fsqp%3D-oaymwEWCMQBEG5IWvKriqkDCQgBFQAAiEIYAQ%3D%3D%5Cu0026rs%3DAOn4CLB3bQrKH-o0TiyO-FOxSQx3ltxbyg%22%2C%22width%22%3A196%2C%22height%22%3A110%7D%2C%7B%22url%22%3A%22https%3A%2F%2Fi.ytimg.com%2Fvi%2FQ6dsRpVyyWs%2Fhqdefault.jpg%3Fsqp%3D-oaymwEXCPYBEIoBSFryq4qpAwkIARUAAIhCGAE%3D%5Cu0026rs%3DAOn4CLCIN3R3GoSR3JIi3W7eilEdoaXK-A%22%2C%22width%22%3A246%2C%22height%22%3A138%7D%2C%7B%22url%22%3A%22https%3A%2F%2Fi.ytimg.com%2Fvi%2FQ6dsRpVyyWs%2Fhqdefault.jpg%3Fsqp%3D-oaymwEXCNACELwBSFryq4qpAwkIARUAAIhCGAE%3D%5Cu0026rs%3DAOn4CLDoibNJXCR7tZMQkmop35iA_bTB_A%22%2C%22width%22%3A336%2C%22height%22%3A188%7D%5D%7D%7D%2C%22adSafetyReason%22%3A%7B%22isFocEnabled%22%3Atrue%7D%7D&allow_ratings=1&ptk=Apple%252Bvid&of=NeSPT9zeUO7XnGdOGDj13w&host_language=en&probe_url=https%3A%2F%2Fr4---sn-q4fl6ney.googlevideo.com%2Fvideogoodput%3Fid%3Do-ACPbIQ6DH5jOaLgPL-mVx7vdsmOnpCSd6-1NLEtI-KhE%26source%3Dgoodput%26range%3D0-4999%26expire%3D1498762325%26ip%3D69.57.233.153%26ms%3Dpm%26mm%3D35%26pl%3D24%26nh%3DIgpwcjA0LmRmdzA2Kg0yMDcuODYuMjA4LjM3%26sparams%3Did%2Csource%2Crange%2Cexpire%2Cip%2Cms%2Cmm%2Cpl%2Cnh%26signature%3D2D2F8BC8BD0E76291A32C027E606C0DC7D69922A.641CE57D94DAA8E3F740AC4AE73D41B6C13E9D23%26key%3Dcms1&apiary_host=&iv3_module=1", "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=\"36,35,34\"", - "Set-Cookie" : "YSC=mAUks2IAj0s; path=\/; domain=.youtube.com; httponly", + "Alt-Svc" : "quic=\":443\"; ma=2592000; v=\"39,38,37,36,35\"", + "Set-Cookie" : "YSC=D5K3ktJWqxY; path=\/; domain=.youtube.com; httponly, VISITOR_INFO1_LIVE=1euc1alRz9E; path=\/; domain=.youtube.com; expires=Wed, 28-Feb-2018 05:45:05 GMT; httponly", "Server" : "YouTubeFrontEnd", "Content-Encoding" : "gzip", "X-XSS-Protection" : "1; mode=block; report=https:\/\/www.google.com\/appserve\/security-bugs\/log\/youtube", "Expires" : "Tue, 27 Apr 1971 19:44:06 EST", "Transfer-Encoding" : "Identity", "Cache-Control" : "no-store", - "Date" : "Mon, 05 Dec 2016 14:23:47 GMT", + "Date" : "Thu, 29 Jun 2017 17:52:05 GMT", "Strict-Transport-Security" : "max-age=31536000", "X-Content-Type-Options" : "nosniff", "X-Frame-Options" : "SAMEORIGIN" From 8959fe6f2ff8358d6e769d630358ebf9a7c9121b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sone=C3=A9=20John?= Date: Thu, 29 Jun 2017 14:09:26 -0400 Subject: [PATCH 14/52] Update testVideoWithUndeterminedCaptionLanguageCode New JSON file based on latest changes --- ...stVideoWithUndeterminedCaptionLanguageCode.json | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/XCDYouTubeKit Tests/Cassettes/XCDYouTubeClientTestCase/testVideoWithUndeterminedCaptionLanguageCode.json b/XCDYouTubeKit Tests/Cassettes/XCDYouTubeClientTestCase/testVideoWithUndeterminedCaptionLanguageCode.json index bd58a693d..a5f2aefc5 100644 --- a/XCDYouTubeKit Tests/Cassettes/XCDYouTubeClientTestCase/testVideoWithUndeterminedCaptionLanguageCode.json +++ b/XCDYouTubeKit Tests/Cassettes/XCDYouTubeClientTestCase/testVideoWithUndeterminedCaptionLanguageCode.json @@ -1,16 +1,16 @@ [ { - "body" : "cr=US&status=ok&is_listed=1&remarketing_url=https%3A%2F%2Fgoogleads.g.doubleclick.net%2Fpagead%2Fviewthroughconversion%2F962985656%2F%3Fbackend%3Dinnertube%26cname%3D1%26cver%3D1_20161130%26data%3Dbackend%253Dinnertube%253Bcname%253D1%253Bcver%253D1_20161130%253Bm%253D1%253Bptype%253Dview%253Bsrr%253Dn%253Btype%253Dview%253Butuid%253DVp3nfGRxmMadNDuVbJSk8A%253Butvid%253DRgKAFK5djSk%253Bw%253D1%26foc_id%3DVp3nfGRxmMadNDuVbJSk8A%26label%3Dfollowon_view%26ptype%3Dview%26srr%3Dn&gapi_hint_params=m%3B%2F_%2Fscs%2Fabc-static%2F_%2Fjs%2Fk%3Dgapi.gapi.en.U_ZjamIixkk.O%2Fm%3D__features__%2Frt%3Dj%2Fd%3D1%2Frs%3DAHpOoo-vbowTsdJgxjMinuRjWcqUL15H1g&uid=Vp3nfGRxmMadNDuVbJSk8A&pyv_ad_channel=&iv_invideo_url=https%3A%2F%2Fwww.youtube.com%2Fannotations_invideo%3Fcap_hist%3D1%26video_id%3DRgKAFK5djSk%26client%3D1%26ei%3DpXhFWPGAMNjC-AWZgJfwAw&idpj=-3×tamp=1480947878&ssl=1&csn=pXhFWPGAMNjC-AWZgJfwAw&rmktEnabled=1&video_id=RgKAFK5djSk&vid=RgKAFK5djSk&itct=&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&caption_translation_languages=n%3DAfrikaans%26lc%3Daf%2Cn%3DAlbanian%26lc%3Dsq%2Cn%3DAmharic%26lc%3Dam%2Cn%3DArabic%26lc%3Dar%2Cn%3DArmenian%26lc%3Dhy%2Cn%3DAzerbaijani%26lc%3Daz%2Cn%3DBasque%26lc%3Deu%2Cn%3DBelarusian%26lc%3Dbe%2Cn%3DBengali%26lc%3Dbn%2Cn%3DBosnian%26lc%3Dbs%2Cn%3DBulgarian%26lc%3Dbg%2Cn%3DBurmese%26lc%3Dmy%2Cn%3DCatalan%26lc%3Dca%2Cn%3DCebuano%26lc%3Dceb%2Cn%3DChinese%2B%2528Simplified%2529%26lc%3Dzh-Hans%2Cn%3DChinese%2B%2528Traditional%2529%26lc%3Dzh-Hant%2Cn%3DCorsican%26lc%3Dco%2Cn%3DCroatian%26lc%3Dhr%2Cn%3DCzech%26lc%3Dcs%2Cn%3DDanish%26lc%3Dda%2Cn%3DDutch%26lc%3Dnl%2Cn%3DEnglish%26lc%3Den%2Cn%3DEsperanto%26lc%3Deo%2Cn%3DEstonian%26lc%3Det%2Cn%3DFilipino%26lc%3Dfil%2Cn%3DFinnish%26lc%3Dfi%2Cn%3DFrench%26lc%3Dfr%2Cn%3DGalician%26lc%3Dgl%2Cn%3DGeorgian%26lc%3Dka%2Cn%3DGerman%26lc%3Dde%2Cn%3DGreek%26lc%3Del%2Cn%3DGujarati%26lc%3Dgu%2Cn%3DHaitian%2BCreole%26lc%3Dht%2Cn%3DHausa%26lc%3Dha%2Cn%3DHawaiian%26lc%3Dhaw%2Cn%3DHebrew%26lc%3Diw%2Cn%3DHindi%26lc%3Dhi%2Cn%3DHmong%26lc%3Dhmn%2Cn%3DHungarian%26lc%3Dhu%2Cn%3DIcelandic%26lc%3Dis%2Cn%3DIgbo%26lc%3Dig%2Cn%3DIndonesian%26lc%3Did%2Cn%3DIrish%26lc%3Dga%2Cn%3DItalian%26lc%3Dit%2Cn%3DJapanese%26lc%3Dja%2Cn%3DJavanese%26lc%3Djv%2Cn%3DKannada%26lc%3Dkn%2Cn%3DKazakh%26lc%3Dkk%2Cn%3DKhmer%26lc%3Dkm%2Cn%3DKorean%26lc%3Dko%2Cn%3DKurdish%26lc%3Dku%2Cn%3DKyrgyz%26lc%3Dky%2Cn%3DLao%26lc%3Dlo%2Cn%3DLatin%26lc%3Dla%2Cn%3DLatvian%26lc%3Dlv%2Cn%3DLithuanian%26lc%3Dlt%2Cn%3DLuxembourgish%26lc%3Dlb%2Cn%3DMacedonian%26lc%3Dmk%2Cn%3DMalagasy%26lc%3Dmg%2Cn%3DMalay%26lc%3Dms%2Cn%3DMalayalam%26lc%3Dml%2Cn%3DMaltese%26lc%3Dmt%2Cn%3DMaori%26lc%3Dmi%2Cn%3DMarathi%26lc%3Dmr%2Cn%3DMongolian%26lc%3Dmn%2Cn%3DNepali%26lc%3Dne%2Cn%3DNorwegian%26lc%3Dno%2Cn%3DNyanja%26lc%3Dny%2Cn%3DPashto%26lc%3Dps%2Cn%3DPersian%26lc%3Dfa%2Cn%3DPolish%26lc%3Dpl%2Cn%3DPortuguese%26lc%3Dpt%2Cn%3DPunjabi%26lc%3Dpa%2Cn%3DRomanian%26lc%3Dro%2Cn%3DRussian%26lc%3Dru%2Cn%3DSamoan%26lc%3Dsm%2Cn%3DScottish%2BGaelic%26lc%3Dgd%2Cn%3DSerbian%26lc%3Dsr%2Cn%3DShona%26lc%3Dsn%2Cn%3DSindhi%26lc%3Dsd%2Cn%3DSinhala%26lc%3Dsi%2Cn%3DSlovak%26lc%3Dsk%2Cn%3DSlovenian%26lc%3Dsl%2Cn%3DSomali%26lc%3Dso%2Cn%3DSouthern%2BSotho%26lc%3Dst%2Cn%3DSpanish%26lc%3Des%2Cn%3DSundanese%26lc%3Dsu%2Cn%3DSwahili%26lc%3Dsw%2Cn%3DSwedish%26lc%3Dsv%2Cn%3DTajik%26lc%3Dtg%2Cn%3DTamil%26lc%3Dta%2Cn%3DTelugu%26lc%3Dte%2Cn%3DThai%26lc%3Dth%2Cn%3DTurkish%26lc%3Dtr%2Cn%3DUkrainian%26lc%3Duk%2Cn%3DUrdu%26lc%3Dur%2Cn%3DUzbek%26lc%3Duz%2Cn%3DVietnamese%26lc%3Dvi%2Cn%3DWelsh%26lc%3Dcy%2Cn%3DWestern%2BFrisian%26lc%3Dfy%2Cn%3DXhosa%26lc%3Dxh%2Cn%3DYiddish%26lc%3Dyi%2Cn%3DYoruba%26lc%3Dyo%2Cn%3DZulu%26lc%3Dzu&iurlmaxres=https%3A%2F%2Fi.ytimg.com%2Fvi%2FRgKAFK5djSk%2Fmaxresdefault.jpg&title=Wiz+Khalifa+-+See+You+Again+ft.+Charlie+Puth+%5BOfficial+Video%5D+Furious+7+Soundtrack&probe_url=https%3A%2F%2Fr4---sn-4g57knrz.googlevideo.com%2Fvideogoodput%3Fid%3Do-ADaLUyPFgsBbHL8kLT23VTejlxdida_vlUQQYqJ9tctu%26source%3Dgoodput%26range%3D0-4999%26expire%3D1480951477%26ip%3D209.59.90.242%26ms%3Dpm%26mm%3D35%26pl%3D24%26nh%3DIgpwZjAyLmZyYTE2Kg02Mi4xMTUuMTUxLjI4%26sparams%3Did%2Csource%2Crange%2Cexpire%2Cip%2Cms%2Cmm%2Cpl%2Cnh%26signature%3D0124938206FD32A5215EAB36138435D97BACB57B.296671473677B1F40C4EE181FFAC8E1DC9C7836A%26key%3Dcms1&cl=140839172&root_ve_type=14057&loudness=-17.388999939&vm=CAIQAA&author=Wiz+Khalifa&cver=1.20161130&iv_module=https%3A%2F%2Fs.ytimg.com%2Fyts%2Fswfbin%2Fplayer-vfldq9G5_%2Fiv_module.swf&apiary_host_firstparty=&videostats_playback_base_url=https%3A%2F%2Fs.youtube.com%2Fapi%2Fstats%2Fplayback%3Fcl%3D140839172%26docid%3DRgKAFK5djSk%26ns%3Dyt%26len%3D238%26plid%3DAAVC6gwxCqW399-b%26vm%3DCAIQAA%26el%3Ddetailpage%26ei%3DpXhFWPGAMNjC-AWZgJfwAw%26fexp%3D9413138%252C9419452%252C9422596%252C9424416%252C9428398%252C9431012%252C9432565%252C9433096%252C9433221%252C9434046%252C9434289%252C9439580%252C9439971%252C9441514%252C9441651%252C9442073%252C9444206%252C9445371%252C9445895%252C9446054%252C9446364%252C9448915%252C9449034%252C9449243%252C9451415%252C9452154%252C9452377%252C9452882%252C9453797%252C9454390%252C9454476%252C9454867%252C9456273%252C9456582%26of%3DQGmll0UFduiwtazc2IGB_A&focEnabled=1&innertube_api_key=AIzaSyAO_FJ2SlqU8Q4STEHLGCilw_Y9_11qcW8&account_playback_token=QUFFLUhqa2RKZWNqQkNaNGxTa3Z5SHBQQ3pmU3QzQm80UXxBQ3Jtc0tuOTZOUjlBVEI4ZmVLZlE2Uk1DUFpYRnkzeFlWeUwzYlgtcHdYeFZraUJ1cFNSZnNhclplbExUelI0ejNQa3I0a3ZUTHdYRmFfeHZBTWRyOUxfQ0J3dERMMzhVbUNDVWpub2xlR3gwbFVSekZSdklmNA%3D%3D&adaptive_fmts=projection_type%3D1%26clen%3D57309304%26bitrate%3D3010262%26itag%3D137%26lmt%3D1478640193524064%26size%3D1920x1080%26index%3D715-1310%26url%3Dhttps%253A%252F%252Fr5---sn-hp57knly.googlevideo.com%252Fvideoplayback%253Fip%253D209.59.90.242%2526mime%253Dvideo%25252Fmp4%2526requiressl%253Dyes%2526mn%253Dsn-hp57knly%2526pl%253D24%2526source%253Dyoutube%2526mm%253D31%2526mv%253Dm%2526mt%253D1480947656%2526ms%253Dau%2526id%253Do-AM7-Jfun5pc-Y72NsTHEILPZ-ey6Jmr-Zl8i6n7lvTRL%2526expire%253D1480969477%2526gir%253Dyes%2526lmt%253D1478640193524064%2526sparams%253Dclen%25252Cdur%25252Cei%25252Cgir%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Ckeepalive%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cnh%25252Cpl%25252Crequiressl%25252Csource%25252Cupn%25252Cexpire%2526ipbits%253D0%2526ei%253DpXhFWPGAMNjC-AWZgJfwAw%2526initcwndbps%253D160000%2526signature%253D10A9AEF473E71A8D57CE41CF88DDE7A5128C3F0E.C91745A86BB14E99EBBA66A2AB39AB60F6114263%2526dur%253D237.362%2526nh%253DIgpwcjAyLm1pYTA0Kgw2My4yNDUuNi4xODE%2526key%253Dyt6%2526upn%253Dj43tDjKmyec%2526keepalive%253Dyes%2526itag%253D137%2526clen%253D57309304%26fps%3D24%26type%3Dvideo%252Fmp4%253B%2Bcodecs%253D%2522avc1.640028%2522%26xtags%3D%26init%3D0-714%26quality_label%3D1080p%2Cprojection_type%3D1%26clen%3D44989679%26bitrate%3D2711902%26itag%3D248%26lmt%3D1449572197116515%26size%3D1920x1080%26index%3D243-1026%26url%3Dhttps%253A%252F%252Fr5---sn-hp57knly.googlevideo.com%252Fvideoplayback%253Fip%253D209.59.90.242%2526mime%253Dvideo%25252Fwebm%2526requiressl%253Dyes%2526mn%253Dsn-hp57knly%2526pl%253D24%2526source%253Dyoutube%2526mm%253D31%2526mv%253Dm%2526mt%253D1480947656%2526ms%253Dau%2526id%253Do-AM7-Jfun5pc-Y72NsTHEILPZ-ey6Jmr-Zl8i6n7lvTRL%2526expire%253D1480969477%2526gir%253Dyes%2526lmt%253D1449572197116515%2526sparams%253Dclen%25252Cdur%25252Cei%25252Cgir%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Ckeepalive%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cnh%25252Cpl%25252Crequiressl%25252Csource%25252Cupn%25252Cexpire%2526ipbits%253D0%2526ei%253DpXhFWPGAMNjC-AWZgJfwAw%2526initcwndbps%253D160000%2526signature%253D9A11BA53F49DAA38341EF00AFBD8C32CF3911AF9.AF819794F42181F6DA48F2BEA8CE90FB12379C9E%2526dur%253D237.320%2526nh%253DIgpwcjAyLm1pYTA0Kgw2My4yNDUuNi4xODE%2526key%253Dyt6%2526upn%253Dj43tDjKmyec%2526keepalive%253Dyes%2526itag%253D248%2526clen%253D44989679%26fps%3D24%26type%3Dvideo%252Fwebm%253B%2Bcodecs%253D%2522vp9%2522%26xtags%3D%26init%3D0-242%26quality_label%3D1080p%2Cprojection_type%3D1%26clen%3D30067810%26bitrate%3D1575465%26itag%3D136%26lmt%3D1478641791638236%26size%3D1280x720%26index%3D713-1308%26url%3Dhttps%253A%252F%252Fr5---sn-hp57knly.googlevideo.com%252Fvideoplayback%253Fip%253D209.59.90.242%2526mime%253Dvideo%25252Fmp4%2526requiressl%253Dyes%2526mn%253Dsn-hp57knly%2526pl%253D24%2526source%253Dyoutube%2526mm%253D31%2526mv%253Dm%2526mt%253D1480947656%2526ms%253Dau%2526id%253Do-AM7-Jfun5pc-Y72NsTHEILPZ-ey6Jmr-Zl8i6n7lvTRL%2526expire%253D1480969477%2526gir%253Dyes%2526lmt%253D1478641791638236%2526sparams%253Dclen%25252Cdur%25252Cei%25252Cgir%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Ckeepalive%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cnh%25252Cpl%25252Crequiressl%25252Csource%25252Cupn%25252Cexpire%2526ipbits%253D0%2526ei%253DpXhFWPGAMNjC-AWZgJfwAw%2526initcwndbps%253D160000%2526signature%253D1E90BE0D7936C823BAAEC5D7A574AB1792AE66F8.29CA696DBC3CB6E2138A83E1263A4348EA23936D%2526dur%253D237.362%2526nh%253DIgpwcjAyLm1pYTA0Kgw2My4yNDUuNi4xODE%2526key%253Dyt6%2526upn%253Dj43tDjKmyec%2526keepalive%253Dyes%2526itag%253D136%2526clen%253D30067810%26fps%3D24%26type%3Dvideo%252Fmp4%253B%2Bcodecs%253D%2522avc1.4d401f%2522%26xtags%3D%26init%3D0-712%26quality_label%3D720p%2Cprojection_type%3D1%26clen%3D23491746%26bitrate%3D1363485%26itag%3D247%26lmt%3D1449573017318199%26size%3D1280x720%26index%3D243-1012%26url%3Dhttps%253A%252F%252Fr5---sn-hp57knly.googlevideo.com%252Fvideoplayback%253Fip%253D209.59.90.242%2526mime%253Dvideo%25252Fwebm%2526requiressl%253Dyes%2526mn%253Dsn-hp57knly%2526pl%253D24%2526source%253Dyoutube%2526mm%253D31%2526mv%253Dm%2526mt%253D1480947656%2526ms%253Dau%2526id%253Do-AM7-Jfun5pc-Y72NsTHEILPZ-ey6Jmr-Zl8i6n7lvTRL%2526expire%253D1480969477%2526gir%253Dyes%2526lmt%253D1449573017318199%2526sparams%253Dclen%25252Cdur%25252Cei%25252Cgir%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Ckeepalive%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cnh%25252Cpl%25252Crequiressl%25252Csource%25252Cupn%25252Cexpire%2526ipbits%253D0%2526ei%253DpXhFWPGAMNjC-AWZgJfwAw%2526initcwndbps%253D160000%2526signature%253DA8A4285E225E6C63930B2B3C6783461BC571D922.503A364C965BD9FF72F3B12416527E549D4C3288%2526dur%253D237.320%2526nh%253DIgpwcjAyLm1pYTA0Kgw2My4yNDUuNi4xODE%2526key%253Dyt6%2526upn%253Dj43tDjKmyec%2526keepalive%253Dyes%2526itag%253D247%2526clen%253D23491746%26fps%3D24%26type%3Dvideo%252Fwebm%253B%2Bcodecs%253D%2522vp9%2522%26xtags%3D%26init%3D0-242%26quality_label%3D720p%2Cprojection_type%3D1%26clen%3D15417622%26bitrate%3D849752%26itag%3D135%26lmt%3D1478641791837561%26size%3D854x480%26index%3D713-1308%26url%3Dhttps%253A%252F%252Fr5---sn-hp57knly.googlevideo.com%252Fvideoplayback%253Fip%253D209.59.90.242%2526mime%253Dvideo%25252Fmp4%2526requiressl%253Dyes%2526mn%253Dsn-hp57knly%2526pl%253D24%2526source%253Dyoutube%2526mm%253D31%2526mv%253Dm%2526mt%253D1480947656%2526ms%253Dau%2526id%253Do-AM7-Jfun5pc-Y72NsTHEILPZ-ey6Jmr-Zl8i6n7lvTRL%2526expire%253D1480969477%2526gir%253Dyes%2526lmt%253D1478641791837561%2526sparams%253Dclen%25252Cdur%25252Cei%25252Cgir%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Ckeepalive%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cnh%25252Cpl%25252Crequiressl%25252Csource%25252Cupn%25252Cexpire%2526ipbits%253D0%2526ei%253DpXhFWPGAMNjC-AWZgJfwAw%2526initcwndbps%253D160000%2526signature%253D97E9F89F21D42F8693BEE5D50B4411986F10695E.A7F16BC6070E1D0CDCED21E0861827E3202E330B%2526dur%253D237.362%2526nh%253DIgpwcjAyLm1pYTA0Kgw2My4yNDUuNi4xODE%2526key%253Dyt6%2526upn%253Dj43tDjKmyec%2526keepalive%253Dyes%2526itag%253D135%2526clen%253D15417622%26fps%3D24%26type%3Dvideo%252Fmp4%253B%2Bcodecs%253D%2522avc1.4d401e%2522%26xtags%3D%26init%3D0-712%26quality_label%3D480p%2Cprojection_type%3D1%26clen%3D12473006%26bitrate%3D712638%26itag%3D244%26lmt%3D1449573015368625%26size%3D854x480%26index%3D243-998%26url%3Dhttps%253A%252F%252Fr5---sn-hp57knly.googlevideo.com%252Fvideoplayback%253Fip%253D209.59.90.242%2526mime%253Dvideo%25252Fwebm%2526requiressl%253Dyes%2526mn%253Dsn-hp57knly%2526pl%253D24%2526source%253Dyoutube%2526mm%253D31%2526mv%253Dm%2526mt%253D1480947656%2526ms%253Dau%2526id%253Do-AM7-Jfun5pc-Y72NsTHEILPZ-ey6Jmr-Zl8i6n7lvTRL%2526expire%253D1480969477%2526gir%253Dyes%2526lmt%253D1449573015368625%2526sparams%253Dclen%25252Cdur%25252Cei%25252Cgir%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Ckeepalive%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cnh%25252Cpl%25252Crequiressl%25252Csource%25252Cupn%25252Cexpire%2526ipbits%253D0%2526ei%253DpXhFWPGAMNjC-AWZgJfwAw%2526initcwndbps%253D160000%2526signature%253D7D5724A6DE5F563D00E20053F1671249985AA88B.65829980154DB360408F10F886438F1826F44A20%2526dur%253D237.320%2526nh%253DIgpwcjAyLm1pYTA0Kgw2My4yNDUuNi4xODE%2526key%253Dyt6%2526upn%253Dj43tDjKmyec%2526keepalive%253Dyes%2526itag%253D244%2526clen%253D12473006%26fps%3D24%26type%3Dvideo%252Fwebm%253B%2Bcodecs%253D%2522vp9%2522%26xtags%3D%26init%3D0-242%26quality_label%3D480p%2Cprojection_type%3D1%26clen%3D7404814%26bitrate%3D412081%26itag%3D134%26lmt%3D1478641790034655%26size%3D640x360%26index%3D713-1308%26url%3Dhttps%253A%252F%252Fr5---sn-hp57knly.googlevideo.com%252Fvideoplayback%253Fip%253D209.59.90.242%2526mime%253Dvideo%25252Fmp4%2526requiressl%253Dyes%2526mn%253Dsn-hp57knly%2526pl%253D24%2526source%253Dyoutube%2526mm%253D31%2526mv%253Dm%2526mt%253D1480947656%2526ms%253Dau%2526id%253Do-AM7-Jfun5pc-Y72NsTHEILPZ-ey6Jmr-Zl8i6n7lvTRL%2526expire%253D1480969477%2526gir%253Dyes%2526lmt%253D1478641790034655%2526sparams%253Dclen%25252Cdur%25252Cei%25252Cgir%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Ckeepalive%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cnh%25252Cpl%25252Crequiressl%25252Csource%25252Cupn%25252Cexpire%2526ipbits%253D0%2526ei%253DpXhFWPGAMNjC-AWZgJfwAw%2526initcwndbps%253D160000%2526signature%253D86FE8ED0721ED46CEB6464AA2B1227F0C379D90A.A45088D66BD9D257212868760139FB70898CB015%2526dur%253D237.362%2526nh%253DIgpwcjAyLm1pYTA0Kgw2My4yNDUuNi4xODE%2526key%253Dyt6%2526upn%253Dj43tDjKmyec%2526keepalive%253Dyes%2526itag%253D134%2526clen%253D7404814%26fps%3D24%26type%3Dvideo%252Fmp4%253B%2Bcodecs%253D%2522avc1.4d401e%2522%26xtags%3D%26init%3D0-712%26quality_label%3D360p%2Cprojection_type%3D1%26clen%3D7721603%26bitrate%3D424293%26itag%3D243%26lmt%3D1449573016016815%26size%3D640x360%26index%3D243-998%26url%3Dhttps%253A%252F%252Fr5---sn-hp57knly.googlevideo.com%252Fvideoplayback%253Fip%253D209.59.90.242%2526mime%253Dvideo%25252Fwebm%2526requiressl%253Dyes%2526mn%253Dsn-hp57knly%2526pl%253D24%2526source%253Dyoutube%2526mm%253D31%2526mv%253Dm%2526mt%253D1480947656%2526ms%253Dau%2526id%253Do-AM7-Jfun5pc-Y72NsTHEILPZ-ey6Jmr-Zl8i6n7lvTRL%2526expire%253D1480969477%2526gir%253Dyes%2526lmt%253D1449573016016815%2526sparams%253Dclen%25252Cdur%25252Cei%25252Cgir%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Ckeepalive%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cnh%25252Cpl%25252Crequiressl%25252Csource%25252Cupn%25252Cexpire%2526ipbits%253D0%2526ei%253DpXhFWPGAMNjC-AWZgJfwAw%2526initcwndbps%253D160000%2526signature%253DC6A36E3144656F6FF538015F9F699148C9BFB02D.03B934E38874A65414C753620143B480FD6DA0A2%2526dur%253D237.320%2526nh%253DIgpwcjAyLm1pYTA0Kgw2My4yNDUuNi4xODE%2526key%253Dyt6%2526upn%253Dj43tDjKmyec%2526keepalive%253Dyes%2526itag%253D243%2526clen%253D7721603%26fps%3D24%26type%3Dvideo%252Fwebm%253B%2Bcodecs%253D%2522vp9%2522%26xtags%3D%26init%3D0-242%26quality_label%3D360p%2Cprojection_type%3D1%26clen%3D6884196%26bitrate%3D252235%26itag%3D133%26lmt%3D1478641788943874%26size%3D426x240%26index%3D713-1308%26url%3Dhttps%253A%252F%252Fr5---sn-hp57knly.googlevideo.com%252Fvideoplayback%253Fip%253D209.59.90.242%2526mime%253Dvideo%25252Fmp4%2526requiressl%253Dyes%2526mn%253Dsn-hp57knly%2526pl%253D24%2526source%253Dyoutube%2526mm%253D31%2526mv%253Dm%2526mt%253D1480947656%2526ms%253Dau%2526id%253Do-AM7-Jfun5pc-Y72NsTHEILPZ-ey6Jmr-Zl8i6n7lvTRL%2526expire%253D1480969477%2526gir%253Dyes%2526lmt%253D1478641788943874%2526sparams%253Dclen%25252Cdur%25252Cei%25252Cgir%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Ckeepalive%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cnh%25252Cpl%25252Crequiressl%25252Csource%25252Cupn%25252Cexpire%2526ipbits%253D0%2526ei%253DpXhFWPGAMNjC-AWZgJfwAw%2526initcwndbps%253D160000%2526signature%253DA698F27198DDC75F205C11E32364B05A7041953D.2848E46EEAE05EE6946AC1E15CF475C8D04C9040%2526dur%253D237.362%2526nh%253DIgpwcjAyLm1pYTA0Kgw2My4yNDUuNi4xODE%2526key%253Dyt6%2526upn%253Dj43tDjKmyec%2526keepalive%253Dyes%2526itag%253D133%2526clen%253D6884196%26fps%3D24%26type%3Dvideo%252Fmp4%253B%2Bcodecs%253D%2522avc1.4d4015%2522%26xtags%3D%26init%3D0-712%26quality_label%3D240p%2Cprojection_type%3D1%26clen%3D4313145%26bitrate%3D235876%26itag%3D242%26lmt%3D1449573015228252%26size%3D426x240%26index%3D242-996%26url%3Dhttps%253A%252F%252Fr5---sn-hp57knly.googlevideo.com%252Fvideoplayback%253Fip%253D209.59.90.242%2526mime%253Dvideo%25252Fwebm%2526requiressl%253Dyes%2526mn%253Dsn-hp57knly%2526pl%253D24%2526source%253Dyoutube%2526mm%253D31%2526mv%253Dm%2526mt%253D1480947656%2526ms%253Dau%2526id%253Do-AM7-Jfun5pc-Y72NsTHEILPZ-ey6Jmr-Zl8i6n7lvTRL%2526expire%253D1480969477%2526gir%253Dyes%2526lmt%253D1449573015228252%2526sparams%253Dclen%25252Cdur%25252Cei%25252Cgir%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Ckeepalive%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cnh%25252Cpl%25252Crequiressl%25252Csource%25252Cupn%25252Cexpire%2526ipbits%253D0%2526ei%253DpXhFWPGAMNjC-AWZgJfwAw%2526initcwndbps%253D160000%2526signature%253D2EDAC8CBE5EE7E46428E13B5E7CE1E6527ABBF18.18754F2169B2A0FB63F7048794342166620C1B0E%2526dur%253D237.320%2526nh%253DIgpwcjAyLm1pYTA0Kgw2My4yNDUuNi4xODE%2526key%253Dyt6%2526upn%253Dj43tDjKmyec%2526keepalive%253Dyes%2526itag%253D242%2526clen%253D4313145%26fps%3D24%26type%3Dvideo%252Fwebm%253B%2Bcodecs%253D%2522vp9%2522%26xtags%3D%26init%3D0-241%26quality_label%3D240p%2Cprojection_type%3D1%26clen%3D3099330%26bitrate%3D109291%26itag%3D160%26lmt%3D1478641788634320%26size%3D256x144%26index%3D675-1270%26url%3Dhttps%253A%252F%252Fr5---sn-hp57knly.googlevideo.com%252Fvideoplayback%253Fip%253D209.59.90.242%2526mime%253Dvideo%25252Fmp4%2526requiressl%253Dyes%2526mn%253Dsn-hp57knly%2526pl%253D24%2526source%253Dyoutube%2526mm%253D31%2526mv%253Dm%2526mt%253D1480947656%2526ms%253Dau%2526id%253Do-AM7-Jfun5pc-Y72NsTHEILPZ-ey6Jmr-Zl8i6n7lvTRL%2526expire%253D1480969477%2526gir%253Dyes%2526lmt%253D1478641788634320%2526sparams%253Dclen%25252Cdur%25252Cei%25252Cgir%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Ckeepalive%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cnh%25252Cpl%25252Crequiressl%25252Csource%25252Cupn%25252Cexpire%2526ipbits%253D0%2526ei%253DpXhFWPGAMNjC-AWZgJfwAw%2526initcwndbps%253D160000%2526signature%253D80C3DE22C50337D9B583C8F300C0D02F94F664F5.334574D8173A55E4467FAE65576808E4D76C9955%2526dur%253D237.362%2526nh%253DIgpwcjAyLm1pYTA0Kgw2My4yNDUuNi4xODE%2526key%253Dyt6%2526upn%253Dj43tDjKmyec%2526keepalive%253Dyes%2526itag%253D160%2526clen%253D3099330%26fps%3D24%26type%3Dvideo%252Fmp4%253B%2Bcodecs%253D%2522avc1.4d400c%2522%26xtags%3D%26init%3D0-674%26quality_label%3D144p%2Cprojection_type%3D1%26clen%3D2606036%26bitrate%3D107014%26itag%3D278%26lmt%3D1449573015099569%26size%3D256x144%26index%3D242-996%26url%3Dhttps%253A%252F%252Fr5---sn-hp57knly.googlevideo.com%252Fvideoplayback%253Fip%253D209.59.90.242%2526mime%253Dvideo%25252Fwebm%2526requiressl%253Dyes%2526mn%253Dsn-hp57knly%2526pl%253D24%2526source%253Dyoutube%2526mm%253D31%2526mv%253Dm%2526mt%253D1480947656%2526ms%253Dau%2526id%253Do-AM7-Jfun5pc-Y72NsTHEILPZ-ey6Jmr-Zl8i6n7lvTRL%2526expire%253D1480969477%2526gir%253Dyes%2526lmt%253D1449573015099569%2526sparams%253Dclen%25252Cdur%25252Cei%25252Cgir%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Ckeepalive%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cnh%25252Cpl%25252Crequiressl%25252Csource%25252Cupn%25252Cexpire%2526ipbits%253D0%2526ei%253DpXhFWPGAMNjC-AWZgJfwAw%2526initcwndbps%253D160000%2526signature%253D1942D97717A77857271A1DC2D78578DB7116F2E6.07D18A66CBFE01610FF60503202BEC2F0AE52D6A%2526dur%253D237.320%2526nh%253DIgpwcjAyLm1pYTA0Kgw2My4yNDUuNi4xODE%2526key%253Dyt6%2526upn%253Dj43tDjKmyec%2526keepalive%253Dyes%2526itag%253D278%2526clen%253D2606036%26fps%3D12%26type%3Dvideo%252Fwebm%253B%2Bcodecs%253D%2522vp9%2522%26xtags%3D%26init%3D0-241%26quality_label%3D144p%2Cxtags%3D%26init%3D0-591%26lmt%3D1478638731477108%26index%3D592-911%26clen%3D3771517%26projection_type%3D1%26bitrate%3D128030%26type%3Daudio%252Fmp4%253B%2Bcodecs%253D%2522mp4a.40.2%2522%26itag%3D140%26url%3Dhttps%253A%252F%252Fr5---sn-hp57knly.googlevideo.com%252Fvideoplayback%253Fip%253D209.59.90.242%2526mime%253Daudio%25252Fmp4%2526requiressl%253Dyes%2526mn%253Dsn-hp57knly%2526pl%253D24%2526source%253Dyoutube%2526mm%253D31%2526mv%253Dm%2526mt%253D1480947656%2526ms%253Dau%2526id%253Do-AM7-Jfun5pc-Y72NsTHEILPZ-ey6Jmr-Zl8i6n7lvTRL%2526expire%253D1480969477%2526gir%253Dyes%2526lmt%253D1478638731477108%2526sparams%253Dclen%25252Cdur%25252Cei%25252Cgir%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Ckeepalive%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cnh%25252Cpl%25252Crequiressl%25252Csource%25252Cupn%25252Cexpire%2526ipbits%253D0%2526ei%253DpXhFWPGAMNjC-AWZgJfwAw%2526initcwndbps%253D160000%2526signature%253D35D65C6B2823BA4956C57A079008F7947529DF66.89B1617F57D50B48A5FB2695DB30A7E552FFD08C%2526dur%253D237.424%2526nh%253DIgpwcjAyLm1pYTA0Kgw2My4yNDUuNi4xODE%2526key%253Dyt6%2526upn%253Dj43tDjKmyec%2526keepalive%253Dyes%2526itag%253D140%2526clen%253D3771517%2Cxtags%3D%26init%3D0-4451%26lmt%3D1449571952282400%26index%3D4452-4856%26clen%3D3471225%26projection_type%3D1%26bitrate%3D135626%26type%3Daudio%252Fwebm%253B%2Bcodecs%253D%2522vorbis%2522%26itag%3D171%26url%3Dhttps%253A%252F%252Fr5---sn-hp57knly.googlevideo.com%252Fvideoplayback%253Fip%253D209.59.90.242%2526mime%253Daudio%25252Fwebm%2526requiressl%253Dyes%2526mn%253Dsn-hp57knly%2526pl%253D24%2526source%253Dyoutube%2526mm%253D31%2526mv%253Dm%2526mt%253D1480947656%2526ms%253Dau%2526id%253Do-AM7-Jfun5pc-Y72NsTHEILPZ-ey6Jmr-Zl8i6n7lvTRL%2526expire%253D1480969477%2526gir%253Dyes%2526lmt%253D1449571952282400%2526sparams%253Dclen%25252Cdur%25252Cei%25252Cgir%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Ckeepalive%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cnh%25252Cpl%25252Crequiressl%25252Csource%25252Cupn%25252Cexpire%2526ipbits%253D0%2526ei%253DpXhFWPGAMNjC-AWZgJfwAw%2526initcwndbps%253D160000%2526signature%253D6E729191F79542C60E5443E1313CBAE2B7135B0F.D86DDCC7C880EAAB11A660D4ECFEC5ACBC4BDF90%2526dur%253D237.353%2526nh%253DIgpwcjAyLm1pYTA0Kgw2My4yNDUuNi4xODE%2526key%253Dyt6%2526upn%253Dj43tDjKmyec%2526keepalive%253Dyes%2526itag%253D171%2526clen%253D3471225%2Cxtags%3D%26init%3D0-271%26lmt%3D1449571952563494%26index%3D272-676%26clen%3D1501979%26projection_type%3D1%26bitrate%3D56744%26type%3Daudio%252Fwebm%253B%2Bcodecs%253D%2522opus%2522%26itag%3D249%26url%3Dhttps%253A%252F%252Fr5---sn-hp57knly.googlevideo.com%252Fvideoplayback%253Fip%253D209.59.90.242%2526mime%253Daudio%25252Fwebm%2526requiressl%253Dyes%2526mn%253Dsn-hp57knly%2526pl%253D24%2526source%253Dyoutube%2526mm%253D31%2526mv%253Dm%2526mt%253D1480947656%2526ms%253Dau%2526id%253Do-AM7-Jfun5pc-Y72NsTHEILPZ-ey6Jmr-Zl8i6n7lvTRL%2526expire%253D1480969477%2526gir%253Dyes%2526lmt%253D1449571952563494%2526sparams%253Dclen%25252Cdur%25252Cei%25252Cgir%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Ckeepalive%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cnh%25252Cpl%25252Crequiressl%25252Csource%25252Cupn%25252Cexpire%2526ipbits%253D0%2526ei%253DpXhFWPGAMNjC-AWZgJfwAw%2526initcwndbps%253D160000%2526signature%253D5634E7850ECB71DD6304357DDF2E756165533795.6923CF99EE3CEEE5F1E805C9AA1199D40E64A416%2526dur%253D237.361%2526nh%253DIgpwcjAyLm1pYTA0Kgw2My4yNDUuNi4xODE%2526key%253Dyt6%2526upn%253Dj43tDjKmyec%2526keepalive%253Dyes%2526itag%253D249%2526clen%253D1501979%2Cxtags%3D%26init%3D0-271%26lmt%3D1449571951982951%26index%3D272-676%26clen%3D2020148%26projection_type%3D1%26bitrate%3D79280%26type%3Daudio%252Fwebm%253B%2Bcodecs%253D%2522opus%2522%26itag%3D250%26url%3Dhttps%253A%252F%252Fr5---sn-hp57knly.googlevideo.com%252Fvideoplayback%253Fip%253D209.59.90.242%2526mime%253Daudio%25252Fwebm%2526requiressl%253Dyes%2526mn%253Dsn-hp57knly%2526pl%253D24%2526source%253Dyoutube%2526mm%253D31%2526mv%253Dm%2526mt%253D1480947656%2526ms%253Dau%2526id%253Do-AM7-Jfun5pc-Y72NsTHEILPZ-ey6Jmr-Zl8i6n7lvTRL%2526expire%253D1480969477%2526gir%253Dyes%2526lmt%253D1449571951982951%2526sparams%253Dclen%25252Cdur%25252Cei%25252Cgir%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Ckeepalive%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cnh%25252Cpl%25252Crequiressl%25252Csource%25252Cupn%25252Cexpire%2526ipbits%253D0%2526ei%253DpXhFWPGAMNjC-AWZgJfwAw%2526initcwndbps%253D160000%2526signature%253D769AC10A81B8D96DF2A2153854DD92013242F2C9.7EE2DCD43FD2B1B3D1468AEF4702C85F8BF2B7F1%2526dur%253D237.361%2526nh%253DIgpwcjAyLm1pYTA0Kgw2My4yNDUuNi4xODE%2526key%253Dyt6%2526upn%253Dj43tDjKmyec%2526keepalive%253Dyes%2526itag%253D250%2526clen%253D2020148%2Cxtags%3D%26init%3D0-271%26lmt%3D1449571951932307%26index%3D272-676%26clen%3D3910806%26projection_type%3D1%26bitrate%3D149549%26type%3Daudio%252Fwebm%253B%2Bcodecs%253D%2522opus%2522%26itag%3D251%26url%3Dhttps%253A%252F%252Fr5---sn-hp57knly.googlevideo.com%252Fvideoplayback%253Fip%253D209.59.90.242%2526mime%253Daudio%25252Fwebm%2526requiressl%253Dyes%2526mn%253Dsn-hp57knly%2526pl%253D24%2526source%253Dyoutube%2526mm%253D31%2526mv%253Dm%2526mt%253D1480947656%2526ms%253Dau%2526id%253Do-AM7-Jfun5pc-Y72NsTHEILPZ-ey6Jmr-Zl8i6n7lvTRL%2526expire%253D1480969477%2526gir%253Dyes%2526lmt%253D1449571951932307%2526sparams%253Dclen%25252Cdur%25252Cei%25252Cgir%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Ckeepalive%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cnh%25252Cpl%25252Crequiressl%25252Csource%25252Cupn%25252Cexpire%2526ipbits%253D0%2526ei%253DpXhFWPGAMNjC-AWZgJfwAw%2526initcwndbps%253D160000%2526signature%253D1608EA72390998E4150216B299F794D2448809E3.20FC6E2D19051CCB0B2F1019F89443DB4A9C9B1A%2526dur%253D237.361%2526nh%253DIgpwcjAyLm1pYTA0Kgw2My4yNDUuNi4xODE%2526key%253Dyt6%2526upn%253Dj43tDjKmyec%2526keepalive%253Dyes%2526itag%253D251%2526clen%253D3910806&of=QGmll0UFduiwtazc2IGB_A&iurlmq=https%3A%2F%2Fi.ytimg.com%2Fvi%2FRgKAFK5djSk%2Fhqdefault.jpg%3Fcustom%3Dtrue%26w%3D320%26h%3D180%26stc%3Dtrue%26jpg444%3Dtrue%26jpgq%3D90%26sp%3D68%26sigh%3DCV1o8icgSUeQJ1TzrSCxxK5oh3M&no_get_video_log=1&atc=a%3D3%26b%3DsNt2HMwLko4dNy5mhmyxUiV6NfU%26c%3D1480947877%26d%3D1%26e%3DRgKAFK5djSk%26c3a%3D15%26c1a%3D1%26c6a%3D1%26hh%3D5JvPJD-rcldc3AhJTOU1Oog1w9w&length_seconds=237&rvs=id%3D09R8_2nJtjg%26author%3DMaroon5VEVO%26endscreen_autoplay_session_data%3Dautonav%253D1%2526feature%253Drelated-auto%2526playnext%253D0%26short_view_count_text%3D1.5B%2Bviews%26session_data%3Ditct%253DMgllbmRzY3JlZW5IqZr28sqCoIFG%26length_seconds%3D302%26title%3DMaroon%2B5%2B-%2BSugar%2Cid%3D09R8_2nJtjg%26author%3DMaroon5VEVO%26short_view_count_text%3D1.5B%2Bviews%26session_data%3Ditct%253DMgllbmRzY3JlZW5IqZr28sqCoIFG%26length_seconds%3D302%26title%3DMaroon%2B5%2B-%2BSugar%2Cplaylist_iurlmq%3D%252F%252Fi.ytimg.com%252Fvi%252FRgKAFK5djSk%252Fmqdefault.jpg%26thumbnail_ids%3DAJtDXIazrMo%26session_data%3Ditct%253DMgllbmRzY3JlZW5IqZr28sqCoIFG%26video_id%3DAJtDXIazrMo%26playlist_iurlhq%3D%252F%252Fi.ytimg.com%252Fvi%252FRgKAFK5djSk%252Fhqdefault.jpg%26playlist_title%3DWiz%2BKhalifa%2B-%2BSee%2BYou%2BAgain%2Bft.%2BCharlie%2BPuth%2B%255BOfficial%2BVideo%255D%2BFurious%2B7%2BSoundtrack%26playlist_length%3D0%26list%3DRDRgKAFK5djSk%2Cid%3DqAfzDsZCK2c%26author%3DUosof%2Bahmadi%26short_view_count_text%3D26M%2Bviews%26session_data%3Ditct%253DMgllbmRzY3JlZW5IqZr28sqCoIFG%26length_seconds%3D325%26title%3DSee%2BYou%2BAgain%2B-%2BEmotional%2BTribute%2BTo%2BPaul%2BWalker%2B%2528HD%2529%2Cid%3DYQHsXMglC9A%26author%3DAdeleVEVO%26short_view_count_text%3D1.8B%2Bviews%26session_data%3Ditct%253DMgllbmRzY3JlZW5IqZr28sqCoIFG%26length_seconds%3D367%26title%3DAdele%2B-%2BHello%2Cid%3DjGflUbPQfW8%26author%3DUltra%2BMusic%26short_view_count_text%3D660M%2Bviews%26session_data%3Ditct%253DMgllbmRzY3JlZW5IqZr28sqCoIFG%26length_seconds%3D190%26title%3DOMI%2B-%2BCheerleader%2B%2528Felix%2BJaehn%2BRemix%2529%2B%255BOfficial%2BVideo%255D%2Cid%3DCevxZvSJLk8%26author%3DKatyPerryVEVO%26short_view_count_text%3D1.6B%2Bviews%26session_data%3Ditct%253DMgllbmRzY3JlZW5IqZr28sqCoIFG%26length_seconds%3D270%26title%3DKaty%2BPerry%2B-%2BRoar%2B%2528Official%2529%2Cid%3DX7rdg_tKzKQ%26author%3DAtlantic%2BRecords%26short_view_count_text%3D165M%2Bviews%26session_data%3Ditct%253DMgllbmRzY3JlZW5IqZr28sqCoIFG%26length_seconds%3D213%26title%3DRide%2BOut%2B-%2BKid%2BInk%252C%2BTyga%252C%2BWale%252C%2BYG%252C%2BRich%2BHomie%2BQuan%2B%255BOfficial%2BVideo%2B-%2BFurious%2B7%255D%2Cid%3DRBumgq5yVrA%26author%3DPassenger%26short_view_count_text%3D1.2B%2Bviews%26session_data%3Ditct%253DMgllbmRzY3JlZW5IqZr28sqCoIFG%26length_seconds%3D255%26title%3DPassenger%2B%257C%2BLet%2BHer%2BGo%2B%2528Official%2BVideo%2529%2Cid%3De-ORhEE9VVg%26author%3DTaylorSwiftVEVO%26short_view_count_text%3D1.8B%2Bviews%26session_data%3Ditct%253DMgllbmRzY3JlZW5IqZr28sqCoIFG%26length_seconds%3D273%26title%3DTaylor%2BSwift%2B-%2BBlank%2BSpace%2Cid%3D7PCkvCPvDXk%26author%3DMeghanTrainorVEVO%26short_view_count_text%3D1.6B%2Bviews%26session_data%3Ditct%253DMgllbmRzY3JlZW5IqZr28sqCoIFG%26length_seconds%3D190%26title%3DMeghan%2BTrainor%2B-%2BAll%2BAbout%2BThat%2BBass%2Cid%3DBxuY9FET9Y4%26author%3DCharlie%2BPuth%26short_view_count_text%3D344M%2Bviews%26session_data%3Ditct%253DMgllbmRzY3JlZW5IqZr28sqCoIFG%26length_seconds%3D242%26title%3DCharlie%2BPuth%2B-%2BOne%2BCall%2BAway%2B%255BOfficial%2BVideo%255D&ptchn=Vp3nfGRxmMadNDuVbJSk8A&ppv_remarketing_url=https%3A%2F%2Fwww.googleadservices.com%2Fpagead%2Fconversion%2F971134070%2F%3Fbackend%3Dinnertube%26cname%3D1%26cver%3D1_20161130%26data%3Dbackend%253Dinnertube%253Bcname%253D1%253Bcver%253D1_20161130%253Bdactive%253DNone%253Bdynx_itemid%253DRgKAFK5djSk%253Bptype%253Dppv%26label%3DiuZUCLmC72YQ9qiJzwM%26ptype%3Dppv&baseUrl=https%3A%2F%2Fgoogleads.g.doubleclick.net%2Fpagead%2Fviewthroughconversion%2F962985656%2F&ucid=UCVp3nfGRxmMadNDuVbJSk8A&allow_embed=1&plid=AAVC6gwxCqW399-b&enablecsi=1&player_response=%7B%7D&fflags=dash_manifest_version%3D4%26html5_use_mediastream_timestamp%3Dfalse%26dynamic_ad_break_seek_threshold_sec%3D0%26ad_duration_threshold_for_showing_endcap_seconds%3D15%26html5_always_reload_on_403%3Dtrue%26html5_background_cap_idle_secs%3D60%26html5_deadzone_multiplier%3D1.0%26log_it_display_tree%3Dtrue%26use_web_player_gestures%3Dtrue%26kids_enable_privacy_notice%3Dtrue%26legacy_cast2%3Dtrue%26desktop_fsi_promo%3Dstyle_masthead_ad%26html5_serverside_biscotti_id_wait_ms%3D1000%26mweb_adsense_instreams_disabled_for_android_tablets%3Dtrue%26html5_min_upgrade_health%3D0%26ios_notifications_disabled_subs_tab_promoted_item_promo%3Dtrue%26html5_stop_vss2_q_param%3Dtrue%26product_listing_ads_cards_drawer_auto_open%3Dtrue%26legacy_embed_snippet%3Dtrue%26html5_variability_no_discount_thresh%3D0.0%26cards_drawer_auto_open_offset%3D-10000%26ios_minimum_seconds_between_connectivity_lost_snackbars%3D0%26ios_enable_mixin_accessibility_custom_actions%3Dtrue%26html5_tight_max_buffer_allowed_impaired_time%3D0.0%26live_readahead_seconds_multiplier%3D0.8%26html5_timeupdate_readystate_check%3Dtrue%26html5_throttle_rate%3D0.0%26enable_get_offers_for_item_list_for_get_cart%3Dtrue%26html5_retry_gvi_more%3Dtrue%26website_actions_throttle_percentage%3D1.0%26disable_new_pause_state3%3Dtrue%26kids_enable_brazil_lp%3Dtrue%26yt_unlimited_pts_skip_ads_promo_desktop_always%3Dtrue%26html5_playing_event_buffer_underrun%3Dtrue%26html5_request_size_min_secs%3D0.0%26enable_mrm_channel_approve%3Dtrue%26html5_background_quality_cap%3D360%26html5_variability_discount%3D0.0%26kids_enable_columbia_lp%3Dtrue%26html5_request_sizing_multiplier%3D0.8%26cards_drawer_auto_open_duration%3D-1%26enable_ccs_buy_flow_for_chirp%3Dtrue%26ios_minimum_seconds_between_connectivity_gained_snackbars%3D300%26html5_live_disable_dg_pacing%3Dtrue%26html5_repredict_interval_secs%3D0.0%26html5_retry_limit%3D10%26html5_retry_media_element_errors%3Dtrue%26enable_yt_music_lp%3Dtrue%26legacy_control_redirecting%3Dtrue%26html5_max_buffer_health_for_downgrade%3D0%26yto_enable_ytr_promo_refresh_assets%3Dtrue%26launch_new_wallet_api%3Dtrue%26html5_check_for_reseek%3Dtrue%26enable_offer_restricts_for_watch_page_offers%3Dtrue%26fix_backfill_mpu_api_stats_ads%3Dtrue%26web_player_innertube_response%3Dtrue%26kids_enable_spain_lp%3Dtrue%26use_push_for_desktop_live_chat%3Dtrue%26native_controls_assume_media_volume%3Dtrue%26html5_idle_preload_secs%3D1%26html5_get_video_info_timeout_ms%3D0%26yto_feature_hub_channel%3Dfalse%26html5_long_term_bandwidth_window_size%3D0%26html5_reseek_on_infinite_buffer%3Dtrue%26feeds_on_innertube%3Dtrue%26html5_retry_media_element_errors_delay%3D0%26html5_strip_emsg%3Dtrue%26tvhtml5_audio_starts_radio_station%3Dtrue%26live_chunk_readahead%3D3%26enable_audio_cast%3Dtrue%26html5_max_buffer_duration%3D0%26html5_variability_full_discount_thresh%3D0.0%26enable_playlist_multi_season%3Dtrue%26html5_allowable_liveness_drift_chunks%3D2%26kids_asset_theme%3Dserver_side_assets%26html5_min_buffer_to_resume%3D2%26polymer_report_missing_web_navigation_endpoint%3Dfalse%26html5_suspend_manifest_on_pause%3Dfalse%26lugash_header_by_service%3Dtrue%26dynamic_ad_break_pause_threshold_sec%3D0%26enable_fmp4_defrag%3Dtrue%26playready_on_borg%3Dtrue%26ios_disable_notification_preprompt%3Dtrue%26flex_theater_mode%3Dtrue%26enable_mweb_ypc_promotion_renderer%3Dtrue%26ad_video_end_renderer_duration_milliseconds%3D7000%26high_res_timestamps%3Dtrue%26variable_load_timeout_ms%3D0%26html5_get_video_info_promiseajax%3Dtrue%26lugash_header_warmup%3Dtrue%26cameo_live_chunk_readahead%3D3%26chrome_promo_enabled%3Dtrue%26html5_connect_timeout_secs%3D7.0%26yto_enable_unlimited_landing_page_yto_features%3Dtrue%26log_js_exceptions_fraction%3D0.20%26sdk_wrapper_levels_allowed%3D0%26html5_min_vss_watchtime_to_cut_secs%3D99999%26html5_ajax_qoe_retry%3Dfalse%26enable_live_state_auth%3Dtrue%26html5_max_vss_watchtime_ratio%3D0.0%26player_no_remote_modules%3Dtrue%26music_tastebuilder_p13n%3Dtrue%26yto_enable_watch_offer_module%3Dtrue%26sidebar_renderers%3Dtrue%26autoplay_time%3D8000%26html5_multicam%3Dtrue%26html5_bandwidth_window_size%3D0%26enable_local_channel%3Dtrue%26kids_enable_server_side_assets%3Dtrue%26legacy_autoplay_flag%3Dtrue%26legacy_poster_behavior%3Dtrue%26html5_live_4k_more_buffer%3Dtrue%26html5_tight_max_buffer_allowed_bandwidth_stddevs%3D0.0%26mpu_visible_threshold_count%3D2%26kids_enable_post_onboarding_red_flow%3Dtrue%26kids_enable_latam_lp%3Dtrue&caption_tracks=v%3D.en%26n%3DEnglish%26lc%3Den%26t%3D1%26u%3Dhttps%253A%252F%252Fwww.youtube.com%252Fapi%252Ftimedtext%253Fkey%253Dyttt1%2526v%253DRgKAFK5djSk%2526sparams%253Dcaps%25252Cv%25252Cexpire%2526caps%253D-lyr%2526hl%253Den_US%2526expire%253D1480973077%2526signature%253D753D690165C75A0A1581D3CE28D38BF44E8CDA15.23858BE0085007BF2A69314B806C12732FF7A231%2526lang%253Den%2Cv%3D.und%26n%3Dund%26lc%3Dund%26t%3D1%26u%3Dhttps%253A%252F%252Fwww.youtube.com%252Fapi%252Ftimedtext%253Fkey%253Dyttt1%2526v%253DRgKAFK5djSk%2526sparams%253Dcaps%25252Cv%25252Cexpire%2526caps%253D-lyr%2526hl%253Den_US%2526expire%253D1480973077%2526signature%253D753D690165C75A0A1581D3CE28D38BF44E8CDA15.23858BE0085007BF2A69314B806C12732FF7A231%2526lang%253Dund&ptk=WMG&oid=YbGWGCIUCoaUePqGy_acMw&tmi=1&pltype=content&thumbnail_url=https%3A%2F%2Fi.ytimg.com%2Fvi%2FRgKAFK5djSk%2Fdefault.jpg&keywords=Wiz+Khalifa%2CBlacc+Hollywood%2CTaylor+Gang%2CAtlantic+Records%2Chip+hop%2Cwiz%2Ckhalifa%2CPittsburgh%2CLos+Angeles%2Ctaylorgangent%2CTGOD%2Ctaylor+gang+or+die%2CFurious+7%2Cpaul+walker%2Cpaul+walker+tribute%2CSee+You+Again+%28Composition%29%2CFast+%26+Furious+6+%28Award-Winning+Work%29%2CSee+you+again%2Cvin+diesel%2CMichelle+Rodriguez+%28Celebrity%29%2Ccharlie+puth%2CGRAMMYS&t=1&url_encoded_fmt_stream_map=url%3Dhttps%253A%252F%252Fr5---sn-hp57knly.googlevideo.com%252Fvideoplayback%253Fip%253D209.59.90.242%2526mime%253Dvideo%25252Fmp4%2526requiressl%253Dyes%2526mn%253Dsn-hp57knly%2526pl%253D24%2526source%253Dyoutube%2526mm%253D31%2526mv%253Dm%2526mt%253D1480947656%2526ms%253Dau%2526id%253Do-AM7-Jfun5pc-Y72NsTHEILPZ-ey6Jmr-Zl8i6n7lvTRL%2526expire%253D1480969477%2526lmt%253D1478641815072232%2526sparams%253Ddur%25252Cei%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cnh%25252Cpl%25252Cratebypass%25252Crequiressl%25252Csource%25252Cupn%25252Cexpire%2526ei%253DpXhFWPGAMNjC-AWZgJfwAw%2526initcwndbps%253D160000%2526signature%253D2291EDD85F38B675D1FF8B672C86CD621DD0AA26.9F052848BCF3F646B37A29B5548C3ED23B481E9A%2526dur%253D237.424%2526nh%253DIgpwcjAyLm1pYTA0Kgw2My4yNDUuNi4xODE%2526key%253Dyt6%2526upn%253Dj43tDjKmyec%2526ipbits%253D0%2526ratebypass%253Dyes%2526itag%253D22%26type%3Dvideo%252Fmp4%253B%2Bcodecs%253D%2522avc1.64001F%252C%2Bmp4a.40.2%2522%26itag%3D22%26quality%3Dhd720%2Curl%3Dhttps%253A%252F%252Fr5---sn-hp57knly.googlevideo.com%252Fvideoplayback%253Fip%253D209.59.90.242%2526mime%253Dvideo%25252Fwebm%2526requiressl%253Dyes%2526mn%253Dsn-hp57knly%2526pl%253D24%2526source%253Dyoutube%2526mm%253D31%2526mv%253Dm%2526mt%253D1480947656%2526ms%253Dau%2526id%253Do-AM7-Jfun5pc-Y72NsTHEILPZ-ey6Jmr-Zl8i6n7lvTRL%2526expire%253D1480969477%2526gir%253Dyes%2526lmt%253D1428274110763456%2526sparams%253Dclen%25252Cdur%25252Cei%25252Cgir%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cnh%25252Cpl%25252Cratebypass%25252Crequiressl%25252Csource%25252Cupn%25252Cexpire%2526ei%253DpXhFWPGAMNjC-AWZgJfwAw%2526initcwndbps%253D160000%2526signature%253D40ADD080E3BE1C7141C1FB060599CF71950F98EA.370D1A3FBDDC54E7F5B6823F4A7E151B586F22CE%2526dur%253D0.000%2526nh%253DIgpwcjAyLm1pYTA0Kgw2My4yNDUuNi4xODE%2526key%253Dyt6%2526upn%253Dj43tDjKmyec%2526ipbits%253D0%2526ratebypass%253Dyes%2526itag%253D43%2526clen%253D18764299%26type%3Dvideo%252Fwebm%253B%2Bcodecs%253D%2522vp8.0%252C%2Bvorbis%2522%26itag%3D43%26quality%3Dmedium%2Curl%3Dhttps%253A%252F%252Fr5---sn-hp57knly.googlevideo.com%252Fvideoplayback%253Fip%253D209.59.90.242%2526mime%253Dvideo%25252Fmp4%2526requiressl%253Dyes%2526mn%253Dsn-hp57knly%2526pl%253D24%2526source%253Dyoutube%2526mm%253D31%2526mv%253Dm%2526mt%253D1480947656%2526ms%253Dau%2526id%253Do-AM7-Jfun5pc-Y72NsTHEILPZ-ey6Jmr-Zl8i6n7lvTRL%2526expire%253D1480969477%2526gir%253Dyes%2526lmt%253D1478639667037991%2526sparams%253Dclen%25252Cdur%25252Cei%25252Cgir%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cnh%25252Cpl%25252Cratebypass%25252Crequiressl%25252Csource%25252Cupn%25252Cexpire%2526ei%253DpXhFWPGAMNjC-AWZgJfwAw%2526initcwndbps%253D160000%2526signature%253D075E7AC404AAFA3F6213A296D3CD5710D5E0B9D2.4870DBE8B13429A32A772F2834BA1DA96A546699%2526dur%253D237.424%2526nh%253DIgpwcjAyLm1pYTA0Kgw2My4yNDUuNi4xODE%2526key%253Dyt6%2526upn%253Dj43tDjKmyec%2526ipbits%253D0%2526ratebypass%253Dyes%2526itag%253D18%2526clen%253D13660169%26type%3Dvideo%252Fmp4%253B%2Bcodecs%253D%2522avc1.42001E%252C%2Bmp4a.40.2%2522%26itag%3D18%26quality%3Dmedium%2Curl%3Dhttps%253A%252F%252Fr5---sn-hp57knly.googlevideo.com%252Fvideoplayback%253Fip%253D209.59.90.242%2526mime%253Dvideo%25252F3gpp%2526requiressl%253Dyes%2526mn%253Dsn-hp57knly%2526pl%253D24%2526source%253Dyoutube%2526mm%253D31%2526mv%253Dm%2526mt%253D1480947656%2526ms%253Dau%2526id%253Do-AM7-Jfun5pc-Y72NsTHEILPZ-ey6Jmr-Zl8i6n7lvTRL%2526expire%253D1480969477%2526gir%253Dyes%2526lmt%253D1428273517937613%2526sparams%253Dclen%25252Cdur%25252Cei%25252Cgir%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cnh%25252Cpl%25252Crequiressl%25252Csource%25252Cupn%25252Cexpire%2526ei%253DpXhFWPGAMNjC-AWZgJfwAw%2526initcwndbps%253D160000%2526signature%253DBDC0B2ABFBB4AF34630F62AE91D48B7A51F88455.02EAF30048A6D18C55DA1683DBC4FAB3ED9AC8B7%2526dur%253D237.540%2526nh%253DIgpwcjAyLm1pYTA0Kgw2My4yNDUuNi4xODE%2526key%253Dyt6%2526upn%253Dj43tDjKmyec%2526ipbits%253D0%2526itag%253D36%2526clen%253D6794321%26type%3Dvideo%252F3gpp%253B%2Bcodecs%253D%2522mp4v.20.3%252C%2Bmp4a.40.2%2522%26itag%3D36%26quality%3Dsmall%2Curl%3Dhttps%253A%252F%252Fr5---sn-hp57knly.googlevideo.com%252Fvideoplayback%253Fip%253D209.59.90.242%2526mime%253Dvideo%25252F3gpp%2526requiressl%253Dyes%2526mn%253Dsn-hp57knly%2526pl%253D24%2526source%253Dyoutube%2526mm%253D31%2526mv%253Dm%2526mt%253D1480947656%2526ms%253Dau%2526id%253Do-AM7-Jfun5pc-Y72NsTHEILPZ-ey6Jmr-Zl8i6n7lvTRL%2526expire%253D1480969477%2526gir%253Dyes%2526lmt%253D1428273497121377%2526sparams%253Dclen%25252Cdur%25252Cei%25252Cgir%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cnh%25252Cpl%25252Crequiressl%25252Csource%25252Cupn%25252Cexpire%2526ei%253DpXhFWPGAMNjC-AWZgJfwAw%2526initcwndbps%253D160000%2526signature%253D5B08ED2BF553F7161DF08BD36283A156BB397279.8516AB7E1B9B948D1F96DEB52E7AB3E73FDA35DF%2526dur%253D237.540%2526nh%253DIgpwcjAyLm1pYTA0Kgw2My4yNDUuNi4xODE%2526key%253Dyt6%2526upn%253Dj43tDjKmyec%2526ipbits%253D0%2526itag%253D17%2526clen%253D2463641%26type%3Dvideo%252F3gpp%253B%2Bcodecs%253D%2522mp4v.20.3%252C%2Bmp4a.40.2%2522%26itag%3D17%26quality%3Dsmall&ismb=1280000&innertube_api_version=v1&fmt_list=22%2F1280x720%2F9%2F0%2F115%2C43%2F640x360%2F99%2F0%2F0%2C18%2F640x360%2F9%2F0%2F115%2C36%2F320x180%2F99%2F1%2F0%2C17%2F176x144%2F99%2F1%2F0&allow_ratings=1&apiary_host=&view_count=2235168069&show_pyv_in_related=False&ldpj=-25&innertube_context_client_version=1.20161130&fexp=9413138%2C9419452%2C9422596%2C9424416%2C9428398%2C9431012%2C9432565%2C9433096%2C9433221%2C9434046%2C9434289%2C9439580%2C9439971%2C9441514%2C9441651%2C9442073%2C9444206%2C9445371%2C9445895%2C9446054%2C9446364%2C9448915%2C9449034%2C9449243%2C9451415%2C9452154%2C9452377%2C9452882%2C9453797%2C9454390%2C9454476%2C9454867%2C9456273%2C9456582&avg_rating=4.88237571716&host_language=en&iurlhq=https%3A%2F%2Fi.ytimg.com%2Fvi%2FRgKAFK5djSk%2Fhqdefault.jpg&eventid=pXhFWPGAMNjC-AWZgJfwAw&vmap=%3C%3Fxml+version%3D%221.0%22+encoding%3D%22UTF-8%22%3F%3E%3Cvmap%3AVMAP+xmlns%3Avmap%3D%22http%3A%2F%2Fwww.iab.net%2Fvideosuite%2Fvmap%22+xmlns%3Ayt%3D%22http%3A%2F%2Fyoutube.com%22+version%3D%221.0%22%3E%3C%2Fvmap%3AVMAP%3E&caption_audio_tracks=i%3D0%252C1%26v%3D0%26d%3D0&csi_page_type=watch%2Cwatch7&hl=en_US&iv3_module=1&player_error_log_fraction=1.0&c=WEB&iurl=https%3A%2F%2Fi.ytimg.com%2Fvi%2FRgKAFK5djSk%2Fhqdefault.jpg&iv_load_policy=1&default_audio_track_index=0&token=1&iurlsd=https%3A%2F%2Fi.ytimg.com%2Fvi%2FRgKAFK5djSk%2Fsddefault.jpg", + "body" : "uid=Vp3nfGRxmMadNDuVbJSk8A&rmktEnabled=1&ssl=1&eventid=KUJVWbfPI9vsD-rtoKgJ&apiary_host=&t=1&plid=AAVTHTDQcqAdfWA3&no_get_video_log=1&gapi_hint_params=m%3B%2F_%2Fscs%2Fabc-static%2F_%2Fjs%2Fk%3Dgapi.gapi.en.BznCEch7yrY.O%2Fm%3D__features__%2Frt%3Dj%2Fd%3D1%2Frs%3DAHpOoo89FbxkNsIBOnpzYJliP4nzTuPXPg&probe_url=https%3A%2F%2Fr2---sn-p5qs7nel.googlevideo.com%2Fvideogoodput%3Fid%3Do-AIzuITbiwWMb4_PsDD62bA7oxBfafHQvvd9xW1_fJq4N%26source%3Dgoodput%26range%3D0-4999%26expire%3D1498763321%26ip%3D69.57.233.153%26ms%3Dpm%26mm%3D35%26pl%3D24%26nh%3DIgpwZjAxLmlhZDI2Kg4yMTYuMTU2LjExNi4xNw%26sparams%3Did%2Csource%2Crange%2Cexpire%2Cip%2Cms%2Cmm%2Cpl%2Cnh%26signature%3D679BFDDDCCAAFD704B8B3380650E35F528033D33.5729DF1FD99AD8E1704ADD7DE9F0D3F4AA51ED31%26key%3Dcms1&c=WEB&thumbnail_url=https%3A%2F%2Fi.ytimg.com%2Fvi%2FRgKAFK5djSk%2Fdefault.jpg&baseUrl=https%3A%2F%2Fwww.youtube.com%2Fpagead%2Fviewthroughconversion%2F962985656%2F&innertube_context_client_version=1.20170625&itct=&player_error_log_fraction=1.0&ppv_remarketing_url=https%3A%2F%2Fwww.googleadservices.com%2Fpagead%2Fconversion%2F971134070%2F%3Fbackend%3Dinnertube%26cname%3D1%26cver%3D1_20170625%26data%3Dbackend%253Dinnertube%253Bcname%253D1%253Bcver%253D1_20170625%253Bdactive%253DNone%253Bdynx_itemid%253DRgKAFK5djSk%253Bptype%253Dppv%26label%3DiuZUCLmC72YQ9qiJzwM%26ptype%3Dppv&author=Wiz+Khalifa&xhr_apiary_host=youtubei.youtube.com&rvs=session_data%3Ditct%253DMgllbmRzY3JlZW5IqZr28sqCoIFG%26endscreen_autoplay_session_data%3Dplaynext%253D0%2526autonav%253D1%2526feature%253Drelated-auto%26iurlmq%3Dhttps%253A%252F%252Fi.ytimg.com%252Fvi%252F09R8_2nJtjg%252Fhqdefault.jpg%253Fsqp%253D-oaymwEXCNACELwBSFryq4qpAwkIARUAAIhCGAE%253D%2526rs%253DAOn4CLCKwRFib26bVQhPyYNaMIg5Ut6cNA%26title%3DMaroon%2B5%2B-%2BSugar%26iurlhq%3Dhttps%253A%252F%252Fi.ytimg.com%252Fvi%252F09R8_2nJtjg%252Fhqdefault.jpg%253Fsqp%253D-oaymwEXCNACELwBSFryq4qpAwkIARUAAIhCGAE%253D%2526rs%253DAOn4CLCKwRFib26bVQhPyYNaMIg5Ut6cNA%26length_seconds%3D302%26short_view_count_text%3D2.1B%2Bviews%26author%3DMaroon5VEVO%26id%3D09R8_2nJtjg%2Cvideo_id%3D09R8_2nJtjg%26thumbnail_ids%3D09R8_2nJtjg%26playlist_iurlhq%3Dhttps%253A%252F%252Fi.ytimg.com%252Fvi%252FRgKAFK5djSk%252Fhqdefault.jpg%26list%3DRDRgKAFK5djSk%26playlist_iurlmq%3Dhttps%253A%252F%252Fi.ytimg.com%252Fvi%252FRgKAFK5djSk%252Fmqdefault.jpg%26playlist_length%3D0%26session_data%3Ditct%253DMgllbmRzY3JlZW5IqZr28sqCoIFG%26playlist_title%3DWiz%2BKhalifa%2B-%2BSee%2BYou%2BAgain%2Bft.%2BCharlie%2BPuth%2B%255BOfficial%2BVideo%255D%2BFurious%2B7%2BSoundtrack%2Csession_data%3Ditct%253DMgllbmRzY3JlZW5IqZr28sqCoIFG%26iurlmq%3Dhttps%253A%252F%252Fi.ytimg.com%252Fvi%252FJGwWNGJdvx8%252Fhqdefault.jpg%253Fsqp%253D-oaymwEXCNACELwBSFryq4qpAwkIARUAAIhCGAE%253D%2526rs%253DAOn4CLCLi56stYW1ZPn2_xADBDQspphvnA%26title%3DEd%2BSheeran%2B-%2BShape%2Bof%2BYou%2B%255BOfficial%2BVideo%255D%26iurlhq%3Dhttps%253A%252F%252Fi.ytimg.com%252Fvi%252FJGwWNGJdvx8%252Fhqdefault.jpg%253Fsqp%253D-oaymwEXCNACELwBSFryq4qpAwkIARUAAIhCGAE%253D%2526rs%253DAOn4CLCLi56stYW1ZPn2_xADBDQspphvnA%26length_seconds%3D264%26short_view_count_text%3D1.6B%2Bviews%26author%3DEd%2BSheeran%26id%3DJGwWNGJdvx8%2Csession_data%3Ditct%253DMgllbmRzY3JlZW5IqZr28sqCoIFG%26iurlmq%3Dhttps%253A%252F%252Fi.ytimg.com%252Fvi%252FBxuY9FET9Y4%252Fhqdefault.jpg%253Fsqp%253D-oaymwEXCNACELwBSFryq4qpAwkIARUAAIhCGAE%253D%2526rs%253DAOn4CLCqz8Z0YV4fu6VAiIU_31BpmkSyKg%26title%3DCharlie%2BPuth%2B-%2BOne%2BCall%2BAway%2B%255BOfficial%2BVideo%255D%26iurlhq%3Dhttps%253A%252F%252Fi.ytimg.com%252Fvi%252FBxuY9FET9Y4%252Fhqdefault.jpg%253Fsqp%253D-oaymwEXCNACELwBSFryq4qpAwkIARUAAIhCGAE%253D%2526rs%253DAOn4CLCqz8Z0YV4fu6VAiIU_31BpmkSyKg%26length_seconds%3D242%26short_view_count_text%3D425M%2Bviews%26author%3DCharlie%2BPuth%26id%3DBxuY9FET9Y4%2Csession_data%3Ditct%253DMgllbmRzY3JlZW5IqZr28sqCoIFG%26iurlmq%3Dhttps%253A%252F%252Fi.ytimg.com%252Fvi%252FPMivT7MJ41M%252Fhqdefault.jpg%253Fsqp%253D-oaymwEXCNACELwBSFryq4qpAwkIARUAAIhCGAE%253D%2526rs%253DAOn4CLCXHGJYQ6wq4-yZze56E2SFulucxg%26title%3DBruno%2BMars%2B-%2BThat%25E2%2580%2599s%2BWhat%2BI%2BLike%2B%255BOfficial%2BVideo%255D%26iurlhq%3Dhttps%253A%252F%252Fi.ytimg.com%252Fvi%252FPMivT7MJ41M%252Fhqdefault.jpg%253Fsqp%253D-oaymwEXCNACELwBSFryq4qpAwkIARUAAIhCGAE%253D%2526rs%253DAOn4CLCXHGJYQ6wq4-yZze56E2SFulucxg%26length_seconds%3D211%26short_view_count_text%3D632M%2Bviews%26author%3DBruno%2BMars%26id%3DPMivT7MJ41M%2Csession_data%3Ditct%253DMgllbmRzY3JlZW5IqZr28sqCoIFG%26iurlmq%3Dhttps%253A%252F%252Fi.ytimg.com%252Fvi%252FjGflUbPQfW8%252Fhqdefault.jpg%253Fsqp%253D-oaymwEXCNACELwBSFryq4qpAwkIARUAAIhCGAE%253D%2526rs%253DAOn4CLBkltoK6uy_x9OAU0hfaneunhtz0w%26title%3DOMI%2B-%2BCheerleader%2B%2528Felix%2BJaehn%2BRemix%2529%2B%255BOfficial%2BVideo%255D%26iurlhq%3Dhttps%253A%252F%252Fi.ytimg.com%252Fvi%252FjGflUbPQfW8%252Fhqdefault.jpg%253Fsqp%253D-oaymwEXCNACELwBSFryq4qpAwkIARUAAIhCGAE%253D%2526rs%253DAOn4CLBkltoK6uy_x9OAU0hfaneunhtz0w%26length_seconds%3D190%26short_view_count_text%3D744M%2Bviews%26author%3DUltra%2BMusic%26id%3DjGflUbPQfW8%2Csession_data%3Ditct%253DMgllbmRzY3JlZW5IqZr28sqCoIFG%26iurlmq%3Dhttps%253A%252F%252Fi.ytimg.com%252Fvi%252FuelHwf8o7_U%252Fhqdefault.jpg%253Fsqp%253D-oaymwEXCNACELwBSFryq4qpAwkIARUAAIhCGAE%253D%2526rs%253DAOn4CLAAUbTVdyarEaGzBPlHQX4rzAl0Lg%26title%3DEminem%2B-%2BLove%2BThe%2BWay%2BYou%2BLie%2Bft.%2BRihanna%26iurlhq%3Dhttps%253A%252F%252Fi.ytimg.com%252Fvi%252FuelHwf8o7_U%252Fhqdefault.jpg%253Fsqp%253D-oaymwEXCNACELwBSFryq4qpAwkIARUAAIhCGAE%253D%2526rs%253DAOn4CLAAUbTVdyarEaGzBPlHQX4rzAl0Lg%26length_seconds%3D267%26short_view_count_text%3D1.3B%2Bviews%26author%3DEminemVEVO%26id%3DuelHwf8o7_U%2Csession_data%3Ditct%253DMgllbmRzY3JlZW5IqZr28sqCoIFG%26iurlmq%3Dhttps%253A%252F%252Fi.ytimg.com%252Fvi%252FYQHsXMglC9A%252Fhqdefault.jpg%253Fsqp%253D-oaymwEXCNACELwBSFryq4qpAwkIARUAAIhCGAE%253D%2526rs%253DAOn4CLBIoRclneT9jkp3y0V9f5zi-dhuVw%26title%3DAdele%2B-%2BHello%26iurlhq%3Dhttps%253A%252F%252Fi.ytimg.com%252Fvi%252FYQHsXMglC9A%252Fhqdefault.jpg%253Fsqp%253D-oaymwEXCNACELwBSFryq4qpAwkIARUAAIhCGAE%253D%2526rs%253DAOn4CLBIoRclneT9jkp3y0V9f5zi-dhuVw%26length_seconds%3D367%26short_view_count_text%3D1.9B%2Bviews%26author%3DAdeleVEVO%26id%3DYQHsXMglC9A%2Csession_data%3Ditct%253DMgllbmRzY3JlZW5IqZr28sqCoIFG%26iurlmq%3Dhttps%253A%252F%252Fi.ytimg.com%252Fvi%252FDK_0jXPuIr0%252Fhqdefault.jpg%253Fsqp%253D-oaymwEXCNACELwBSFryq4qpAwkIARUAAIhCGAE%253D%2526rs%253DAOn4CLDZsgCMhm9cUR_5XkuvLOnd3ufKdQ%26title%3DJustin%2BBieber%2B-%2BWhat%2BDo%2BYou%2BMean%253F%26iurlhq%3Dhttps%253A%252F%252Fi.ytimg.com%252Fvi%252FDK_0jXPuIr0%252Fhqdefault.jpg%253Fsqp%253D-oaymwEXCNACELwBSFryq4qpAwkIARUAAIhCGAE%253D%2526rs%253DAOn4CLDZsgCMhm9cUR_5XkuvLOnd3ufKdQ%26length_seconds%3D298%26short_view_count_text%3D1.7B%2Bviews%26author%3DJustinBieberVEVO%26id%3DDK_0jXPuIr0%2Csession_data%3Ditct%253DMgllbmRzY3JlZW5IqZr28sqCoIFG%26iurlmq%3Dhttps%253A%252F%252Fi.ytimg.com%252Fvi%252Fnfs8NYg7yQM%252Fhqdefault.jpg%253Fsqp%253D-oaymwEXCNACELwBSFryq4qpAwkIARUAAIhCGAE%253D%2526rs%253DAOn4CLDczOm2B01GUZ2yP7hoWeCn7F3b7w%26title%3DCharlie%2BPuth%2B-%2BAttention%2B%255BOfficial%2BVideo%255D%26iurlhq%3Dhttps%253A%252F%252Fi.ytimg.com%252Fvi%252Fnfs8NYg7yQM%252Fhqdefault.jpg%253Fsqp%253D-oaymwEXCNACELwBSFryq4qpAwkIARUAAIhCGAE%253D%2526rs%253DAOn4CLDczOm2B01GUZ2yP7hoWeCn7F3b7w%26length_seconds%3D232%26short_view_count_text%3D177M%2Bviews%26author%3DCharlie%2BPuth%26id%3Dnfs8NYg7yQM%2Csession_data%3Ditct%253DMgllbmRzY3JlZW5IqZr28sqCoIFG%26iurlmq%3Dhttps%253A%252F%252Fi.ytimg.com%252Fvi%252FnWAGLkyxQG0%252Fhqdefault.jpg%253Fsqp%253D-oaymwEXCNACELwBSFryq4qpAwkIARUAAIhCGAE%253D%2526rs%253DAOn4CLB9BnLV9oJC6zU-UsnODVUK5Ob_7g%26title%3DWiz%2BKhalifa%2B-%2BBlack%2BAnd%2BYellow%2B%255BG-Mix%255D%2Bft.%2BSnoop%2BDogg%252C%2BJuicy%2BJ%2B%2526%2BT-Pain%26iurlhq%3Dhttps%253A%252F%252Fi.ytimg.com%252Fvi%252FnWAGLkyxQG0%252Fhqdefault.jpg%253Fsqp%253D-oaymwEXCNACELwBSFryq4qpAwkIARUAAIhCGAE%253D%2526rs%253DAOn4CLB9BnLV9oJC6zU-UsnODVUK5Ob_7g%26length_seconds%3D289%26short_view_count_text%3D287M%2Bviews%26author%3DWiz%2BKhalifa%26id%3DnWAGLkyxQG0%2Csession_data%3Ditct%253DMgllbmRzY3JlZW5IqZr28sqCoIFG%26iurlmq%3Dhttps%253A%252F%252Fi.ytimg.com%252Fvi%252FpB-5XG-DbAA%252Fhqdefault.jpg%253Fsqp%253D-oaymwEXCNACELwBSFryq4qpAwkIARUAAIhCGAE%253D%2526rs%253DAOn4CLBHCPC-H-obOaxzZqJjaLfbwlVAkg%26title%3DSam%2BSmith%2B-%2BStay%2BWith%2BMe%26iurlhq%3Dhttps%253A%252F%252Fi.ytimg.com%252Fvi%252FpB-5XG-DbAA%252Fhqdefault.jpg%253Fsqp%253D-oaymwEXCNACELwBSFryq4qpAwkIARUAAIhCGAE%253D%2526rs%253DAOn4CLBHCPC-H-obOaxzZqJjaLfbwlVAkg%26length_seconds%3D210%26short_view_count_text%3D754M%2Bviews%26author%3DSamSmithWorldVEVO%26id%3DpB-5XG-DbAA×tamp=1498759722&vid=RgKAFK5djSk&innertube_api_version=v1&swf_player_response=1&iv_invideo_url=https%3A%2F%2Fwww.youtube.com%2Fannotations_invideo%3Fcap_hist%3D1%26video_id%3DRgKAFK5djSk%26client%3D1%26ei%3DKUJVWbfPI9vsD-rtoKgJ&ldpj=-9&pyv_ad_channel=&title=Wiz+Khalifa+-+See+You+Again+ft.+Charlie+Puth+%5BOfficial+Video%5D+Furious+7+Soundtrack&iv3_module=1&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&relative_loudness=3.61100006104&allow_ratings=1&csi_page_type=watch%2Cwatch7&show_pyv_in_related=False&hl=en_US&token=1&cver=1.20170625&tmi=1&vmap=%3C%3Fxml+version%3D%221.0%22+encoding%3D%22UTF-8%22%3F%3E%3Cvmap%3AVMAP+xmlns%3Avmap%3D%22http%3A%2F%2Fwww.iab.net%2Fvideosuite%2Fvmap%22+xmlns%3Ayt%3D%22http%3A%2F%2Fyoutube.com%22+version%3D%221.0%22%3E%3C%2Fvmap%3AVMAP%3E&atc=a%3D3%26b%3DkRTLVpRXiMhCKUdOGbSzTtXF_i8%26c%3D1498759721%26d%3D1%26e%3DRgKAFK5djSk%26c3a%3D28%26c1a%3D1%26c6a%3D1%26hh%3DVL76EW3EcE01FMmi87A-DjGvdcD37Jc6L9y_PbUKKdY&video_id=RgKAFK5djSk&fmt_list=22%2F1280x720%2F9%2F0%2F115%2C43%2F640x360%2F99%2F0%2F0%2C18%2F640x360%2F9%2F0%2F115%2C36%2F320x180%2F99%2F1%2F0%2C17%2F176x144%2F99%2F1%2F0&ismb=2410000&videostats_playback_base_url=https%3A%2F%2Fs.youtube.com%2Fapi%2Fstats%2Fplayback%3Fdocid%3DRgKAFK5djSk%26ns%3Dyt%26plid%3DAAVTHTDQcqAdfWA3%26el%3Ddetailpage%26ei%3DKUJVWbfPI9vsD-rtoKgJ%26len%3D238%26cl%3D160466596%26vm%3DCAIQABgB%26fexp%3D9422596%252C9431012%252C9434046%252C9434289%252C9446054%252C9446364%252C9449243%252C9453897%252C9455776%252C9457141%252C9460072%252C9463594%252C9465813%252C9466793%252C9466795%252C9466797%252C9467217%252C9468797%252C9468799%252C9468805%252C9477080%252C9480475%252C9480503%26of%3DIlBcbmRub0I6rjmmfEtZrg&player_response=%7B%22captions%22%3A%7B%22playerCaptionsTracklistRenderer%22%3A%7B%22captionTracks%22%3A%5B%7B%22baseUrl%22%3A%22https%3A%2F%2Fwww.youtube.com%2Fapi%2Ftimedtext%3Fv%3DRgKAFK5djSk%5Cu0026sparams%3Dcaps%252Cv%252Cexpire%5Cu0026expire%3D1498784921%5Cu0026hl%3Den_US%5Cu0026caps%3D-lyr%5Cu0026key%3Dyttt1%5Cu0026signature%3D4B145E075E5CA59494DC13864E289162DA663ECA.7D4FF244F093AF1B237D0A10933FD5AE5675FF11%5Cu0026lang%3Den%22%2C%22name%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22English%22%7D%5D%7D%2C%22vssId%22%3A%22.en%22%2C%22languageCode%22%3A%22en%22%2C%22isTranslatable%22%3Atrue%7D%2C%7B%22baseUrl%22%3A%22https%3A%2F%2Fwww.youtube.com%2Fapi%2Ftimedtext%3Fv%3DRgKAFK5djSk%5Cu0026sparams%3Dcaps%252Cv%252Cexpire%5Cu0026expire%3D1498784921%5Cu0026hl%3Den_US%5Cu0026caps%3D-lyr%5Cu0026key%3Dyttt1%5Cu0026signature%3D4B145E075E5CA59494DC13864E289162DA663ECA.7D4FF244F093AF1B237D0A10933FD5AE5675FF11%5Cu0026lang%3Dund%22%2C%22name%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22und%22%7D%5D%7D%2C%22vssId%22%3A%22.und%22%2C%22languageCode%22%3A%22und%22%2C%22isTranslatable%22%3Atrue%7D%5D%2C%22audioTracks%22%3A%5B%7B%22captionTrackIndices%22%3A%5B0%2C1%5D%2C%22defaultCaptionTrackIndex%22%3A0%2C%22visibility%22%3A%22UNKNOWN%22%2C%22hasDefaultTrack%22%3Atrue%7D%5D%2C%22translationLanguages%22%3A%5B%7B%22languageCode%22%3A%22af%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Afrikaans%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22sq%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Albanian%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22am%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Amharic%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22ar%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Arabic%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22hy%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Armenian%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22az%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Azerbaijani%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22bn%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Bangla%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22eu%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Basque%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22be%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Belarusian%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22bs%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Bosnian%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22bg%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Bulgarian%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22my%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Burmese%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22ca%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Catalan%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22ceb%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Cebuano%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22zh-Hans%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Chinese+%28Simplified%29%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22zh-Hant%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Chinese+%28Traditional%29%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22co%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Corsican%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22hr%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Croatian%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22cs%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Czech%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22da%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Danish%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22nl%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Dutch%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22en%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22English%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22eo%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Esperanto%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22et%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Estonian%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22fil%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Filipino%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22fi%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Finnish%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22fr%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22French%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22gl%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Galician%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22ka%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Georgian%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22de%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22German%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22el%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Greek%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22gu%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Gujarati%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22ht%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Haitian+Creole%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22ha%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Hausa%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22haw%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Hawaiian%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22iw%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Hebrew%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22hi%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Hindi%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22hmn%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Hmong%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22hu%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Hungarian%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22is%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Icelandic%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22ig%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Igbo%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22id%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Indonesian%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22ga%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Irish%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22it%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Italian%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22ja%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Japanese%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22jv%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Javanese%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22kn%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Kannada%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22kk%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Kazakh%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22km%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Khmer%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22ko%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Korean%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22ku%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Kurdish%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22ky%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Kyrgyz%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22lo%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Lao%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22la%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Latin%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22lv%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Latvian%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22lt%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Lithuanian%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22lb%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Luxembourgish%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22mk%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Macedonian%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22mg%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Malagasy%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22ms%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Malay%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22ml%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Malayalam%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22mt%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Maltese%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22mi%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Maori%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22mr%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Marathi%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22mn%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Mongolian%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22ne%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Nepali%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22no%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Norwegian%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22ny%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Nyanja%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22ps%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Pashto%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22fa%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Persian%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22pl%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Polish%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22pt%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Portuguese%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22pa%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Punjabi%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22ro%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Romanian%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22ru%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Russian%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22sm%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Samoan%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22gd%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Scottish+Gaelic%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22sr%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Serbian%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22sn%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Shona%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22sd%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Sindhi%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22si%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Sinhala%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22sk%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Slovak%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22sl%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Slovenian%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22so%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Somali%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22st%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Southern+Sotho%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22es%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Spanish%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22su%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Sundanese%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22sw%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Swahili%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22sv%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Swedish%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22tg%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Tajik%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22ta%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Tamil%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22te%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Telugu%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22th%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Thai%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22tr%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Turkish%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22uk%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Ukrainian%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22ur%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Urdu%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22uz%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Uzbek%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22vi%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Vietnamese%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22cy%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Welsh%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22fy%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Western+Frisian%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22xh%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Xhosa%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22yi%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Yiddish%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22yo%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Yoruba%22%7D%5D%7D%7D%2C%7B%22languageCode%22%3A%22zu%22%2C%22languageName%22%3A%7B%22runs%22%3A%5B%7B%22text%22%3A%22Zulu%22%7D%5D%7D%7D%5D%2C%22defaultAudioTrackIndex%22%3A0%7D%7D%2C%22videoDetails%22%3A%7B%22thumbnail%22%3A%7B%22thumbnails%22%3A%5B%7B%22url%22%3A%22https%3A%2F%2Fi.ytimg.com%2Fvi%2FRgKAFK5djSk%2Fhqdefault.jpg%3Fsqp%3D-oaymwEWCKgBEF5IWvKriqkDCQgBFQAAiEIYAQ%3D%3D%5Cu0026rs%3DAOn4CLAyrsmOlswFAaXzOgZqdBfADYxfVQ%22%2C%22width%22%3A168%2C%22height%22%3A94%7D%2C%7B%22url%22%3A%22https%3A%2F%2Fi.ytimg.com%2Fvi%2FRgKAFK5djSk%2Fhqdefault.jpg%3Fsqp%3D-oaymwEWCMQBEG5IWvKriqkDCQgBFQAAiEIYAQ%3D%3D%5Cu0026rs%3DAOn4CLAu_1tStvhHo-Jv7FqjkwWRV1SXPA%22%2C%22width%22%3A196%2C%22height%22%3A110%7D%2C%7B%22url%22%3A%22https%3A%2F%2Fi.ytimg.com%2Fvi%2FRgKAFK5djSk%2Fhqdefault.jpg%3Fsqp%3D-oaymwEXCPYBEIoBSFryq4qpAwkIARUAAIhCGAE%3D%5Cu0026rs%3DAOn4CLAz55sBu7J6QcepkDGcPGCVbhmXbA%22%2C%22width%22%3A246%2C%22height%22%3A138%7D%2C%7B%22url%22%3A%22https%3A%2F%2Fi.ytimg.com%2Fvi%2FRgKAFK5djSk%2Fhqdefault.jpg%3Fsqp%3D-oaymwEXCNACELwBSFryq4qpAwkIARUAAIhCGAE%3D%5Cu0026rs%3DAOn4CLCvqptPv0CRY6DTIhfEZ1sLRBdVyg%22%2C%22width%22%3A336%2C%22height%22%3A188%7D%5D%7D%7D%2C%22adSafetyReason%22%3A%7B%22isRemarketingEnabled%22%3Atrue%2C%22isFocEnabled%22%3Atrue%7D%7D&host_language=en&oid=YbGWGCIUCoaUePqGy_acMw&ptk=WMG&fexp=9422596%2C9431012%2C9434046%2C9434289%2C9446054%2C9446364%2C9449243%2C9453897%2C9455776%2C9457141%2C9460072%2C9463594%2C9465813%2C9466793%2C9466795%2C9466797%2C9467217%2C9468797%2C9468799%2C9468805%2C9477080%2C9480475%2C9480503&loudness=-17.388999939&status=ok&account_playback_token=QUFFLUhqbUtlVjMtdm0xNEFJUjE1UmhlVHUtbU1RZEROUXxBQ3Jtc0ttdEpqOGpscVk2MzRNbU1FdGZ4WXBSV1MyZGsyT3E0Z2U2S1lVc1lQc3lidEkxWVlXMDBPY3YzWVNzUFBDRmVyVDRfT3NFUjZYTWkyZkljWE1HYU80UEw5Nno3RlBMSVVXVkJFallhRXppWWJXX0JjYw%3D%3D&apiary_host_firstparty=&focEnabled=1&ucid=UCVp3nfGRxmMadNDuVbJSk8A&idpj=-5&pltype=content&ptchn=Vp3nfGRxmMadNDuVbJSk8A&is_listed=1&vm=CAIQABgB&cl=160466596&of=IlBcbmRub0I6rjmmfEtZrg&avg_rating=4.87655305862&keywords=Wiz+Khalifa%2CBlacc+Hollywood%2CTaylor+Gang%2CAtlantic+Records%2Chip+hop%2Cwiz%2Ckhalifa%2CPittsburgh%2CLos+Angeles%2Ctaylorgangent%2CTGOD%2Ctaylor+gang+or+die%2CFurious+7%2Cpaul+walker%2Cpaul+walker+tribute%2CSee+You+Again+%28Composition%29%2CFast+%26+Furious+6+%28Award-Winning+Work%29%2CSee+you+again%2Cvin+diesel%2CMichelle+Rodriguez+%28Celebrity%29%2Ccharlie+puth%2CGRAMMYS&fflags=persist_text_on_preview_button%3Dtrue%26variable_load_timeout_ms%3D0%26logo_src%3D%26html5_background_quality_cap%3D360%26disable_max_adsense_channel_limit%3Dtrue%26king_crimson_player%3Dfalse%26autoplay_time%3D8000%26html5_min_secs_between_format_selections%3D8.0%26html5_strip_emsg%3Dtrue%26html5_repredict_misses%3D5%26html5_max_buffer_health_for_downgrade%3D15%26mweb_muted_autoplay_animation%3Dnone%26kids_enable_block_servlet%3Dtrue%26html5_long_term_bandwidth_window_size%3D0%26enable_playlist_multi_season%3Dtrue%26html5_report_conn%3Dtrue%26mweb_enable_skippables_on_iphone%3Dtrue%26disable_client_side_midroll_freq_capping%3Dtrue%26html5_new_preloading%3Dtrue%26website_actions_use_companion_image_as_banner%3Dtrue%26web_player_flash_fallback_killswitch%3Dtrue%26html5_reduce_startup_rebuffers%3Dtrue%26uniplayer_dbp%3Dtrue%26html5_observed_downgrade_prop%3D0.0%26html5_vp9_live_whitelist%3Dfalse%26chrome_promo_enabled%3Dtrue%26html5_min_startup_smooth_target%3D10.0%26html5_tight_max_buffer_allowed_bandwidth_stddevs%3D0.0%26html5_suspend_manifest_on_pause%3Dtrue%26html5_clearance_fix%3Dtrue%26html5_disable_audio_slicing%3Dtrue%26html5_variability_discount%3D0.5%26request_mpu_on_unfilled_ad_break%3Dtrue%26android_buy_bucket_buy_flows%3Dtrue%26html5_stale_dash_manifest_retry_factor%3D1.0%26html5_request_sizing_multiplier%3D0.8%26html5_suspended_state%3Dtrue%26html5_live_4k_more_buffer%3Dtrue%26vss_dni_delayping%3D0%26flex_theater_mode%3Dtrue%26youtubei_for_web%3Dtrue%26use_fast_fade_in_0s%3Dtrue%26ad_duration_threshold_for_showing_endcap_seconds%3D15%26enable_live_state_auth%3Dtrue%26max_resolution_for_white_noise%3D360%26disable_reporting_html5_no_vast_ads_as_error%3Dtrue%26web_player_api_logging_fraction%3D0.01%26kids_enable_terms_servlet%3Dtrue%26legacy_autoplay_flag%3Dtrue%26html5_subsegment_readahead_target_buffer_health_secs%3D0.5%26html5_variability_no_discount_thresh%3D1.0%26html5_min_vss_watchtime_to_cut_secs_redux%3D0.0%26html5_max_av_sync_drift%3D50%26html5_tight_max_buffer_allowed_impaired_time%3D0.0%26watermark_src%3D%26enable_offer_restricts_for_watch_page_offers%3Dtrue%26stop_using_ima_sdk_gpt_request_activity%3Dtrue%26html5_disable_non_contiguous%3Dtrue%26use_push_for_desktop_live_chat%3Dtrue%26king_crimson_player_redux%3Dtrue%26html5_post_interrupt_readahead%3D20%26html5_pause_manifest_ended%3Dtrue%26dynamic_ad_break_seek_threshold_sec%3D0%26html5_max_buffer_duration%3D0%26sdk_wrapper_levels_allowed%3D0%26mysubs_highlight_shelf_counterfactual%3Dfalse%26html5_check_for_reseek%3Dtrue%26ios_disable_notification_preprompt%3Dtrue%26html5_bandwidth_window_size%3D0%26html5_throttle_rate%3D0.0%26player_interaction_logging%3Dtrue%26enable_ccs_buy_flow_for_chirp%3Dtrue%26player_destroy_old_version%3Dtrue%26report_promotes_terrorism_android%3Dtrue%26pla_shelf_hovercard%3Dtrue%26doubleclick_gpt_retagging%3Dtrue%26live_chunk_readahead%3D3%26midroll_notify_time_seconds%3D5%26mobile_disable_ad_mob_on_home%3Dtrue%26show_countdown_on_bumper%3Dtrue%26html5_adjust_effective_request_size%3Dtrue%26html5_deadzone_multiplier%3D1.1%26postroll_notify_time_seconds%3D5%26html5_min_readbehind_cap_secs%3D0%26new_promo_page%3Dtrue%26kids_enable_post_onboarding_red_flow%3Dtrue%26html5_get_video_info_promiseajax%3Dtrue%26html5_use_adaptive_live_readahead%3Dtrue%26html5_spherical_bicubic_mode%3D0%26disable_new_pause_state3%3Dtrue%26html5_min_readbehind_secs%3D0%26report_promotes_terrorism_desktop%3Dtrue%26disable_search_mpu%3Dtrue%26lugash_header_warmup%3Dtrue%26html5_background_cap_idle_secs%3D60%26html5_deferred_source_buffer_creation%3Dtrue%26website_actions_throttle_percentage%3D1.0%26playready_on_borg%3Dtrue%26html5_ad_no_buffer_abort_after_skippable%3Dtrue%26html5_subsegment_readahead_timeout_secs%3D2.0%26enable_plus_page_pts%3Dtrue%26report_promotes_terrorism_ios%3Dtrue%26html5_enable_embedded_player_visibility_signals%3Dtrue%26html5_always_reload_on_403%3Dtrue%26android_native_live_enablement%3Dtrue%26ios_notifications_disabled_subs_tab_promoted_item_promo%3Dtrue%26ad_video_end_renderer_duration_milliseconds%3D7000%26html5_live_disable_dg_pacing%3Dtrue%26html5_trust_platform_bitrate_limits%3Dtrue%26html5_get_video_info_timeout_ms%3D0%26lock_fullscreen%3Dfalse%26html5_elbow_tracking_tweaks%3Dtrue%26dash_manifest_version%3D5%26html5_request_size_min_secs%3D0.0%26html5_default_quality_cap%3D0%26large_play_button_src%3D%26enable_bulleit_lidar_integration%3Dtrue%26html5_msi_error_fallback%3Dtrue%26html5_serverside_biscotti_id_wait_ms%3D1000%26dynamic_ad_break_pause_threshold_sec%3D0%26fixed_padding_skip_button%3Dtrue%26html5_local_max_byterate_lookahead%3D15%26html5_no_clear_on_quota_exceeded%3Dtrue%26html5_max_readahead_bandwidth_cap%3D0%26channel_about_page_gadgets%3Dtrue%26fix_api_stats_ads_companion_backfill_break_type%3Dtrue%26signed_out_notifications_inbox%3Dtrue%26yto_enable_watch_offer_module%3Dtrue%26use_new_skip_icon%3Dtrue%26yto_enable_ytr_promo_refresh_assets%3Dtrue%26kids_asset_theme%3Dserver_side_assets%26kids_enable_server_side_assets%3Dtrue%26mweb_pu_android_chrome_54_above%3Dtrue%26html5_nnr_downgrade_count%3D4%26android_enable_thumbnail_overlay_side_panel%3Dfalse%26enable_local_channel%3Dtrue%26html5_always_enable_timeouts%3Dtrue%26use_new_style%3Dtrue%26html5_subsegment_readahead_tail_margin_secs%3D0.2%26mpu_visible_threshold_count%3D2%26mweb_autonav_paddles%3Dtrue%26html5_preload_size_excludes_metadata%3Dtrue%26send_html5_api_stats_ads_abandon%3Dtrue%26show_thumbnail_on_standard%3Dtrue%26html5_min_upgrade_health%3D0%26enable_prefetch_for_postrolls%3Dtrue%26html5_max_vss_watchtime_ratio%3D0.0%26live_readahead_seconds_multiplier%3D0.8%26html5_allowable_liveness_drift_chunks%3D2%26enable_red_carpet_p13n_shelves%3Dtrue%26polymer_report_missing_web_navigation_endpoint%3Dfalse%26html5_connect_timeout_secs%3D7.0%26interaction_log_delayed_event_batch_size%3D200%26html5_retry_media_element_errors_delay%3D0%26yto_enable_unlimited_landing_page_yto_features%3Dtrue%26html5_playing_event_buffer_underrun%3Dtrue%26html5_throttle_burst_secs%3D15.0%26disable_indisplay_adunit_on_embedded%3Dtrue%26sidebar_renderers%3Dtrue%26desktop_cleanup_companion_on_instream_begin%3Dtrue%26fix_gpt_pos_params%3Dtrue%26html5_timeupdate_readystate_check%3Dtrue%26segment_volume_reporting%3Dtrue%26html5_subsegment_readahead_progress_timeout_fraction%3D0.8%26html5_reseek_on_infinite_buffer%3Dtrue%26large_play_button_hover_src%3D%26html5_idle_preload_secs%3D1%26disable_trusted_ad_domains_player_check%3Dtrue%26ios_enable_mixin_accessibility_custom_actions%3Dtrue%26html5_repredict_interval_secs%3D0.0%26live_fresca_v2%3Dtrue%26html5_variability_full_discount_thresh%3D3.0%26lugash_header_by_service%3Dtrue%26html5_seeks_are_not_rebuffers%3Dtrue%26html5_chrome_ambisonics_opus%3Dtrue%26mweb_blacklist_progressive_chrome_mobile%3Dtrue%26logo_gaming_src%3D%26html5_live_pin_to_tail%3Dtrue%26kids_enable_privacy_notice%3Dtrue%26html5_progressive_signature_reload%3Dtrue%26signed_out_notification_settings%3Dtrue%26html5_min_vss_watchtime_to_cut_secs%3D0.0%26enable_pla_desktop_shelf%3Dtrue%26html5_aspect_from_adaptive_format%3Dtrue%26html5_use_mediastream_timestamp%3Dtrue%26html5_min_buffer_to_resume%3D6%26yt_unlimited_pts_skip_ads_promo_desktop_always%3Dtrue%26forced_brand_precap_duration_ms%3D2000%26yto_feature_hub_channel%3Dfalse%26html5_disable_urgent_upgrade_for_quality%3Dtrue%26sdk_ad_prefetch_time_seconds%3D-1&url_encoded_fmt_stream_map=quality%3Dhd720%26type%3Dvideo%252Fmp4%253B%2Bcodecs%253D%2522avc1.64001F%252C%2Bmp4a.40.2%2522%26url%3Dhttps%253A%252F%252Fr2---sn-4avf-cbpe.googlevideo.com%252Fvideoplayback%253Fitag%253D22%2526lmt%253D1478641815072232%2526sparams%253Ddur%25252Cei%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cpl%25252Cratebypass%25252Crequiressl%25252Csource%25252Cexpire%2526ei%253DKUJVWbfPI9vsD-rtoKgJ%2526expire%253D1498781321%2526ratebypass%253Dyes%2526signature%253DA5663A4F653C86C5D05734232457290A4FB6EB98.8865088FD11C94B55E215862E27A17A73C207462%2526requiressl%253Dyes%2526ms%253Dau%2526dur%253D237.424%2526mv%253Dm%2526source%253Dyoutube%2526pl%253D24%2526mime%253Dvideo%25252Fmp4%2526mt%253D1498759620%2526ip%253D69.57.233.153%2526initcwndbps%253D301250%2526key%253Dyt6%2526id%253Do-AKvKPfB9T57KZ2xPQzgzFsTpexmlxuTb-o5d2WS5HSVX%2526mn%253Dsn-4avf-cbpe%2526mm%253D31%2526ipbits%253D0%26itag%3D22%2Cquality%3Dmedium%26type%3Dvideo%252Fwebm%253B%2Bcodecs%253D%2522vp8.0%252C%2Bvorbis%2522%26url%3Dhttps%253A%252F%252Fr2---sn-4avf-cbpe.googlevideo.com%252Fvideoplayback%253Flmt%253D1428274110763456%2526expire%253D1498781321%2526source%253Dyoutube%2526pl%253D24%2526mime%253Dvideo%25252Fwebm%2526key%253Dyt6%2526itag%253D43%2526ei%253DKUJVWbfPI9vsD-rtoKgJ%2526sparams%253Dclen%25252Cdur%25252Cei%25252Cgir%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cpl%25252Cratebypass%25252Crequiressl%25252Csource%25252Cexpire%2526requiressl%253Dyes%2526ratebypass%253Dyes%2526signature%253D630BA9B4A33BF89CE7086B07456F55AF0F9DBB08.D707B960F20CD8699855BEF0ED4AF71D75EFFA02%2526ms%253Dau%2526id%253Do-AKvKPfB9T57KZ2xPQzgzFsTpexmlxuTb-o5d2WS5HSVX%2526dur%253D0.000%2526mv%253Dm%2526mt%253D1498759620%2526clen%253D18764299%2526ip%253D69.57.233.153%2526initcwndbps%253D301250%2526gir%253Dyes%2526mn%253Dsn-4avf-cbpe%2526mm%253D31%2526ipbits%253D0%26itag%3D43%2Cquality%3Dmedium%26type%3Dvideo%252Fmp4%253B%2Bcodecs%253D%2522avc1.42001E%252C%2Bmp4a.40.2%2522%26url%3Dhttps%253A%252F%252Fr2---sn-4avf-cbpe.googlevideo.com%252Fvideoplayback%253Flmt%253D1478639667037991%2526expire%253D1498781321%2526source%253Dyoutube%2526pl%253D24%2526mime%253Dvideo%25252Fmp4%2526key%253Dyt6%2526itag%253D18%2526ei%253DKUJVWbfPI9vsD-rtoKgJ%2526sparams%253Dclen%25252Cdur%25252Cei%25252Cgir%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cpl%25252Cratebypass%25252Crequiressl%25252Csource%25252Cexpire%2526requiressl%253Dyes%2526ratebypass%253Dyes%2526signature%253D08BA7ACDD85E3E6F281EBCAC1DE47A4A56BADA95.C4B996C3BFB5866001EFA9382F3C2F315B081549%2526ms%253Dau%2526id%253Do-AKvKPfB9T57KZ2xPQzgzFsTpexmlxuTb-o5d2WS5HSVX%2526dur%253D237.424%2526mv%253Dm%2526mt%253D1498759620%2526clen%253D13660169%2526ip%253D69.57.233.153%2526initcwndbps%253D301250%2526gir%253Dyes%2526mn%253Dsn-4avf-cbpe%2526mm%253D31%2526ipbits%253D0%26itag%3D18%2Cquality%3Dsmall%26type%3Dvideo%252F3gpp%253B%2Bcodecs%253D%2522mp4v.20.3%252C%2Bmp4a.40.2%2522%26url%3Dhttps%253A%252F%252Fr2---sn-4avf-cbpe.googlevideo.com%252Fvideoplayback%253Flmt%253D1428273517937613%2526expire%253D1498781321%2526source%253Dyoutube%2526pl%253D24%2526mime%253Dvideo%25252F3gpp%2526key%253Dyt6%2526itag%253D36%2526ei%253DKUJVWbfPI9vsD-rtoKgJ%2526sparams%253Dclen%25252Cdur%25252Cei%25252Cgir%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cpl%25252Crequiressl%25252Csource%25252Cexpire%2526requiressl%253Dyes%2526signature%253D02687B44A553F39F6905F69DE84A10D2E4228C43.42C2E7D605AE6837C13E722A4326E5DBFC7B34B8%2526ms%253Dau%2526id%253Do-AKvKPfB9T57KZ2xPQzgzFsTpexmlxuTb-o5d2WS5HSVX%2526dur%253D237.540%2526mv%253Dm%2526mt%253D1498759620%2526clen%253D6794321%2526ip%253D69.57.233.153%2526initcwndbps%253D301250%2526gir%253Dyes%2526mn%253Dsn-4avf-cbpe%2526mm%253D31%2526ipbits%253D0%26itag%3D36%2Cquality%3Dsmall%26type%3Dvideo%252F3gpp%253B%2Bcodecs%253D%2522mp4v.20.3%252C%2Bmp4a.40.2%2522%26url%3Dhttps%253A%252F%252Fr2---sn-4avf-cbpe.googlevideo.com%252Fvideoplayback%253Flmt%253D1428273497121377%2526expire%253D1498781321%2526source%253Dyoutube%2526pl%253D24%2526mime%253Dvideo%25252F3gpp%2526key%253Dyt6%2526itag%253D17%2526ei%253DKUJVWbfPI9vsD-rtoKgJ%2526sparams%253Dclen%25252Cdur%25252Cei%25252Cgir%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cpl%25252Crequiressl%25252Csource%25252Cexpire%2526requiressl%253Dyes%2526signature%253D438C9CFB42F87D15B09CC8DD917B70A51008F96E.4957F4CDC35BDD362A93112F0900B52C6E1ED446%2526ms%253Dau%2526id%253Do-AKvKPfB9T57KZ2xPQzgzFsTpexmlxuTb-o5d2WS5HSVX%2526dur%253D237.540%2526mv%253Dm%2526mt%253D1498759620%2526clen%253D2463641%2526ip%253D69.57.233.153%2526initcwndbps%253D301250%2526gir%253Dyes%2526mn%253Dsn-4avf-cbpe%2526mm%253D31%2526ipbits%253D0%26itag%3D17&innertube_api_key=AIzaSyAO_FJ2SlqU8Q4STEHLGCilw_Y9_11qcW8&cr=US&view_count=2860960540&length_seconds=237&remarketing_url=https%3A%2F%2Fwww.youtube.com%2Fpagead%2Fviewthroughconversion%2F962985656%2F%3Fbackend%3Dinnertube%26cname%3D1%26cver%3D1_20170625%26data%3Dbackend%253Dinnertube%253Bcname%253D1%253Bcver%253D1_20170625%253Bm%253D1%253Bptype%253Dview%253Btype%253Dview%253Butuid%253DVp3nfGRxmMadNDuVbJSk8A%253Butvid%253DRgKAFK5djSk%253Bw%253D1%26foc_id%3DVp3nfGRxmMadNDuVbJSk8A%26label%3Dfollowon_view%26ptype%3Dview&enablecsi=1&allow_embed=1&adaptive_fmts=init%3D0-714%26quality_label%3D1080p%26url%3Dhttps%253A%252F%252Fr2---sn-4avf-cbpe.googlevideo.com%252Fvideoplayback%253Flmt%253D1478640193524064%2526expire%253D1498781321%2526keepalive%253Dyes%2526source%253Dyoutube%2526pl%253D24%2526mime%253Dvideo%25252Fmp4%2526key%253Dyt6%2526itag%253D137%2526ei%253DKUJVWbfPI9vsD-rtoKgJ%2526sparams%253Dclen%25252Cdur%25252Cei%25252Cgir%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Ckeepalive%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cpl%25252Crequiressl%25252Csource%25252Cexpire%2526requiressl%253Dyes%2526signature%253DA43BA0AEDBEE4BD02DCC21FB23CF370DE28BD317.B833CDD99B17BC4D9F60CA2CB4B852A9CB7AD1A6%2526ms%253Dau%2526id%253Do-AKvKPfB9T57KZ2xPQzgzFsTpexmlxuTb-o5d2WS5HSVX%2526dur%253D237.362%2526mv%253Dm%2526mt%253D1498759620%2526clen%253D57309304%2526ip%253D69.57.233.153%2526initcwndbps%253D301250%2526gir%253Dyes%2526mn%253Dsn-4avf-cbpe%2526mm%253D31%2526ipbits%253D0%26lmt%3D1478640193524064%26bitrate%3D3010262%26itag%3D137%26type%3Dvideo%252Fmp4%253B%2Bcodecs%253D%2522avc1.640028%2522%26size%3D1920x1080%26xtags%3D%26clen%3D57309304%26index%3D715-1310%26fps%3D24%26projection_type%3D1%2Cinit%3D0-242%26quality_label%3D1080p%26url%3Dhttps%253A%252F%252Fr2---sn-4avf-cbpe.googlevideo.com%252Fvideoplayback%253Flmt%253D1449572197116515%2526expire%253D1498781321%2526keepalive%253Dyes%2526source%253Dyoutube%2526pl%253D24%2526mime%253Dvideo%25252Fwebm%2526key%253Dyt6%2526itag%253D248%2526ei%253DKUJVWbfPI9vsD-rtoKgJ%2526sparams%253Dclen%25252Cdur%25252Cei%25252Cgir%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Ckeepalive%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cpl%25252Crequiressl%25252Csource%25252Cexpire%2526requiressl%253Dyes%2526signature%253D7F116D439BBE1F4DD58AE57EE34111DC9D9E122C.9A97DF052FC9E4106FCA2AAAB000F3B98C4DE21E%2526ms%253Dau%2526id%253Do-AKvKPfB9T57KZ2xPQzgzFsTpexmlxuTb-o5d2WS5HSVX%2526dur%253D237.320%2526mv%253Dm%2526mt%253D1498759620%2526clen%253D44989679%2526ip%253D69.57.233.153%2526initcwndbps%253D301250%2526gir%253Dyes%2526mn%253Dsn-4avf-cbpe%2526mm%253D31%2526ipbits%253D0%26lmt%3D1449572197116515%26bitrate%3D2711902%26itag%3D248%26type%3Dvideo%252Fwebm%253B%2Bcodecs%253D%2522vp9%2522%26size%3D1920x1080%26xtags%3D%26clen%3D44989679%26index%3D243-1026%26fps%3D24%26projection_type%3D1%2Cinit%3D0-712%26quality_label%3D720p%26url%3Dhttps%253A%252F%252Fr2---sn-4avf-cbpe.googlevideo.com%252Fvideoplayback%253Flmt%253D1478641791638236%2526expire%253D1498781321%2526keepalive%253Dyes%2526source%253Dyoutube%2526pl%253D24%2526mime%253Dvideo%25252Fmp4%2526key%253Dyt6%2526itag%253D136%2526ei%253DKUJVWbfPI9vsD-rtoKgJ%2526sparams%253Dclen%25252Cdur%25252Cei%25252Cgir%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Ckeepalive%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cpl%25252Crequiressl%25252Csource%25252Cexpire%2526requiressl%253Dyes%2526signature%253D3E86AF73732BE64B13E1C30EAC3833FCDE3EE4FA.822775A28F7BB800B33B0840E0265BA00DA67DCF%2526ms%253Dau%2526id%253Do-AKvKPfB9T57KZ2xPQzgzFsTpexmlxuTb-o5d2WS5HSVX%2526dur%253D237.362%2526mv%253Dm%2526mt%253D1498759620%2526clen%253D30067810%2526ip%253D69.57.233.153%2526initcwndbps%253D301250%2526gir%253Dyes%2526mn%253Dsn-4avf-cbpe%2526mm%253D31%2526ipbits%253D0%26lmt%3D1478641791638236%26bitrate%3D1575465%26itag%3D136%26type%3Dvideo%252Fmp4%253B%2Bcodecs%253D%2522avc1.4d401f%2522%26size%3D1280x720%26xtags%3D%26clen%3D30067810%26index%3D713-1308%26fps%3D24%26projection_type%3D1%2Cinit%3D0-242%26quality_label%3D720p%26url%3Dhttps%253A%252F%252Fr2---sn-4avf-cbpe.googlevideo.com%252Fvideoplayback%253Flmt%253D1449573017318199%2526expire%253D1498781321%2526keepalive%253Dyes%2526source%253Dyoutube%2526pl%253D24%2526mime%253Dvideo%25252Fwebm%2526key%253Dyt6%2526itag%253D247%2526ei%253DKUJVWbfPI9vsD-rtoKgJ%2526sparams%253Dclen%25252Cdur%25252Cei%25252Cgir%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Ckeepalive%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cpl%25252Crequiressl%25252Csource%25252Cexpire%2526requiressl%253Dyes%2526signature%253DAE4E213690EFE1A92354166F7FC30BC71090DDBC.6ADBC36123F17AE64D4F5E51752A3896E33C98F1%2526ms%253Dau%2526id%253Do-AKvKPfB9T57KZ2xPQzgzFsTpexmlxuTb-o5d2WS5HSVX%2526dur%253D237.320%2526mv%253Dm%2526mt%253D1498759620%2526clen%253D23491746%2526ip%253D69.57.233.153%2526initcwndbps%253D301250%2526gir%253Dyes%2526mn%253Dsn-4avf-cbpe%2526mm%253D31%2526ipbits%253D0%26lmt%3D1449573017318199%26bitrate%3D1363485%26itag%3D247%26type%3Dvideo%252Fwebm%253B%2Bcodecs%253D%2522vp9%2522%26size%3D1280x720%26xtags%3D%26clen%3D23491746%26index%3D243-1012%26fps%3D24%26projection_type%3D1%2Cinit%3D0-712%26quality_label%3D480p%26url%3Dhttps%253A%252F%252Fr2---sn-4avf-cbpe.googlevideo.com%252Fvideoplayback%253Flmt%253D1478641791837561%2526expire%253D1498781321%2526keepalive%253Dyes%2526source%253Dyoutube%2526pl%253D24%2526mime%253Dvideo%25252Fmp4%2526key%253Dyt6%2526itag%253D135%2526ei%253DKUJVWbfPI9vsD-rtoKgJ%2526sparams%253Dclen%25252Cdur%25252Cei%25252Cgir%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Ckeepalive%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cpl%25252Crequiressl%25252Csource%25252Cexpire%2526requiressl%253Dyes%2526signature%253D725D24F66F950EAA72D7A1E545363A0C80AF77C2.04712F4490A77FC05E3AE553724EE2250FBA2313%2526ms%253Dau%2526id%253Do-AKvKPfB9T57KZ2xPQzgzFsTpexmlxuTb-o5d2WS5HSVX%2526dur%253D237.362%2526mv%253Dm%2526mt%253D1498759620%2526clen%253D15417622%2526ip%253D69.57.233.153%2526initcwndbps%253D301250%2526gir%253Dyes%2526mn%253Dsn-4avf-cbpe%2526mm%253D31%2526ipbits%253D0%26lmt%3D1478641791837561%26bitrate%3D849752%26itag%3D135%26type%3Dvideo%252Fmp4%253B%2Bcodecs%253D%2522avc1.4d401e%2522%26size%3D854x480%26xtags%3D%26clen%3D15417622%26index%3D713-1308%26fps%3D24%26projection_type%3D1%2Cinit%3D0-242%26quality_label%3D480p%26url%3Dhttps%253A%252F%252Fr2---sn-4avf-cbpe.googlevideo.com%252Fvideoplayback%253Flmt%253D1449573015368625%2526expire%253D1498781321%2526keepalive%253Dyes%2526source%253Dyoutube%2526pl%253D24%2526mime%253Dvideo%25252Fwebm%2526key%253Dyt6%2526itag%253D244%2526ei%253DKUJVWbfPI9vsD-rtoKgJ%2526sparams%253Dclen%25252Cdur%25252Cei%25252Cgir%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Ckeepalive%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cpl%25252Crequiressl%25252Csource%25252Cexpire%2526requiressl%253Dyes%2526signature%253D392A49560F4481F1748D1F1691D5D5C2FD7ADECE.0BC1FDD5121B20566092721122339A554AC239A2%2526ms%253Dau%2526id%253Do-AKvKPfB9T57KZ2xPQzgzFsTpexmlxuTb-o5d2WS5HSVX%2526dur%253D237.320%2526mv%253Dm%2526mt%253D1498759620%2526clen%253D12473006%2526ip%253D69.57.233.153%2526initcwndbps%253D301250%2526gir%253Dyes%2526mn%253Dsn-4avf-cbpe%2526mm%253D31%2526ipbits%253D0%26lmt%3D1449573015368625%26bitrate%3D712638%26itag%3D244%26type%3Dvideo%252Fwebm%253B%2Bcodecs%253D%2522vp9%2522%26size%3D854x480%26xtags%3D%26clen%3D12473006%26index%3D243-998%26fps%3D24%26projection_type%3D1%2Cinit%3D0-712%26quality_label%3D360p%26url%3Dhttps%253A%252F%252Fr2---sn-4avf-cbpe.googlevideo.com%252Fvideoplayback%253Flmt%253D1478641790034655%2526expire%253D1498781321%2526keepalive%253Dyes%2526source%253Dyoutube%2526pl%253D24%2526mime%253Dvideo%25252Fmp4%2526key%253Dyt6%2526itag%253D134%2526ei%253DKUJVWbfPI9vsD-rtoKgJ%2526sparams%253Dclen%25252Cdur%25252Cei%25252Cgir%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Ckeepalive%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cpl%25252Crequiressl%25252Csource%25252Cexpire%2526requiressl%253Dyes%2526signature%253DAB46D83150016F48F1E8C5E1A22DEE6FF784AEF0.83334B50E5CE0C36A4B8A8DC4E0DABA3C7EA26C6%2526ms%253Dau%2526id%253Do-AKvKPfB9T57KZ2xPQzgzFsTpexmlxuTb-o5d2WS5HSVX%2526dur%253D237.362%2526mv%253Dm%2526mt%253D1498759620%2526clen%253D7404814%2526ip%253D69.57.233.153%2526initcwndbps%253D301250%2526gir%253Dyes%2526mn%253Dsn-4avf-cbpe%2526mm%253D31%2526ipbits%253D0%26lmt%3D1478641790034655%26bitrate%3D412081%26itag%3D134%26type%3Dvideo%252Fmp4%253B%2Bcodecs%253D%2522avc1.4d401e%2522%26size%3D640x360%26xtags%3D%26clen%3D7404814%26index%3D713-1308%26fps%3D24%26projection_type%3D1%2Cinit%3D0-242%26quality_label%3D360p%26url%3Dhttps%253A%252F%252Fr2---sn-4avf-cbpe.googlevideo.com%252Fvideoplayback%253Flmt%253D1449573016016815%2526expire%253D1498781321%2526keepalive%253Dyes%2526source%253Dyoutube%2526pl%253D24%2526mime%253Dvideo%25252Fwebm%2526key%253Dyt6%2526itag%253D243%2526ei%253DKUJVWbfPI9vsD-rtoKgJ%2526sparams%253Dclen%25252Cdur%25252Cei%25252Cgir%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Ckeepalive%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cpl%25252Crequiressl%25252Csource%25252Cexpire%2526requiressl%253Dyes%2526signature%253D04EE2C75A7FCB0478C3D2879A623C1B34E6BFC59.1CD8D532A35177CACC54B56E958AF3DD95D9F3D2%2526ms%253Dau%2526id%253Do-AKvKPfB9T57KZ2xPQzgzFsTpexmlxuTb-o5d2WS5HSVX%2526dur%253D237.320%2526mv%253Dm%2526mt%253D1498759620%2526clen%253D7721603%2526ip%253D69.57.233.153%2526initcwndbps%253D301250%2526gir%253Dyes%2526mn%253Dsn-4avf-cbpe%2526mm%253D31%2526ipbits%253D0%26lmt%3D1449573016016815%26bitrate%3D424293%26itag%3D243%26type%3Dvideo%252Fwebm%253B%2Bcodecs%253D%2522vp9%2522%26size%3D640x360%26xtags%3D%26clen%3D7721603%26index%3D243-998%26fps%3D24%26projection_type%3D1%2Cinit%3D0-712%26quality_label%3D240p%26url%3Dhttps%253A%252F%252Fr2---sn-4avf-cbpe.googlevideo.com%252Fvideoplayback%253Flmt%253D1478641788943874%2526expire%253D1498781321%2526keepalive%253Dyes%2526source%253Dyoutube%2526pl%253D24%2526mime%253Dvideo%25252Fmp4%2526key%253Dyt6%2526itag%253D133%2526ei%253DKUJVWbfPI9vsD-rtoKgJ%2526sparams%253Dclen%25252Cdur%25252Cei%25252Cgir%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Ckeepalive%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cpl%25252Crequiressl%25252Csource%25252Cexpire%2526requiressl%253Dyes%2526signature%253D41AEB97BAFD69326233CF737FAC6340C6061A3AD.D5D160089FE382B25D4CFB3A4BDD9F715B8B5117%2526ms%253Dau%2526id%253Do-AKvKPfB9T57KZ2xPQzgzFsTpexmlxuTb-o5d2WS5HSVX%2526dur%253D237.362%2526mv%253Dm%2526mt%253D1498759620%2526clen%253D6884196%2526ip%253D69.57.233.153%2526initcwndbps%253D301250%2526gir%253Dyes%2526mn%253Dsn-4avf-cbpe%2526mm%253D31%2526ipbits%253D0%26lmt%3D1478641788943874%26bitrate%3D252235%26itag%3D133%26type%3Dvideo%252Fmp4%253B%2Bcodecs%253D%2522avc1.4d4015%2522%26size%3D426x240%26xtags%3D%26clen%3D6884196%26index%3D713-1308%26fps%3D24%26projection_type%3D1%2Cinit%3D0-241%26quality_label%3D240p%26url%3Dhttps%253A%252F%252Fr2---sn-4avf-cbpe.googlevideo.com%252Fvideoplayback%253Flmt%253D1449573015228252%2526expire%253D1498781321%2526keepalive%253Dyes%2526source%253Dyoutube%2526pl%253D24%2526mime%253Dvideo%25252Fwebm%2526key%253Dyt6%2526itag%253D242%2526ei%253DKUJVWbfPI9vsD-rtoKgJ%2526sparams%253Dclen%25252Cdur%25252Cei%25252Cgir%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Ckeepalive%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cpl%25252Crequiressl%25252Csource%25252Cexpire%2526requiressl%253Dyes%2526signature%253DDF9508E4DF7562038B1E50D8894D7EF8A1AE080B.6EF4D6200E741AE07590F1BCD793DDE12AC11016%2526ms%253Dau%2526id%253Do-AKvKPfB9T57KZ2xPQzgzFsTpexmlxuTb-o5d2WS5HSVX%2526dur%253D237.320%2526mv%253Dm%2526mt%253D1498759620%2526clen%253D4313145%2526ip%253D69.57.233.153%2526initcwndbps%253D301250%2526gir%253Dyes%2526mn%253Dsn-4avf-cbpe%2526mm%253D31%2526ipbits%253D0%26lmt%3D1449573015228252%26bitrate%3D235876%26itag%3D242%26type%3Dvideo%252Fwebm%253B%2Bcodecs%253D%2522vp9%2522%26size%3D426x240%26xtags%3D%26clen%3D4313145%26index%3D242-996%26fps%3D24%26projection_type%3D1%2Cinit%3D0-674%26quality_label%3D144p%26url%3Dhttps%253A%252F%252Fr2---sn-4avf-cbpe.googlevideo.com%252Fvideoplayback%253Flmt%253D1478641788634320%2526expire%253D1498781321%2526keepalive%253Dyes%2526source%253Dyoutube%2526pl%253D24%2526mime%253Dvideo%25252Fmp4%2526key%253Dyt6%2526itag%253D160%2526ei%253DKUJVWbfPI9vsD-rtoKgJ%2526sparams%253Dclen%25252Cdur%25252Cei%25252Cgir%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Ckeepalive%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cpl%25252Crequiressl%25252Csource%25252Cexpire%2526requiressl%253Dyes%2526signature%253DE2B45B12FD1A92AA14452A0B2C01719B37550241.B7F2F3CA1E47C616F2685CFDDED25ACC17137DD3%2526ms%253Dau%2526id%253Do-AKvKPfB9T57KZ2xPQzgzFsTpexmlxuTb-o5d2WS5HSVX%2526dur%253D237.362%2526mv%253Dm%2526mt%253D1498759620%2526clen%253D3099330%2526ip%253D69.57.233.153%2526initcwndbps%253D301250%2526gir%253Dyes%2526mn%253Dsn-4avf-cbpe%2526mm%253D31%2526ipbits%253D0%26lmt%3D1478641788634320%26bitrate%3D109291%26itag%3D160%26type%3Dvideo%252Fmp4%253B%2Bcodecs%253D%2522avc1.4d400c%2522%26size%3D256x144%26xtags%3D%26clen%3D3099330%26index%3D675-1270%26fps%3D24%26projection_type%3D1%2Cinit%3D0-241%26quality_label%3D144p%26url%3Dhttps%253A%252F%252Fr2---sn-4avf-cbpe.googlevideo.com%252Fvideoplayback%253Flmt%253D1449573015099569%2526expire%253D1498781321%2526keepalive%253Dyes%2526source%253Dyoutube%2526pl%253D24%2526mime%253Dvideo%25252Fwebm%2526key%253Dyt6%2526itag%253D278%2526ei%253DKUJVWbfPI9vsD-rtoKgJ%2526sparams%253Dclen%25252Cdur%25252Cei%25252Cgir%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Ckeepalive%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cpl%25252Crequiressl%25252Csource%25252Cexpire%2526requiressl%253Dyes%2526signature%253DCF33F3DC5A7932C73988CA08561AE11BC3A0EDF4.A57971771DC3C1C77C96FEAC494857E48AB08EE0%2526ms%253Dau%2526id%253Do-AKvKPfB9T57KZ2xPQzgzFsTpexmlxuTb-o5d2WS5HSVX%2526dur%253D237.320%2526mv%253Dm%2526mt%253D1498759620%2526clen%253D2606036%2526ip%253D69.57.233.153%2526initcwndbps%253D301250%2526gir%253Dyes%2526mn%253Dsn-4avf-cbpe%2526mm%253D31%2526ipbits%253D0%26lmt%3D1449573015099569%26bitrate%3D107014%26itag%3D278%26type%3Dvideo%252Fwebm%253B%2Bcodecs%253D%2522vp9%2522%26size%3D256x144%26xtags%3D%26clen%3D2606036%26index%3D242-996%26fps%3D12%26projection_type%3D1%2Cinit%3D0-591%26type%3Daudio%252Fmp4%253B%2Bcodecs%253D%2522mp4a.40.2%2522%26url%3Dhttps%253A%252F%252Fr2---sn-4avf-cbpe.googlevideo.com%252Fvideoplayback%253Flmt%253D1478638731477108%2526expire%253D1498781321%2526keepalive%253Dyes%2526source%253Dyoutube%2526pl%253D24%2526mime%253Daudio%25252Fmp4%2526key%253Dyt6%2526itag%253D140%2526ei%253DKUJVWbfPI9vsD-rtoKgJ%2526sparams%253Dclen%25252Cdur%25252Cei%25252Cgir%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Ckeepalive%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cpl%25252Crequiressl%25252Csource%25252Cexpire%2526requiressl%253Dyes%2526signature%253D32EEC2AAE9FE8EF330AC449E82D64C258C107944.9A917A7F90B5CBEDAD01F6ECC35D6305ACD4264F%2526ms%253Dau%2526id%253Do-AKvKPfB9T57KZ2xPQzgzFsTpexmlxuTb-o5d2WS5HSVX%2526dur%253D237.424%2526mv%253Dm%2526mt%253D1498759620%2526clen%253D3771517%2526ip%253D69.57.233.153%2526initcwndbps%253D301250%2526gir%253Dyes%2526mn%253Dsn-4avf-cbpe%2526mm%253D31%2526ipbits%253D0%26clen%3D3771517%26projection_type%3D1%26lmt%3D1478638731477108%26index%3D592-911%26xtags%3D%26bitrate%3D128030%26itag%3D140%2Cinit%3D0-4451%26type%3Daudio%252Fwebm%253B%2Bcodecs%253D%2522vorbis%2522%26url%3Dhttps%253A%252F%252Fr2---sn-4avf-cbpe.googlevideo.com%252Fvideoplayback%253Flmt%253D1449571952282400%2526expire%253D1498781321%2526keepalive%253Dyes%2526source%253Dyoutube%2526pl%253D24%2526mime%253Daudio%25252Fwebm%2526key%253Dyt6%2526itag%253D171%2526ei%253DKUJVWbfPI9vsD-rtoKgJ%2526sparams%253Dclen%25252Cdur%25252Cei%25252Cgir%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Ckeepalive%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cpl%25252Crequiressl%25252Csource%25252Cexpire%2526requiressl%253Dyes%2526signature%253DAD0407A63F83EA128CB424285E6796BD83A0CB1D.26AAE64FDA9D9F2EA423770239A985134F4E01E0%2526ms%253Dau%2526id%253Do-AKvKPfB9T57KZ2xPQzgzFsTpexmlxuTb-o5d2WS5HSVX%2526dur%253D237.353%2526mv%253Dm%2526mt%253D1498759620%2526clen%253D3471225%2526ip%253D69.57.233.153%2526initcwndbps%253D301250%2526gir%253Dyes%2526mn%253Dsn-4avf-cbpe%2526mm%253D31%2526ipbits%253D0%26clen%3D3471225%26projection_type%3D1%26lmt%3D1449571952282400%26index%3D4452-4856%26xtags%3D%26bitrate%3D135626%26itag%3D171%2Cinit%3D0-271%26type%3Daudio%252Fwebm%253B%2Bcodecs%253D%2522opus%2522%26url%3Dhttps%253A%252F%252Fr2---sn-4avf-cbpe.googlevideo.com%252Fvideoplayback%253Flmt%253D1449571952563494%2526expire%253D1498781321%2526keepalive%253Dyes%2526source%253Dyoutube%2526pl%253D24%2526mime%253Daudio%25252Fwebm%2526key%253Dyt6%2526itag%253D249%2526ei%253DKUJVWbfPI9vsD-rtoKgJ%2526sparams%253Dclen%25252Cdur%25252Cei%25252Cgir%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Ckeepalive%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cpl%25252Crequiressl%25252Csource%25252Cexpire%2526requiressl%253Dyes%2526signature%253D53C2AB7D76E3BA8E9D3FD769E926CF10AE7722D5.687A82E8E1FB6B7FD47B10D2D69775C9FB3E837B%2526ms%253Dau%2526id%253Do-AKvKPfB9T57KZ2xPQzgzFsTpexmlxuTb-o5d2WS5HSVX%2526dur%253D237.361%2526mv%253Dm%2526mt%253D1498759620%2526clen%253D1501979%2526ip%253D69.57.233.153%2526initcwndbps%253D301250%2526gir%253Dyes%2526mn%253Dsn-4avf-cbpe%2526mm%253D31%2526ipbits%253D0%26clen%3D1501979%26projection_type%3D1%26lmt%3D1449571952563494%26index%3D272-676%26xtags%3D%26bitrate%3D56744%26itag%3D249%2Cinit%3D0-271%26type%3Daudio%252Fwebm%253B%2Bcodecs%253D%2522opus%2522%26url%3Dhttps%253A%252F%252Fr2---sn-4avf-cbpe.googlevideo.com%252Fvideoplayback%253Flmt%253D1449571951982951%2526expire%253D1498781321%2526keepalive%253Dyes%2526source%253Dyoutube%2526pl%253D24%2526mime%253Daudio%25252Fwebm%2526key%253Dyt6%2526itag%253D250%2526ei%253DKUJVWbfPI9vsD-rtoKgJ%2526sparams%253Dclen%25252Cdur%25252Cei%25252Cgir%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Ckeepalive%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cpl%25252Crequiressl%25252Csource%25252Cexpire%2526requiressl%253Dyes%2526signature%253D8313976DB2B2F463F08E54B92934F1A046E7A520.2075DB2FEFCACF8580AE85E875AAA1923EDC0011%2526ms%253Dau%2526id%253Do-AKvKPfB9T57KZ2xPQzgzFsTpexmlxuTb-o5d2WS5HSVX%2526dur%253D237.361%2526mv%253Dm%2526mt%253D1498759620%2526clen%253D2020148%2526ip%253D69.57.233.153%2526initcwndbps%253D301250%2526gir%253Dyes%2526mn%253Dsn-4avf-cbpe%2526mm%253D31%2526ipbits%253D0%26clen%3D2020148%26projection_type%3D1%26lmt%3D1449571951982951%26index%3D272-676%26xtags%3D%26bitrate%3D79280%26itag%3D250%2Cinit%3D0-271%26type%3Daudio%252Fwebm%253B%2Bcodecs%253D%2522opus%2522%26url%3Dhttps%253A%252F%252Fr2---sn-4avf-cbpe.googlevideo.com%252Fvideoplayback%253Flmt%253D1449571951932307%2526expire%253D1498781321%2526keepalive%253Dyes%2526source%253Dyoutube%2526pl%253D24%2526mime%253Daudio%25252Fwebm%2526key%253Dyt6%2526itag%253D251%2526ei%253DKUJVWbfPI9vsD-rtoKgJ%2526sparams%253Dclen%25252Cdur%25252Cei%25252Cgir%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Ckeepalive%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cpl%25252Crequiressl%25252Csource%25252Cexpire%2526requiressl%253Dyes%2526signature%253D19B3FE9EB0F764EB5311F9B27EAFC8F9967056AE.18A5446C36308BE615D6E9E8466A2027D3B0F1B5%2526ms%253Dau%2526id%253Do-AKvKPfB9T57KZ2xPQzgzFsTpexmlxuTb-o5d2WS5HSVX%2526dur%253D237.361%2526mv%253Dm%2526mt%253D1498759620%2526clen%253D3910806%2526ip%253D69.57.233.153%2526initcwndbps%253D301250%2526gir%253Dyes%2526mn%253Dsn-4avf-cbpe%2526mm%253D31%2526ipbits%253D0%26clen%3D3910806%26projection_type%3D1%26lmt%3D1449571951932307%26index%3D272-676%26xtags%3D%26bitrate%3D149549%26itag%3D251&iv_load_policy=1", "headers" : { "Content-Type" : "application\/x-www-form-urlencoded", - "Alt-Svc" : "quic=\":443\"; ma=2592000; v=\"36,35,34\"", + "Alt-Svc" : "quic=\":443\"; ma=2592000; v=\"39,38,37,36,35\"", "Content-Encoding" : "gzip", "Server" : "YouTubeFrontEnd", "X-XSS-Protection" : "1; mode=block; report=https:\/\/www.google.com\/appserve\/security-bugs\/log\/youtube", "Expires" : "Tue, 27 Apr 1971 19:44:06 EST", "Transfer-Encoding" : "Identity", "Cache-Control" : "no-store", - "Date" : "Mon, 05 Dec 2016 14:24:38 GMT", + "Date" : "Thu, 29 Jun 2017 18:08:42 GMT", "Strict-Transport-Security" : "max-age=31536000", "X-Content-Type-Options" : "nosniff", "X-Frame-Options" : "SAMEORIGIN" @@ -20,19 +20,19 @@ "uri" : "https:\/\/www.youtube.com\/get_video_info?el=detailpage&hl=en&ps=default&video_id=RgKAFK5djSk" }, { - "body" : "errorcode=150&videostats_playback_base_url=https%3A%2F%2Fs.youtube.com&reason=This+video+contains+content+from+WMG.+It+is+restricted+from+playback+on+certain+sites.%0A%3Ca+href%3D%27http%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DRgKAFK5djSk%26feature%3Dplayer_embedded%27+target%3D%27_blank%27%3EWatch+on+YouTube%3C%2Fa%3E&c=WEB&enablecsi=1&atc=a%3D3%26b%3DsNt2HMwLko4dNy5mhmyxUiV6NfU%26c%3D1480947877%26d%3D1%26e%3DRgKAFK5djSk%26c3a%3D17%26hh%3DIFccwnspzK7uyQxrh6yyOd2Ifl4&status=fail&csi_page_type=embed&errordetail=0&cver=1.20161130&eventid=pXhFWJbLJY3d-wXypp7YDA", + "body" : "reason=This+video+contains+content+from+WMG.+It+is+restricted+from+playback+on+certain+sites+or+applications.%0A%3Ca+href%3D%27http%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DRgKAFK5djSk%26feature%3Dplayer_embedded%27+target%3D%27_blank%27%3EWatch+on+YouTube%3C%2Fa%3E&errorcode=150&errordetail=0&status=fail", "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=\"36,35,34\"", - "Set-Cookie" : "YSC=wxmGSlWz4bQ; path=\/; domain=.youtube.com; httponly", + "Alt-Svc" : "quic=\":443\"; ma=2592000; v=\"39,38,37,36,35\"", + "Set-Cookie" : "YSC=JAlPFUZYlp0; path=\/; domain=.youtube.com; httponly", "Server" : "YouTubeFrontEnd", "Content-Encoding" : "gzip", "X-XSS-Protection" : "1; mode=block; report=https:\/\/www.google.com\/appserve\/security-bugs\/log\/youtube", "Expires" : "Tue, 27 Apr 1971 19:44:06 EST", "Transfer-Encoding" : "Identity", "Cache-Control" : "no-store", - "Date" : "Mon, 05 Dec 2016 14:24:37 GMT", + "Date" : "Thu, 29 Jun 2017 18:08:41 GMT", "Strict-Transport-Security" : "max-age=31536000", "X-Content-Type-Options" : "nosniff", "X-Frame-Options" : "SAMEORIGIN" From f59489cb945e8f88fd25d1431d952afb3492f988 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ce=CC=81dric=20Luthi?= Date: Sat, 23 Sep 2017 01:38:04 +0200 Subject: [PATCH 15/52] Point badges to the develop branch --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 64b0b566f..3c7be2388 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ ## About -[![Build Status](https://img.shields.io/circleci/project/0xced/XCDYouTubeKit/master.svg?style=flat)](https://circleci.com/gh/0xced/XCDYouTubeKit) -[![Coverage Status](https://img.shields.io/codecov/c/github/0xced/XCDYouTubeKit/master.svg?style=flat)](https://codecov.io/gh/0xced/XCDYouTubeKit/branch/master) +[![Build Status](https://img.shields.io/circleci/project/0xced/XCDYouTubeKit/develop.svg?style=flat)](https://circleci.com/gh/0xced/XCDYouTubeKit) +[![Coverage Status](https://img.shields.io/codecov/c/github/0xced/XCDYouTubeKit/develop.svg?style=flat)](https://codecov.io/gh/0xced/XCDYouTubeKit/branch/develop) [![Platform](https://img.shields.io/cocoapods/p/XCDYouTubeKit.svg?style=flat)](http://cocoadocs.org/docsets/XCDYouTubeKit/) [![Pod Version](https://img.shields.io/cocoapods/v/XCDYouTubeKit.svg?style=flat)](https://cocoapods.org/pods/XCDYouTubeKit) [![Carthage Compatibility](https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat)](https://github.com/Carthage/Carthage/) From 5b38c76f9e03efff4b97cf1717ac82a2c0130e91 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sonee=CC=81=20John?= Date: Tue, 24 Oct 2017 22:47:07 -0400 Subject: [PATCH 16/52] =?UTF-8?q?Add=20new=20request=20type=20=E2=80=98XCD?= =?UTF-8?q?YouTubeRequestTypeDashManifest=E2=80=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit #354 --- XCDYouTubeKit/XCDYouTubeVideoOperation.m | 2 ++ 1 file changed, 2 insertions(+) diff --git a/XCDYouTubeKit/XCDYouTubeVideoOperation.m b/XCDYouTubeKit/XCDYouTubeVideoOperation.m index ec971ddff..febd802c5 100644 --- a/XCDYouTubeKit/XCDYouTubeVideoOperation.m +++ b/XCDYouTubeKit/XCDYouTubeVideoOperation.m @@ -17,6 +17,8 @@ typedef NS_ENUM(NSUInteger, XCDYouTubeRequestType) { XCDYouTubeRequestTypeWatchPage, XCDYouTubeRequestTypeEmbedPage, XCDYouTubeRequestTypeJavaScriptPlayer, + XCDYouTubeRequestTypeDashManifest, + }; @interface XCDYouTubeVideoOperation () From eb04b8fb8a05917d64e255d87ef6720a23276cf3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sonee=CC=81=20John?= Date: Wed, 25 Oct 2017 02:08:18 -0400 Subject: [PATCH 17/52] Increase the max requestCount to 7 Due to the additional XCDYouTubeRequestTypeDashManifest --- XCDYouTubeKit/XCDYouTubeVideoOperation.m | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/XCDYouTubeKit/XCDYouTubeVideoOperation.m b/XCDYouTubeKit/XCDYouTubeVideoOperation.m index febd802c5..58a4c0033 100644 --- a/XCDYouTubeKit/XCDYouTubeVideoOperation.m +++ b/XCDYouTubeKit/XCDYouTubeVideoOperation.m @@ -125,8 +125,8 @@ - (void) startRequestWithURL:(NSURL *)url type:(XCDYouTubeRequestType)requestTyp if (self.isCancelled) return; - // Max (age-restricted VEVO) = 2×GetVideoInfo + 1×WatchPage + 1×EmbedPage + 1×JavaScriptPlayer + 1×GetVideoInfo - if (++self.requestCount > 6) + // Max (age-restricted VEVO) = 2×GetVideoInfo + 1×WatchPage + 1×EmbedPage + 1×JavaScriptPlayer + 1×GetVideoInfo + 1xDashManifest + if (++self.requestCount > 7) { // This condition should never happen but the request flow is quite complex so better abort here than go into an infinite loop of requests [self finishWithError]; From 758f3709644c0d4d1453ab5d2bb9ea557c861131 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sonee=CC=81=20John?= Date: Wed, 25 Oct 2017 02:11:45 -0400 Subject: [PATCH 18/52] Add support for new Dash manifests #354 --- XCDYouTubeKit.xcodeproj/project.pbxproj | 10 +++ XCDYouTubeKit/XCDYouTubeDashManifestXML.h | 17 +++++ XCDYouTubeKit/XCDYouTubeDashManifestXML.m | 76 +++++++++++++++++++++++ XCDYouTubeKit/XCDYouTubeVideo+Private.h | 1 + XCDYouTubeKit/XCDYouTubeVideo.m | 14 +++++ XCDYouTubeKit/XCDYouTubeVideoOperation.m | 33 +++++++++- 6 files changed, 149 insertions(+), 2 deletions(-) create mode 100644 XCDYouTubeKit/XCDYouTubeDashManifestXML.h create mode 100644 XCDYouTubeKit/XCDYouTubeDashManifestXML.m diff --git a/XCDYouTubeKit.xcodeproj/project.pbxproj b/XCDYouTubeKit.xcodeproj/project.pbxproj index 7cb14edba..af3a2560b 100644 --- a/XCDYouTubeKit.xcodeproj/project.pbxproj +++ b/XCDYouTubeKit.xcodeproj/project.pbxproj @@ -7,6 +7,9 @@ objects = { /* Begin PBXBuildFile section */ + 01D2370A1FA03AC100A13E5F /* XCDYouTubeDashManifestXML.m in Sources */ = {isa = PBXBuildFile; fileRef = 01D237091FA03AC100A13E5F /* XCDYouTubeDashManifestXML.m */; }; + 01D2370B1FA03ADE00A13E5F /* XCDYouTubeDashManifestXML.h in Headers */ = {isa = PBXBuildFile; fileRef = 01D237081FA03AC100A13E5F /* XCDYouTubeDashManifestXML.h */; }; + 01D2370C1FA03AF100A13E5F /* XCDYouTubeDashManifestXML.m in Sources */ = {isa = PBXBuildFile; fileRef = 01D237091FA03AC100A13E5F /* XCDYouTubeDashManifestXML.m */; }; C20F57A818817D5400EDBFB0 /* XCDYouTubeClientTestCase.m in Sources */ = {isa = PBXBuildFile; fileRef = C20F57A718817D5400EDBFB0 /* XCDYouTubeClientTestCase.m */; }; C2142F2A19644779000FA9C0 /* XCDYouTubeKit.h in Headers */ = {isa = PBXBuildFile; fileRef = C2D0CBAC19122A8F00DA8CD4 /* XCDYouTubeKit.h */; settings = {ATTRIBUTES = (Public, ); }; }; C215BEB91BE2E5B500F9783B /* XCDYouTubeVideoWebpage.h in Headers */ = {isa = PBXBuildFile; fileRef = C2386B1C1974036300646123 /* XCDYouTubeVideoWebpage.h */; }; @@ -94,6 +97,8 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ + 01D237081FA03AC100A13E5F /* XCDYouTubeDashManifestXML.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XCDYouTubeDashManifestXML.h; sourceTree = ""; }; + 01D237091FA03AC100A13E5F /* XCDYouTubeDashManifestXML.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XCDYouTubeDashManifestXML.m; sourceTree = ""; }; C20F579B18817D5400EDBFB0 /* XCDYouTubeKit.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = XCDYouTubeKit.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; C20F57A718817D5400EDBFB0 /* XCDYouTubeClientTestCase.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XCDYouTubeClientTestCase.m; sourceTree = ""; }; C22263371B33FDE000BA6719 /* XCTestWorkarounds.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XCTestWorkarounds.m; sourceTree = ""; }; @@ -223,6 +228,8 @@ C2A3F2D717F4827800AC1C3B /* XCDYouTubeVideoPlayerViewController.m */, C2386B1C1974036300646123 /* XCDYouTubeVideoWebpage.h */, C2386B1D1974036300646123 /* XCDYouTubeVideoWebpage.m */, + 01D237081FA03AC100A13E5F /* XCDYouTubeDashManifestXML.h */, + 01D237091FA03AC100A13E5F /* XCDYouTubeDashManifestXML.m */, ); path = XCDYouTubeKit; sourceTree = ""; @@ -266,6 +273,7 @@ C2F0E58E1944F82600D8EBA8 /* XCDYouTubeClient.h in Headers */, C2F0E58F1944F82600D8EBA8 /* XCDYouTubeError.h in Headers */, C2142F2A19644779000FA9C0 /* XCDYouTubeKit.h in Headers */, + 01D2370B1FA03ADE00A13E5F /* XCDYouTubeDashManifestXML.h in Headers */, C257F7941C206D26006146D3 /* XCDYouTubeLogger.h in Headers */, C257F7911C206B8F006146D3 /* XCDYouTubeLogger+Private.h in Headers */, C2F0E5901944F83E00D8EBA8 /* XCDYouTubeOperation.h in Headers */, @@ -481,6 +489,7 @@ files = ( C25308C518D7392500132734 /* XCDYouTubeClient.m in Sources */, C24C162E18E9A139005E92E9 /* XCDYouTubeVideoOperation.m in Sources */, + 01D2370A1FA03AC100A13E5F /* XCDYouTubeDashManifestXML.m in Sources */, C25308C818D739EB00132734 /* XCDYouTubeVideo.m in Sources */, C2597EA61B0CE6D80030E9F2 /* XCDYouTubeLogger.m in Sources */, C2FB52DE1918F88C00B2CBE6 /* XCDYouTubePlayerScript.m in Sources */, @@ -495,6 +504,7 @@ files = ( C2F0E59C1944F8CF00D8EBA8 /* XCDYouTubeVideoOperation.m in Sources */, C2F0E5991944F8C200D8EBA8 /* XCDYouTubeClient.m in Sources */, + 01D2370C1FA03AF100A13E5F /* XCDYouTubeDashManifestXML.m in Sources */, C2F0E59A1944F8C700D8EBA8 /* XCDYouTubePlayerScript.m in Sources */, C2597EA71B0CE6D80030E9F2 /* XCDYouTubeLogger.m in Sources */, C2F0E59B1944F8CA00D8EBA8 /* XCDYouTubeVideo.m in Sources */, diff --git a/XCDYouTubeKit/XCDYouTubeDashManifestXML.h b/XCDYouTubeKit/XCDYouTubeDashManifestXML.h new file mode 100644 index 000000000..90658ecb0 --- /dev/null +++ b/XCDYouTubeKit/XCDYouTubeDashManifestXML.h @@ -0,0 +1,17 @@ +// +// XCDYouTubeDashManifestXML.h +// XCDYouTubeKit +// +// Created by Soneé John on 10/24/17. +// Copyright © 2017 Cédric Luthi. All rights reserved. +// + +#import +__attribute__((visibility("hidden"))) +@interface XCDYouTubeDashManifestXML : NSObject + +- (instancetype)initWithXMLString:(NSString *)XMLString; + +- (NSDictionary *)streamURLs; + +@end diff --git a/XCDYouTubeKit/XCDYouTubeDashManifestXML.m b/XCDYouTubeKit/XCDYouTubeDashManifestXML.m new file mode 100644 index 000000000..62e2b89a3 --- /dev/null +++ b/XCDYouTubeKit/XCDYouTubeDashManifestXML.m @@ -0,0 +1,76 @@ +// +// XCDYouTubeDashManifestXML.m +// XCDYouTubeKit +// +// Created by Soneé John on 10/24/17. +// Copyright © 2017 Cédric Luthi. All rights reserved. +// + +#import "XCDYouTubeDashManifestXML.h" + +@interface XCDYouTubeDashManifestXML() +@property (nonatomic, readonly) NSString *XMLString; +@end + + +@implementation XCDYouTubeDashManifestXML + +- (instancetype)initWithXMLString:(NSString *)XMLString +{ + if (!(self = [super init])) + return nil; // LCOV_EXCL_LINE + + _XMLString = XMLString; + + return self; +} + +- (NSDictionary *)streamURLs +{ + //Catch all URLs + NSError *error = nil; + NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"(?<=())(\\w|\\d|\\n|[().,\\-:;@#$%^&*\\[\\]\"'+–/\\/®°⁰!?{}|`~]| )+?(?=())" options:0 error:&error]; + + if (error) + return nil; + + NSArray *checkingResults = [regex matchesInString:self.XMLString options:0 range:NSMakeRange(0, [self.XMLString length])]; + + if (checkingResults.count == 0 || checkingResults == nil) + return nil; + + NSMutableArray *URLs = [NSMutableArray new]; + NSMutableDictionary *streamURLs = [NSMutableDictionary new]; + + for (NSTextCheckingResult *checkingResult in checkingResults) + { + NSString* substringForMatch = [self.XMLString substringWithRange:checkingResult.range]; + NSURL *url = [NSURL URLWithString:substringForMatch]; + + if ([url.absoluteString containsString:@"youtube"] && [url.absoluteString containsString:@"itag"]) + { + [URLs addObject:url]; + } + } + + for (NSURL *url in URLs) + { + NSError *itagRegexError = nil; + NSRegularExpression *itagRegex = [NSRegularExpression regularExpressionWithPattern:@"(?<=(/itag/))(\\w|\\d|\\n|[().,\\-:;@#$%^&*\\[\\]\"'+–/\\/®°⁰!?{}|`~]| )+?(?=(/))" options:NSRegularExpressionAnchorsMatchLines error:&itagRegexError]; + + if (itagRegexError) + continue; + + NSTextCheckingResult *itagCheckingResult = [itagRegex firstMatchInString:(NSString *_Nonnull)url.absoluteString options:0 range:NSMakeRange(0, url.absoluteString.length)]; + + NSString *itag = [url.absoluteString substringWithRange:itagCheckingResult.range]; + streamURLs[itag] = url; + } + + if (streamURLs.count == 0) + return nil; + + return streamURLs; +} + +@end diff --git a/XCDYouTubeKit/XCDYouTubeVideo+Private.h b/XCDYouTubeKit/XCDYouTubeVideo+Private.h index 79997dda9..9f751206b 100644 --- a/XCDYouTubeKit/XCDYouTubeVideo+Private.h +++ b/XCDYouTubeKit/XCDYouTubeVideo+Private.h @@ -19,5 +19,6 @@ extern NSArray *XCDCaptionArrayWithString(NSString *string); - (instancetype) initWithIdentifier:(NSString *)identifier info:(NSDictionary *)info playerScript:(XCDYouTubePlayerScript *)playerScript response:(NSURLResponse *)response error:(NSError **)error; - (void) mergeVideo:(XCDYouTubeVideo *)video; +- (void) mergeDashManifestStreamURLs:(NSDictionary *)dashManifestStreamURLs; @end diff --git a/XCDYouTubeKit/XCDYouTubeVideo.m b/XCDYouTubeKit/XCDYouTubeVideo.m index 70707e842..6ff65f10c 100644 --- a/XCDYouTubeKit/XCDYouTubeVideo.m +++ b/XCDYouTubeKit/XCDYouTubeVideo.m @@ -277,6 +277,20 @@ - (void) mergeVideo:(XCDYouTubeVideo *)video free(properties); } +- (void) mergeDashManifestStreamURLs:(NSDictionary *)dashManifestStreamURLs { + + NSMutableDictionary *approvedStreams = [NSMutableDictionary new]; + + for (NSString *itag in dashManifestStreamURLs) { + if (self.streamURLs[itag] == nil) + approvedStreams[itag] = dashManifestStreamURLs[itag]; + } + + NSMutableDictionary *newStreams = [NSMutableDictionary dictionaryWithDictionary:self.streamURLs]; + [newStreams addEntriesFromDictionary:approvedStreams]; + [self setValue:newStreams.copy forKeyPath:NSStringFromSelector(@selector(streamURLs))]; +} + #pragma mark - NSObject - (BOOL) isEqual:(id)object diff --git a/XCDYouTubeKit/XCDYouTubeVideoOperation.m b/XCDYouTubeKit/XCDYouTubeVideoOperation.m index 58a4c0033..2358c4a61 100644 --- a/XCDYouTubeKit/XCDYouTubeVideoOperation.m +++ b/XCDYouTubeKit/XCDYouTubeVideoOperation.m @@ -9,6 +9,7 @@ #import "XCDYouTubeVideo+Private.h" #import "XCDYouTubeError.h" #import "XCDYouTubeVideoWebpage.h" +#import "XCDYouTubeDashManifestXML.h" #import "XCDYouTubePlayerScript.h" #import "XCDYouTubeLogger+Private.h" @@ -28,6 +29,7 @@ @interface XCDYouTubeVideoOperation () @property (atomic, assign) NSInteger requestCount; @property (atomic, assign) XCDYouTubeRequestType requestType; @property (atomic, strong) NSMutableArray *eventLabels; +@property (atomic, strong) XCDYouTubeVideo *lastSucessfulVideo; @property (atomic, readonly) NSURLSession *session; @property (atomic, strong) NSURLSessionDataTask *dataTask; @@ -144,7 +146,7 @@ - (void) startRequestWithURL:(NSURL *)url type:(XCDYouTubeRequestType)requestTyp return; if (error) - [self handleConnectionError:error]; + [self handleConnectionError:error requestType:requestType]; else [self handleConnectionSuccessWithData:data response:response requestType:requestType]; }]; @@ -178,11 +180,18 @@ - (void) handleConnectionSuccessWithData:(NSData *)data response:(NSURLResponse case XCDYouTubeRequestTypeJavaScriptPlayer: [self handleJavaScriptPlayerWithScript:responseString]; break; + case XCDYouTubeRequestTypeDashManifest: + [self handleDashManifestWithXMLString:responseString response:response]; + break; } } -- (void) handleConnectionError:(NSError *)connectionError +- (void) handleConnectionError:(NSError *)connectionError requestType:(XCDYouTubeRequestType)requestType { + //Shoud not return a connection error if was as a result of requesting the Dash Manifiest (we have a sucessfully created `XCDYouTubeVideo` and should just finish the operation as if were a 'sucessful' one + if (requestType == XCDYouTubeRequestTypeDashManifest) + [self finishWithVideo:self.lastSucessfulVideo]; + NSDictionary *userInfo = @{ NSLocalizedDescriptionKey: connectionError.localizedDescription, NSUnderlyingErrorKey: connectionError }; self.lastError = [NSError errorWithDomain:XCDYouTubeVideoErrorDomain code:XCDYouTubeErrorNetwork userInfo:userInfo]; @@ -200,6 +209,14 @@ - (void) handleVideoInfoResponseWithInfo:(NSDictionary *)info response:(NSURLRes XCDYouTubeVideo *video = [[XCDYouTubeVideo alloc] initWithIdentifier:self.videoIdentifier info:info playerScript:self.playerScript response:response error:&error]; if (video) { + self.lastSucessfulVideo = video; + + if (info[@"dashmpd"]) + { + NSURL *dashmpdURL = [NSURL URLWithString:(NSString *_Nonnull)info[@"dashmpd"]]; + [self startRequestWithURL:dashmpdURL type:XCDYouTubeRequestTypeDashManifest]; + return; + } [video mergeVideo:self.noStreamVideo]; [self finishWithVideo:video]; } @@ -283,6 +300,18 @@ - (void) handleJavaScriptPlayerWithScript:(NSString *)script } } +- (void) handleDashManifestWithXMLString:(NSString *)XMLString response:(NSURLResponse *)response +{ + XCDYouTubeLogDebug(@"Handling Dash Manifest response"); + + XCDYouTubeDashManifestXML *dashManifestXML = [[XCDYouTubeDashManifestXML alloc]initWithXMLString:XMLString]; + NSDictionary *dashhManifestStreamURLs = dashManifestXML.streamURLs; + if (dashhManifestStreamURLs) + [self.lastSucessfulVideo mergeDashManifestStreamURLs:dashhManifestStreamURLs]; + + [self finishWithVideo:self.lastSucessfulVideo]; +} + #pragma mark - Finish Operation - (void) finishWithVideo:(XCDYouTubeVideo *)video From 0df6b1d410a93fe20485df5123dd2b131f83b514 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sonee=CC=81=20John?= Date: Wed, 25 Oct 2017 03:02:16 -0400 Subject: [PATCH 19/52] Add unit test to test the dash manifest #354 #356 --- .../testVideoWithDashManifest.json | 43 +++++++++++++++++++ .../XCDYouTubeClientTestCase.m | 12 ++++++ 2 files changed, 55 insertions(+) create mode 100644 XCDYouTubeKit Tests/Cassettes/XCDYouTubeClientTestCase/testVideoWithDashManifest.json diff --git a/XCDYouTubeKit Tests/Cassettes/XCDYouTubeClientTestCase/testVideoWithDashManifest.json b/XCDYouTubeKit Tests/Cassettes/XCDYouTubeClientTestCase/testVideoWithDashManifest.json new file mode 100644 index 000000000..62218a566 --- /dev/null +++ b/XCDYouTubeKit Tests/Cassettes/XCDYouTubeClientTestCase/testVideoWithDashManifest.json @@ -0,0 +1,43 @@ +[ + { + "body" : "t=1&url_encoded_fmt_stream_map=type%3Dvideo%252Fmp4%253B%2Bcodecs%253D%2522avc1.64001F%252C%2Bmp4a.40.2%2522%26quality%3Dhd720%26itag%3D22%26url%3Dhttps%253A%252F%252Fr2---sn-4avf-cbpe.googlevideo.com%252Fvideoplayback%253Fitag%253D22%2526source%253Dyoutube%2526beids%253D%25255B9466594%25255D%2526ratebypass%253Dyes%2526mt%253D1508914129%2526mn%253Dsn-4avf-cbpe%2526signature%253D2809450FEA0BA198B6A93437096EEF5ABE5C2D70.A0E27FCDF7D4D678E79E48384A746F15848E62F7%2526lmt%253D1505423618163931%2526sparams%253Ddur%25252Cei%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cpl%25252Cratebypass%25252Crequiressl%25252Csource%25252Cexpire%2526mm%253D31%2526pl%253D24%2526mv%253Dm%2526initcwndbps%253D241250%2526ipbits%253D0%2526ms%253Dau%2526requiressl%253Dyes%2526ei%253DhjTwWdjSFcOc-wXUt5eoDA%2526dur%253D309.638%2526ip%253D209.59.90.197%2526key%253Dyt6%2526expire%253D1508935910%2526mime%253Dvideo%25252Fmp4%2526id%253Do-AIIYWIQ8TSO5OUb6YhWw88TB5jctFL2FxddjYcWaDa7K%2Ctype%3Dvideo%252Fwebm%253B%2Bcodecs%253D%2522vp8.0%252C%2Bvorbis%2522%26quality%3Dmedium%26itag%3D43%26url%3Dhttps%253A%252F%252Fr2---sn-4avf-cbpe.googlevideo.com%252Fvideoplayback%253Fsource%253Dyoutube%2526clen%253D34550729%2526ratebypass%253Dyes%2526lmt%253D1505426085675537%2526dur%253D0.000%2526pl%253D24%2526mv%253Dm%2526ipbits%253D0%2526ms%253Dau%2526ei%253DhjTwWdjSFcOc-wXUt5eoDA%2526ip%253D209.59.90.197%2526expire%253D1508935910%2526mm%253D31%2526id%253Do-AIIYWIQ8TSO5OUb6YhWw88TB5jctFL2FxddjYcWaDa7K%2526itag%253D43%2526beids%253D%25255B9466594%25255D%2526mt%253D1508914129%2526mn%253Dsn-4avf-cbpe%2526signature%253D4D5BCE7BD1A7CD708739A6DF2A21F7AC4DF9E274.465916E62DF9C928EAB05FBFED0859B00E5F51C8%2526sparams%253Dclen%25252Cdur%25252Cei%25252Cgir%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cpl%25252Cratebypass%25252Crequiressl%25252Csource%25252Cexpire%2526initcwndbps%253D241250%2526requiressl%253Dyes%2526key%253Dyt6%2526mime%253Dvideo%25252Fwebm%2526gir%253Dyes%2Ctype%3Dvideo%252Fmp4%253B%2Bcodecs%253D%2522avc1.42001E%252C%2Bmp4a.40.2%2522%26quality%3Dmedium%26itag%3D18%26url%3Dhttps%253A%252F%252Fr2---sn-4avf-cbpe.googlevideo.com%252Fvideoplayback%253Fsource%253Dyoutube%2526clen%253D26128895%2526ratebypass%253Dyes%2526lmt%253D1505423509978445%2526dur%253D309.638%2526pl%253D24%2526mv%253Dm%2526ipbits%253D0%2526ms%253Dau%2526ei%253DhjTwWdjSFcOc-wXUt5eoDA%2526ip%253D209.59.90.197%2526expire%253D1508935910%2526mm%253D31%2526id%253Do-AIIYWIQ8TSO5OUb6YhWw88TB5jctFL2FxddjYcWaDa7K%2526itag%253D18%2526beids%253D%25255B9466594%25255D%2526mt%253D1508914129%2526mn%253Dsn-4avf-cbpe%2526signature%253D117A223967715FAD13A56724D6B1CE49D5FB3DDE.1F4F0A3288A6E63DFD93FFF12C721F6A071D3F0C%2526sparams%253Dclen%25252Cdur%25252Cei%25252Cgir%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cpl%25252Cratebypass%25252Crequiressl%25252Csource%25252Cexpire%2526initcwndbps%253D241250%2526requiressl%253Dyes%2526key%253Dyt6%2526mime%253Dvideo%25252Fmp4%2526gir%253Dyes%2Ctype%3Dvideo%252F3gpp%253B%2Bcodecs%253D%2522mp4v.20.3%252C%2Bmp4a.40.2%2522%26quality%3Dsmall%26itag%3D36%26url%3Dhttps%253A%252F%252Fr2---sn-4avf-cbpe.googlevideo.com%252Fvideoplayback%253Fsource%253Dyoutube%2526clen%253D8444065%2526lmt%253D1505423507066538%2526dur%253D309.661%2526pl%253D24%2526mv%253Dm%2526ipbits%253D0%2526ms%253Dau%2526ei%253DhjTwWdjSFcOc-wXUt5eoDA%2526ip%253D209.59.90.197%2526expire%253D1508935910%2526mm%253D31%2526id%253Do-AIIYWIQ8TSO5OUb6YhWw88TB5jctFL2FxddjYcWaDa7K%2526itag%253D36%2526beids%253D%25255B9466594%25255D%2526mt%253D1508914129%2526mn%253Dsn-4avf-cbpe%2526signature%253D3FAAF3FB2546AA8C5E9425AACEDAA537249870BF.D7E9523117484B6A9C64E95A227A3BBDDEF82872%2526sparams%253Dclen%25252Cdur%25252Cei%25252Cgir%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cpl%25252Crequiressl%25252Csource%25252Cexpire%2526initcwndbps%253D241250%2526requiressl%253Dyes%2526key%253Dyt6%2526mime%253Dvideo%25252F3gpp%2526gir%253Dyes%2Ctype%3Dvideo%252F3gpp%253B%2Bcodecs%253D%2522mp4v.20.3%252C%2Bmp4a.40.2%2522%26quality%3Dsmall%26itag%3D17%26url%3Dhttps%253A%252F%252Fr2---sn-4avf-cbpe.googlevideo.com%252Fvideoplayback%253Fsource%253Dyoutube%2526clen%253D2977035%2526lmt%253D1505423506674421%2526dur%253D309.661%2526pl%253D24%2526mv%253Dm%2526ipbits%253D0%2526ms%253Dau%2526ei%253DhjTwWdjSFcOc-wXUt5eoDA%2526ip%253D209.59.90.197%2526expire%253D1508935910%2526mm%253D31%2526id%253Do-AIIYWIQ8TSO5OUb6YhWw88TB5jctFL2FxddjYcWaDa7K%2526itag%253D17%2526beids%253D%25255B9466594%25255D%2526mt%253D1508914129%2526mn%253Dsn-4avf-cbpe%2526signature%253DADE618421ACC39E6DB57E25BEBBC959B7FD1C13A.CB4EABC816EF12871AB95E170EC36C31B49630BD%2526sparams%253Dclen%25252Cdur%25252Cei%25252Cgir%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cpl%25252Crequiressl%25252Csource%25252Cexpire%2526initcwndbps%253D241250%2526requiressl%253Dyes%2526key%253Dyt6%2526mime%253Dvideo%25252F3gpp%2526gir%253Dyes&ucid=UCf4BdBAZoaT7ulFBrYSzeBA&innertube_context_client_version=1.20171023&c=WEB&csi_page_type=embed&ldpj=-17&player_error_log_fraction=1.0&innertube_api_key=AIzaSyAO_FJ2SlqU8Q4STEHLGCilw_Y9_11qcW8&xhr_apiary_host=youtubei.youtube.com&eventid=hjTwWdjSFcOc-wXUt5eoDA&token=1&host_language=en&apiary_host_firstparty=&is_listed=1&ptk=youtube_none&fmt_list=22%2F1280x720%2F9%2F0%2F115%2C43%2F640x360%2F99%2F0%2F0%2C18%2F640x360%2F9%2F0%2F115%2C36%2F320x180%2F99%2F1%2F0%2C17%2F176x144%2F99%2F1%2F0&iv3_module=1&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&thumbnail_url=https%3A%2F%2Fi.ytimg.com%2Fvi%2FYLg-LCkYXbI%2Fdefault.jpg&length_seconds=310&allow_embed=1&csn=hjTwWdjSFcOc-wXUt5eoDA&fflags=html5_video_tbd_min_kb%3D0%26html5_always_enable_timeouts%3Dtrue%26ad_duration_threshold_for_showing_endcap_seconds%3D15%26enable_bulleit_lidar_integration%3Dtrue%26set_interstitial_start_button%3Dtrue%26polymer_report_missing_web_navigation_endpoint%3Dfalse%26king_crimson_player_redux%3Dtrue%26html5_spherical_bicubic_mode%3D0%26html5_observe_live_start_seconds%3Dtrue%26html5_min_startup_smooth_target%3D10.0%26disable_trusted_ad_domains_player_check%3Dtrue%26html5_subsegment_readahead_progress_timeout_fraction%3D0.8%26dash_manifest_version%3D5%26www_for_videostats%3Dtrue%26disable_new_pause_state3%3Dtrue%26html5_enable_mesh_projection%3Dtrue%26mweb_blacklist_progressive_chrome_mobile%3Dtrue%26html5_allowable_liveness_drift_chunks%3D2%26ad_video_end_renderer_duration_milliseconds%3D7000%26segment_volume_reporting%3Dtrue%26html5_enable_embedded_player_visibility_signals%3Dtrue%26html5_default_quality_cap%3D0%26ios_notifications_disabled_subs_tab_promoted_item_promo%3Dtrue%26disable_max_adsense_channel_limit%3Dtrue%26html5_post_interrupt_readahead%3D20%26html5_maximum_readahead_seconds%3D0.0%26report_promotes_terrorism_android%3Dtrue%26postroll_notify_time_seconds%3D5%26vss_dni_delayping%3D0%26html5_min_buffer_to_resume%3D6%26forced_brand_precap_duration_ms%3D2000%26use_fast_fade_in_0s%3Dtrue%26html5_manifestless_no_redundant_seek_to_head%3Dtrue%26yto_enable_unlimited_landing_page_yto_features%3Dtrue%26fixed_padding_skip_button%3Dtrue%26kids_eliminate_playlists_in_channels%3Dtrue%26legacy_autoplay_flag%3Dtrue%26html5_disable_urgent_upgrade_for_quality%3Dtrue%26doubleclick_gpt_retagging%3Dtrue%26use_new_skip_icon%3Dtrue%26html5_repredict_interval_secs%3D0.0%26ios_enable_mixin_accessibility_custom_actions%3Dtrue%26html5_suspended_state%3Dtrue%26report_promotes_terrorism_ios%3Dtrue%26html5_subsegment_readahead_timeout_secs%3D2.0%26web_player_flash_fallback_killswitch%3Dtrue%26mpu_visible_threshold_count%3D2%26android_native_live_enablement%3Dtrue%26fix_gpt_pos_params%3Dtrue%26html5_subsegment_readahead_tail_margin_secs%3D0.2%26html5_background_cap_idle_secs%3D60%26html5_disable_move_pssh_to_moov%3Dtrue%26html5_max_buffer_health_for_downgrade%3D15%26html5_new_peg_to_live_v2%3Dtrue%26show_thumbnail_behind_ypc_offer_module%3Dtrue%26enable_live_state_auth%3Dtrue%26show_interstitial_for_3s%3Dtrue%26use_html5_player_event_timeout%3Dtrue%26web_player_disable_flash_playerproxy%3Dtrue%26html5_error_reload_cooldown_ms%3D0%26web_embedded_player_service%3Dtrue%26html5_msi_error_fallback%3Dtrue%26sidebar_renderers%3Dtrue%26html5_get_video_info_timeout_ms%3D0%26html5_strip_emsg%3Dtrue%26lightweight_watch_video_swf%3Dtrue%26html5_break_deadlocks%3Dtrue%26html5_live_disable_dg_pacing%3Dtrue%26yto_enable_ytr_promo_refresh_assets%3Dtrue%26live_chunk_readahead%3D3%26web_player_api_logging_fraction%3D0.01%26html5_preload_size_excludes_metadata%3Dtrue%26mweb_playsinline%3Dtrue%26report_promotes_terrorism_desktop%3Dtrue%26html5_enable_ms_playready_hd%3Dtrue%26interaction_log_delayed_event_batch_size%3D200%26html5_reselect_bandwidth_factor%3D3.0%26mweb_autonav_paddles%3Dtrue%26hide_preskip%3Dtrue%26html5_min_secs_between_format_selections%3D8.0%26flex_theater_mode%3Dtrue%26html5_dom_pause%3Dtrue%26html5_restrict_streaming_xhr_on_sqless_requests%3Dtrue%26use_survey_skip_in_0s%3Dtrue%26playready_first_play_expiration%3D-1%26disable_search_mpu%3Dtrue%26html5_pause_video_fix%3Dtrue%26html5_throttle_rate%3D0.0%26html5_aux_pctile%3Dtrue%26html5_serverside_biscotti_id_wait_ms%3D1000%26android_enable_thumbnail_overlay_side_panel%3Dfalse%26html5_license_constraint_delay%3D0%26html5_adjust_effective_request_size%3Dtrue%26html5_request_size_min_secs%3D0.0%26enable_offer_restricts_for_watch_page_offers%3Dtrue%26enable_afv_div_reset_in_kevlar%3Dtrue%26html5_deadzone_multiplier%3D1.0%26use_new_style%3Dtrue%26kids_asset_theme%3Dserver_side_assets%26enable_local_channel%3Dtrue%26html5_tight_max_buffer_allowed_bandwidth_stddevs%3D0.0%26html5_sticky_ignore_capped%3Dtrue%26html5_local_max_byterate_lookahead%3D15%26website_actions_cta_redesign%3Dtrue%26html5_deferred_source_buffer_creation%3Dtrue%26html5_nnr_downgrade_count%3D4%26yt_unlimited_pts_skip_ads_promo_desktop_always%3Dtrue%26mweb_enable_skippables_on_iphone%3Dtrue%26html5_progressive_signature_reload%3Dtrue%26enable_plus_page_pts%3Dtrue%26html5_min_upgrade_health%3D0%26mweb_pu_android_chrome_54_above%3Dtrue%26show_thumbnail_on_standard%3Dtrue%26html5_mobile_perf_cap_240%3Dtrue%26html5_live_4k_more_buffer%3Dtrue%26html5_background_quality_cap%3D360%26live_fresca_v2%3Dtrue%26sdk_ad_prefetch_time_seconds%3D-1%26exclude_pyv_overlays_on_desktop_watch%3Dtrue%26signed_out_notification_settings%3Dtrue%26html5_variability_no_discount_thresh%3D1.0%26playready_on_borg%3Dtrue%26html5_pipeline_ultra_low_latency%3Dtrue%26set_interstitial_question_text%3Dtrue%26html5_timeupdate_readystate_check%3Dtrue%26html5_env_data_update_app_only%3Dtrue%26mweb_cougar%3Dtrue%26html5_max_readahead_bandwidth_cap%3D0%26web_player_edge_autohide_killswitch%3Dtrue%26unplugged_web_location_accuracy%3Dtrue%26html5_max_headm_for_streaming_xhr%3D0%26html5_serverside_call_server_on_biscotti_error%3Dtrue%26html5_ultra_low_latency_streaming_responses%3Dtrue%26live_readahead_seconds_multiplier%3D0.8%26custom_emoji_legacy%3Dtrue%26sdk_wrapper_levels_allowed%3D0%26html5_composite_stall%3Dtrue%26use_push_for_desktop_live_chat%3Dtrue%26live_chat_v1_turndown%3Dtrue%26king_crimson_player%3Dfalse%26html5_disable_audio_slicing%3Dtrue%26autoplay_time%3D8000%26html5_throttle_burst_secs%3D15.0%26html5_use_adaptive_live_readahead%3Dtrue%26variable_load_timeout_ms%3D0%26allow_live_autoplay%3Dtrue%26dynamic_ad_break_pause_threshold_sec%3D0%26html5_minimum_readahead_seconds%3D0.0%26html5_new_e2e_latency_tracking%3Dtrue%26html5_quality_cap_min_age_secs%3D0%26mweb_muted_autoplay_animation%3Dshrink%26html5_subsegment_readahead_target_buffer_health_secs%3D0.5%26mweb_muted_autoplay%3Dtrue%26html5_el_migration%3Dtrue%26mobile_disable_ad_mob_on_home%3Dtrue%26desktop_cleanup_companion_on_instream_begin%3Dtrue%26html5_new_fallback%3Dtrue%26html5_hopeless_mode_request_size_secs%3D15%26persist_text_on_preview_button%3Dtrue%26html5_platform_minimum_readahead_seconds%3D0.0%26embed_show_watchlater_login%3Dtrue%26enable_finished_broadcast_reactr_sharing%3Dfalse%26html5_player_autonav_logging%3Dtrue%26html5_clearance_fix%3Dtrue%26info_box_for_promotes_terrorism_reporting%3Dtrue%26html5_variability_discount%3D0.5%26web_player_disable_flash_watch%3Dtrue%26max_resolution_for_white_noise%3D360%26kids_mqb_use_confirmed_safe_videos_only%3Dfalse%26stop_using_ima_sdk_gpt_request_activity%3Dtrue%26html5_live_abr_repredict_fraction%3D0.0%26mweb_cougar_big_controls%3Dtrue%26yto_enable_watch_offer_module%3Dtrue%26show_interstitial_white%3Dtrue%26show_countdown_on_bumper%3Dtrue%26tvhtml5_background_su%3Dtrue%26kids_enable_privacy_notice%3Dtrue%26chrome_promo_enabled%3Dtrue%26android_buy_bucket_buy_flows%3Dtrue%26sponsors_disable%3Dtrue%26new_promo_page%3Dtrue%26html5_stale_dash_manifest_retry_factor%3D1.0%26html5_min_secs_over_max_bytes%3Dtrue%26html5_suspend_manifest_on_pause%3Dtrue%26html5_disable_non_contiguous%3Dtrue%26deprecate_get_video_metadata%3Dtrue%26html5_min_readbehind_cap_secs%3D0%26html5_elbow_tracking_tweaks%3Dtrue%26kids_enable_terms_servlet%3Dtrue%26player_destroy_old_version%3Dtrue%26limit_of_rebuffering_event_on_html5%3D1000%26channel_about_page_gadgets%3Dtrue%26uniplayer_dbp%3Dtrue%26html5_live_pin_to_tail%3Dtrue%26html5_tight_max_buffer_allowed_impaired_time%3D0.0%26send_html5_api_stats_ads_abandon%3Dtrue%26reels_avatar_row%3Dfalse%26html5_variability_full_discount_thresh%3D3.0%26use_forced_linebreak_preskip_text%3Dtrue%26kids_enable_post_onboarding_red_flow%3Dtrue%26spacecast_uniplayer_decorate_manifest%3Dtrue%26html5_report_conn%3Dtrue%26html5_max_av_sync_drift%3D50%26report_promotes_terrorism_mobile_web%3Dtrue%26disable_reporting_html5_no_vast_ads_as_error%3Dtrue%26html5_stall_pctile%3Dtrue%26enable_gaming_new_logo%3Dtrue%26yto_feature_hub_channel%3Dfalse%26disable_indisplay_adunit_on_embedded%3Dtrue%26html5_min_readbehind_secs%3D0%26ios_disable_notification_preprompt%3Dtrue%26signed_out_notifications_inbox%3Dtrue%26enable_red_carpet_p13n_shelves%3Dtrue%26disable_client_side_midroll_freq_capping%3Dtrue%26html5_stop_video_in_cancel_playback%3Dtrue%26html5_bandwidth_window_size%3D0%26html5_max_buffer_duration%3D0%26youtubei_for_web%3Dtrue%26html5_request_sizing_multiplier%3D0.8%26kids_enable_block_servlet%3Dtrue%26disable_mweb_iphone_ad_click_handling_functionality%3Dtrue%26mysubs_highlight_shelf_counterfactual%3Dfalse%26html5_get_video_info_promiseajax%3Dtrue%26html5_request_size_max_secs%3D31%26enable_prefetch_for_postrolls%3Dtrue%26html5_ad_loudness_penalty_db%3D0%26html5_aspect_from_adaptive_format%3Dtrue%26lock_fullscreen%3Dfalse%26website_actions_throttle_percentage%3D1.0%26html5_no_shadow_env_data%3Dfalse%26lugash_header_warmup%3Dtrue%26html5_serverside_call_server_on_biscotti_timeout%3Dtrue%26ios_enable_mainapp_playlist_sync_worker%3Dfalse%26lugash_header_by_service%3Dtrue%26html5_live_abr_head_miss_fraction%3D0.0%26report_promotes_terrorism_polymer%3Dtrue%26enable_ccs_buy_flow_for_chirp%3Dtrue%26html5_connect_timeout_secs%3D7.0%26custom_emoji_creator%3Dtrue%26sponsors_whitelist_creator%3Dtrue%26html5_manifestless_accurate_sliceinfo%3Dtrue%26kids_enable_server_side_assets%3Dfalse%26dynamic_ad_break_seek_threshold_sec%3D0%26html5_desktop_serverside_get_biscotti_id_from_client%3Dtrue%26midroll_notify_time_seconds%3D5%26enable_playlist_multi_season%3Dtrue%26mweb_autonav%3Dtrue%26html5_ad_no_buffer_abort_after_skippable%3Dtrue%26mweb_playsinline_webview%3Dtrue&apiary_host=&vss_host=s.youtube.com&plid=AAVcWX14pJbV1fGw&view_count=99&pltype=contentugc&innertube_api_version=v1&iv_allow_in_place_switch=1&no_get_video_log=1&avg_rating=0.0&ismb=1930000&player_response=%7B%22playbackTracking%22%3A%7B%7D%2C%22captions%22%3A%7B%22playerCaptionsTracklistRenderer%22%3A%7B%22captionTracks%22%3A%5B%7B%22baseUrl%22%3A%22https%3A%2F%2Fwww.youtube.com%2Fapi%2Ftimedtext%3Fhl%3Den_US%5Cu0026v%3DYLg-LCkYXbI%5Cu0026caps%3Dasr%5Cu0026signature%3D4B7A0E487879D9B2B6A3BF0D0E7FDD02B222E9A3.CD5093D8EBBBAC5A406E6743CEC35FF3CD6FA961%5Cu0026key%3Dyttt1%5Cu0026expire%3D1508939510%5Cu0026asr_langs%3Den%252Cja%252Cfr%252Cde%252Cko%252Cit%252Cnl%252Cpt%252Ces%252Cru%5Cu0026sparams%3Dasr_langs%252Ccaps%252Cv%252Cexpire%5Cu0026kind%3Dasr%5Cu0026lang%3Den%22%2C%22name%22%3A%7B%22simpleText%22%3A%22English+%28auto-generated%29%22%7D%2C%22vssId%22%3A%22a.en%22%2C%22languageCode%22%3A%22en%22%2C%22kind%22%3A%22asr%22%2C%22isTranslatable%22%3Atrue%7D%5D%2C%22audioTracks%22%3A%5B%7B%22captionTrackIndices%22%3A%5B0%5D%2C%22visibility%22%3A%22UNKNOWN%22%7D%5D%2C%22translationLanguages%22%3A%5B%7B%22languageCode%22%3A%22af%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Afrikaans%22%7D%7D%2C%7B%22languageCode%22%3A%22sq%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Albanian%22%7D%7D%2C%7B%22languageCode%22%3A%22am%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Amharic%22%7D%7D%2C%7B%22languageCode%22%3A%22ar%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Arabic%22%7D%7D%2C%7B%22languageCode%22%3A%22hy%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Armenian%22%7D%7D%2C%7B%22languageCode%22%3A%22az%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Azerbaijani%22%7D%7D%2C%7B%22languageCode%22%3A%22bn%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Bangla%22%7D%7D%2C%7B%22languageCode%22%3A%22eu%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Basque%22%7D%7D%2C%7B%22languageCode%22%3A%22be%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Belarusian%22%7D%7D%2C%7B%22languageCode%22%3A%22bs%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Bosnian%22%7D%7D%2C%7B%22languageCode%22%3A%22bg%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Bulgarian%22%7D%7D%2C%7B%22languageCode%22%3A%22my%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Burmese%22%7D%7D%2C%7B%22languageCode%22%3A%22ca%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Catalan%22%7D%7D%2C%7B%22languageCode%22%3A%22ceb%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Cebuano%22%7D%7D%2C%7B%22languageCode%22%3A%22zh-Hans%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Chinese+%28Simplified%29%22%7D%7D%2C%7B%22languageCode%22%3A%22zh-Hant%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Chinese+%28Traditional%29%22%7D%7D%2C%7B%22languageCode%22%3A%22co%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Corsican%22%7D%7D%2C%7B%22languageCode%22%3A%22hr%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Croatian%22%7D%7D%2C%7B%22languageCode%22%3A%22cs%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Czech%22%7D%7D%2C%7B%22languageCode%22%3A%22da%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Danish%22%7D%7D%2C%7B%22languageCode%22%3A%22nl%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Dutch%22%7D%7D%2C%7B%22languageCode%22%3A%22en%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22English%22%7D%7D%2C%7B%22languageCode%22%3A%22eo%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Esperanto%22%7D%7D%2C%7B%22languageCode%22%3A%22et%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Estonian%22%7D%7D%2C%7B%22languageCode%22%3A%22fil%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Filipino%22%7D%7D%2C%7B%22languageCode%22%3A%22fi%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Finnish%22%7D%7D%2C%7B%22languageCode%22%3A%22fr%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22French%22%7D%7D%2C%7B%22languageCode%22%3A%22gl%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Galician%22%7D%7D%2C%7B%22languageCode%22%3A%22ka%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Georgian%22%7D%7D%2C%7B%22languageCode%22%3A%22de%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22German%22%7D%7D%2C%7B%22languageCode%22%3A%22el%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Greek%22%7D%7D%2C%7B%22languageCode%22%3A%22gu%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Gujarati%22%7D%7D%2C%7B%22languageCode%22%3A%22ht%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Haitian+Creole%22%7D%7D%2C%7B%22languageCode%22%3A%22ha%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Hausa%22%7D%7D%2C%7B%22languageCode%22%3A%22haw%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Hawaiian%22%7D%7D%2C%7B%22languageCode%22%3A%22iw%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Hebrew%22%7D%7D%2C%7B%22languageCode%22%3A%22hi%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Hindi%22%7D%7D%2C%7B%22languageCode%22%3A%22hmn%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Hmong%22%7D%7D%2C%7B%22languageCode%22%3A%22hu%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Hungarian%22%7D%7D%2C%7B%22languageCode%22%3A%22is%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Icelandic%22%7D%7D%2C%7B%22languageCode%22%3A%22ig%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Igbo%22%7D%7D%2C%7B%22languageCode%22%3A%22id%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Indonesian%22%7D%7D%2C%7B%22languageCode%22%3A%22ga%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Irish%22%7D%7D%2C%7B%22languageCode%22%3A%22it%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Italian%22%7D%7D%2C%7B%22languageCode%22%3A%22ja%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Japanese%22%7D%7D%2C%7B%22languageCode%22%3A%22jv%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Javanese%22%7D%7D%2C%7B%22languageCode%22%3A%22kn%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Kannada%22%7D%7D%2C%7B%22languageCode%22%3A%22kk%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Kazakh%22%7D%7D%2C%7B%22languageCode%22%3A%22km%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Khmer%22%7D%7D%2C%7B%22languageCode%22%3A%22ko%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Korean%22%7D%7D%2C%7B%22languageCode%22%3A%22ku%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Kurdish%22%7D%7D%2C%7B%22languageCode%22%3A%22ky%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Kyrgyz%22%7D%7D%2C%7B%22languageCode%22%3A%22lo%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Lao%22%7D%7D%2C%7B%22languageCode%22%3A%22la%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Latin%22%7D%7D%2C%7B%22languageCode%22%3A%22lv%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Latvian%22%7D%7D%2C%7B%22languageCode%22%3A%22lt%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Lithuanian%22%7D%7D%2C%7B%22languageCode%22%3A%22lb%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Luxembourgish%22%7D%7D%2C%7B%22languageCode%22%3A%22mk%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Macedonian%22%7D%7D%2C%7B%22languageCode%22%3A%22mg%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Malagasy%22%7D%7D%2C%7B%22languageCode%22%3A%22ms%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Malay%22%7D%7D%2C%7B%22languageCode%22%3A%22ml%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Malayalam%22%7D%7D%2C%7B%22languageCode%22%3A%22mt%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Maltese%22%7D%7D%2C%7B%22languageCode%22%3A%22mi%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Maori%22%7D%7D%2C%7B%22languageCode%22%3A%22mr%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Marathi%22%7D%7D%2C%7B%22languageCode%22%3A%22mn%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Mongolian%22%7D%7D%2C%7B%22languageCode%22%3A%22ne%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Nepali%22%7D%7D%2C%7B%22languageCode%22%3A%22no%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Norwegian%22%7D%7D%2C%7B%22languageCode%22%3A%22ny%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Nyanja%22%7D%7D%2C%7B%22languageCode%22%3A%22ps%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Pashto%22%7D%7D%2C%7B%22languageCode%22%3A%22fa%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Persian%22%7D%7D%2C%7B%22languageCode%22%3A%22pl%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Polish%22%7D%7D%2C%7B%22languageCode%22%3A%22pt%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Portuguese%22%7D%7D%2C%7B%22languageCode%22%3A%22pa%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Punjabi%22%7D%7D%2C%7B%22languageCode%22%3A%22ro%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Romanian%22%7D%7D%2C%7B%22languageCode%22%3A%22ru%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Russian%22%7D%7D%2C%7B%22languageCode%22%3A%22sm%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Samoan%22%7D%7D%2C%7B%22languageCode%22%3A%22gd%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Scottish+Gaelic%22%7D%7D%2C%7B%22languageCode%22%3A%22sr%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Serbian%22%7D%7D%2C%7B%22languageCode%22%3A%22sn%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Shona%22%7D%7D%2C%7B%22languageCode%22%3A%22sd%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Sindhi%22%7D%7D%2C%7B%22languageCode%22%3A%22si%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Sinhala%22%7D%7D%2C%7B%22languageCode%22%3A%22sk%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Slovak%22%7D%7D%2C%7B%22languageCode%22%3A%22sl%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Slovenian%22%7D%7D%2C%7B%22languageCode%22%3A%22so%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Somali%22%7D%7D%2C%7B%22languageCode%22%3A%22st%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Southern+Sotho%22%7D%7D%2C%7B%22languageCode%22%3A%22es%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Spanish%22%7D%7D%2C%7B%22languageCode%22%3A%22su%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Sundanese%22%7D%7D%2C%7B%22languageCode%22%3A%22sw%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Swahili%22%7D%7D%2C%7B%22languageCode%22%3A%22sv%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Swedish%22%7D%7D%2C%7B%22languageCode%22%3A%22tg%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Tajik%22%7D%7D%2C%7B%22languageCode%22%3A%22ta%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Tamil%22%7D%7D%2C%7B%22languageCode%22%3A%22te%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Telugu%22%7D%7D%2C%7B%22languageCode%22%3A%22th%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Thai%22%7D%7D%2C%7B%22languageCode%22%3A%22tr%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Turkish%22%7D%7D%2C%7B%22languageCode%22%3A%22uk%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Ukrainian%22%7D%7D%2C%7B%22languageCode%22%3A%22ur%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Urdu%22%7D%7D%2C%7B%22languageCode%22%3A%22uz%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Uzbek%22%7D%7D%2C%7B%22languageCode%22%3A%22vi%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Vietnamese%22%7D%7D%2C%7B%22languageCode%22%3A%22cy%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Welsh%22%7D%7D%2C%7B%22languageCode%22%3A%22fy%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Western+Frisian%22%7D%7D%2C%7B%22languageCode%22%3A%22xh%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Xhosa%22%7D%7D%2C%7B%22languageCode%22%3A%22yi%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Yiddish%22%7D%7D%2C%7B%22languageCode%22%3A%22yo%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Yoruba%22%7D%7D%2C%7B%22languageCode%22%3A%22zu%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Zulu%22%7D%7D%5D%2C%22defaultAudioTrackIndex%22%3A0%7D%7D%2C%22videoDetails%22%3A%7B%22thumbnail%22%3A%7B%22thumbnails%22%3A%5B%7B%22url%22%3A%22https%3A%2F%2Fi.ytimg.com%2Fvi%2FYLg-LCkYXbI%2Fhqdefault.jpg%3Fsqp%3D-oaymwEWCKgBEF5IWvKriqkDCQgBFQAAiEIYAQ%3D%3D%5Cu0026rs%3DAOn4CLD0lHlyaeo4Dcy-0vBzPCMBKmTLlA%22%2C%22width%22%3A168%2C%22height%22%3A94%7D%2C%7B%22url%22%3A%22https%3A%2F%2Fi.ytimg.com%2Fvi%2FYLg-LCkYXbI%2Fhqdefault.jpg%3Fsqp%3D-oaymwEWCMQBEG5IWvKriqkDCQgBFQAAiEIYAQ%3D%3D%5Cu0026rs%3DAOn4CLA3x2tTxR00CPR4s58500W5CnsT7g%22%2C%22width%22%3A196%2C%22height%22%3A110%7D%2C%7B%22url%22%3A%22https%3A%2F%2Fi.ytimg.com%2Fvi%2FYLg-LCkYXbI%2Fhqdefault.jpg%3Fsqp%3D-oaymwEXCPYBEIoBSFryq4qpAwkIARUAAIhCGAE%3D%5Cu0026rs%3DAOn4CLBZJjSS07XphYFx3jCyv2cLUYy8sA%22%2C%22width%22%3A246%2C%22height%22%3A138%7D%2C%7B%22url%22%3A%22https%3A%2F%2Fi.ytimg.com%2Fvi%2FYLg-LCkYXbI%2Fhqdefault.jpg%3Fsqp%3D-oaymwEXCNACELwBSFryq4qpAwkIARUAAIhCGAE%3D%5Cu0026rs%3DAOn4CLB6rfdLt1OFLGHhQLCJhKMvUtWPEQ%22%2C%22width%22%3A336%2C%22height%22%3A188%7D%5D%7D%7D%2C%22adSafetyReason%22%3A%7B%7D%7D&author=Canoe+Kayak+Canada&status=ok&account_playback_token=QUFFLUhqbXQxbGo0ckt3Nks0Y3dzLTZlNlY5Y1NJNWZlZ3xBQ3Jtc0trSzBzR1pNVjZ5N29QbVQzQ18xUjlJY1gwRzFsMUtlV1BFaV9xbnVpdWU1V3lRWDBtQndSMFZXbzN2NTZpYndnYlVWbV9uUWdBQWNhdWk5LVFlanQ4MjNjVWc3RlhJcWRYQkpadU5NeG9xUGYxaEZpYw%3D%3D&vm=CAEQABgE&cver=1.20171023&fexp=23701710%2C23702322%2C23702387%2C23702700%2C23702730%2C23704248%2C23705485%2C23705739%2C23706129%2C23706607%2C23707852%2C23708159%2C23708907%2C23708910%2C23709268%2C23709826%2C9422596%2C9431754%2C9444895%2C9449243%2C9466594%2C9471239%2C9474594%2C9476026%2C9476327%2C9479904%2C9480475%2C9485000%2C9486220%2C9488038%2C9488568&dashmpd=https%3A%2F%2Fmanifest.googlevideo.com%2Fapi%2Fmanifest%2Fdash%2Fas%2Ffmp4_audio_clear%252Cfmp4_sd_hd_clear%2Fhfr%2Fall%2Fip%2F209.59.90.197%2Fpl%2F24%2Fmv%2Fm%2Fmt%2F1508914129%2Fms%2Fau%2Fei%2FhjTwWdjSFcOc-wXUt5eoDA%2Fsource%2Fyoutube%2Fexpire%2F1508935910%2Fmm%2F31%2Fid%2F60b83e2c29185db2%2Fitag%2F0%2Fbeids%2F%255B9466594%255D%2Fipbits%2F0%2Fmn%2Fsn-4avf-cbpe%2Fsignature%2F987A64FA597244E622E2CF04F46F27E4D6F33D49.93DEA8205EB462E570AA2E92002503E85081A38C%2Fsparams%2Fas%252Cei%252Chfr%252Cid%252Cinitcwndbps%252Cip%252Cipbits%252Citag%252Cmm%252Cmn%252Cms%252Cmv%252Cpl%252Cplayback_host%252Crequiressl%252Csource%252Cexpire%2Finitcwndbps%2F241250%2Frequiressl%2Fyes%2Fplayback_host%2Fr2---sn-4avf-cbpe.googlevideo.com%2Fkey%2Fyt6&video_id=YLg-LCkYXbI&atc=a%3D3%26b%3DdlkpN0_V7LFIALZZVUMY7GxFft0%26c%3D1508914310%26d%3D1%26e%3DYLg-LCkYXbI%26c3a%3D19%26c1a%3D1%26c6a%3D1%26hh%3D1rTfxaUE7EU9OcLveLizB472aa3sYQt8I7jWYKMOHi4&hl=en_US&title=CKC+2017+-+Junior+Men%27s+C15+Homme+1000m+FINAL&ssl=1&ppv_remarketing_url=https%3A%2F%2Fwww.googleadservices.com%2Fpagead%2Fconversion%2F971134070%2F%3Fbackend%3Dinnertube%26cname%3D1%26cver%3D1_20171023%26data%3Dbackend%253Dinnertube%253Bcname%253D1%253Bcver%253D1_20171023%253Bdactive%253DNone%253Bptype%253Dppv%26label%3DiuZUCLmC72YQ9qiJzwM%26ptype%3Dppv&vmap=%3C%3Fxml+version%3D%221.0%22+encoding%3D%22UTF-8%22%3F%3E%3Cvmap%3AVMAP+xmlns%3Avmap%3D%22http%3A%2F%2Fwww.iab.net%2Fvideosuite%2Fvmap%22+xmlns%3Ayt%3D%22http%3A%2F%2Fyoutube.com%22+version%3D%221.0%22%3E%3C%2Fvmap%3AVMAP%3E&of=zHjWOu7GSacTT-VevsygSw&gapi_hint_params=m%3B%2F_%2Fscs%2Fabc-static%2F_%2Fjs%2Fk%3Dgapi.gapi.en.CMK08v540qY.O%2Fm%3D__features__%2Fam%3DAAg%2Frt%3Dj%2Fd%3D1%2Frs%3DAHpOoo-zuYXPOIuiHXsKOXE2DwZ06yC48g&itct=CAEQu2kiEwjYrdzrl4vXAhVDzr4KHdTbBcUo6NQB×tamp=1508914310&iv_invideo_url=https%3A%2F%2Fwww.youtube.com%2Fannotations_invideo%3Fcap_hist%3D1%26video_id%3DYLg-LCkYXbI%26client%3D1%26ei%3DhjTwWdjSFcOc-wXUt5eoDA&root_ve_type=27240&swf_player_response=1&keywords=Day4&cr=US&idpj=-7&allow_ratings=1&cl=173247681&enablecsi=1&iv_load_policy=1&videostats_playback_base_url=https%3A%2F%2Fs.youtube.com%2Fapi%2Fstats%2Fplayback%3Fel%3Dembedded%26docid%3DYLg-LCkYXbI%26ei%3DhjTwWdjSFcOc-wXUt5eoDA%26vm%3DCAEQABgE%26plid%3DAAVcWX14pJbV1fGw%26ns%3Dyt%26cl%3D173247681%26len%3D310%26of%3DzHjWOu7GSacTT-VevsygSw%26fexp%3D23701710%252C23702322%252C23702387%252C23702700%252C23702730%252C23704248%252C23705485%252C23705739%252C23706129%252C23706607%252C23707852%252C23708159%252C23708907%252C23708910%252C23709268%252C23709826%252C9422596%252C9431754%252C9444895%252C9449243%252C9466594%252C9471239%252C9474594%252C9476026%252C9476327%252C9479904%252C9480475%252C9485000%252C9486220%252C9488038%252C9488568&tmi=1&storyboard_spec=https%3A%2F%2Fi9.ytimg.com%2Fsb%2FYLg-LCkYXbI%2Fstoryboard3_L%24L%2F%24N.jpg%7C48%2327%23100%2310%2310%230%23default%23rs%24AOn4CLBT6swri_SqgEJ-YI8TvnTAlh0kZw%7C80%2345%2363%2310%2310%235000%23M%24M%23rs%24AOn4CLDRiEriQwqebeCgrU01FS92rKvCMA%7C160%2390%2363%235%235%235000%23M%24M%23rs%24AOn4CLDWdouNDSKoYgPHCXvLQfDE4oGjiQ", + "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=\"39,38,37,35\"", + "Set-Cookie" : "YSC=PujediQ-EQ0; path=\/; domain=.youtube.com; httponly", + "Server" : "YouTube Frontend Proxy", + "Content-Encoding" : "br", + "X-XSS-Protection" : "1; mode=block; report=https:\/\/www.google.com\/appserve\/security-bugs\/log\/youtube", + "Expires" : "Tue, 27 Apr 1971 19:44:06 EST", + "Cache-Control" : "no-store", + "Date" : "Wed, 25 Oct 2017 06:51:50 GMT", + "Strict-Transport-Security" : "max-age=31536000", + "Content-Length" : "8238", + "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=YLg-LCkYXbI" + }, + { + "body" : "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPE1QRCB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxucz0idXJuOm1wZWc6REFTSDpzY2hlbWE6TVBEOjIwMTEiIHhtbG5zOnl0PSJodHRwOi8veW91dHViZS5jb20veXQvMjAxMi8xMC8xMCIgeHNpOnNjaGVtYUxvY2F0aW9uPSJ1cm46bXBlZzpEQVNIOnNjaGVtYTpNUEQ6MjAxMSBEQVNILU1QRC54c2QiIG1pbkJ1ZmZlclRpbWU9IlBUMS41MDBTIiBwcm9maWxlcz0idXJuOm1wZWc6ZGFzaDpwcm9maWxlOmlzb2ZmLW1haW46MjAxMSIgdHlwZT0ic3RhdGljIiBtZWRpYVByZXNlbnRhdGlvbkR1cmF0aW9uPSJQVDMwOS43MDdTIj48UGVyaW9kPjxBZGFwdGF0aW9uU2V0IGlkPSIwIiBtaW1lVHlwZT0iYXVkaW8vbXA0IiBzdWJzZWdtZW50QWxpZ25tZW50PSJ0cnVlIj48Um9sZSBzY2hlbWVJZFVyaT0idXJuOm1wZWc6REFTSDpyb2xlOjIwMTEiIHZhbHVlPSJtYWluIi8+PFNlZ21lbnRMaXN0IHN0YXJ0TnVtYmVyPSIwIiB0aW1lc2NhbGU9IjEwMDAiPjxTZWdtZW50VGltZWxpbmU+PFMgZD0iNTAxNiIvPjxTIGQ9IjUwMTUiLz48UyBkPSI0OTY5Ii8+PFMgZD0iNTAxNiIvPjxTIGQ9IjUwMTUiLz48UyBkPSI0OTY5Ii8+PFMgZD0iNTAxNiIvPjxTIGQ9IjUwMTUiLz48UyBkPSI0OTY5Ii8+PFMgZD0iNTAxNiIvPjxTIGQ9IjUwMTUiLz48UyBkPSI0OTY5Ii8+PFMgZD0iNTAxNiIvPjxTIGQ9IjUwMTUiLz48UyBkPSI0OTY5Ii8+PFMgZD0iNTAxNiIvPjxTIGQ9IjUwMTUiLz48UyBkPSI0OTcwIi8+PFMgZD0iNTAxNSIvPjxTIGQ9IjUwMTYiLz48UyBkPSI0OTY5Ii8+PFMgZD0iNTAxNSIvPjxTIGQ9IjUwMTYiLz48UyBkPSI0OTY5Ii8+PFMgZD0iNTAxNSIvPjxTIGQ9IjUwMTYiLz48UyBkPSI0OTY5Ii8+PFMgZD0iNTAxNSIvPjxTIGQ9IjUwMTYiLz48UyBkPSI0OTY5Ii8+PFMgZD0iNTAxNSIvPjxTIGQ9IjUwMTYiLz48UyBkPSI0OTY5Ii8+PFMgZD0iNTAxNSIvPjxTIGQ9IjUwMTYiLz48UyBkPSI0OTY5Ii8+PFMgZD0iNTAxNiIvPjxTIGQ9IjUwMTUiLz48UyBkPSI0OTY5Ii8+PFMgZD0iNTAxNiIvPjxTIGQ9IjUwMTUiLz48UyBkPSI0OTY5Ii8+PFMgZD0iNTAxNiIvPjxTIGQ9IjUwMTUiLz48UyBkPSI0OTY5Ii8+PFMgZD0iNTAxNiIvPjxTIGQ9IjUwMTUiLz48UyBkPSI0OTY5Ii8+PFMgZD0iNTAxNiIvPjxTIGQ9IjUwMTUiLz48UyBkPSI0OTcwIi8+PFMgZD0iNTAxNSIvPjxTIGQ9IjUwMTYiLz48UyBkPSI0OTY5Ii8+PFMgZD0iNTAxNSIvPjxTIGQ9IjUwMTYiLz48UyBkPSI0OTY5Ii8+PFMgZD0iNTAxNSIvPjxTIGQ9IjUwMTYiLz48UyBkPSI0OTY5Ii8+PFMgZD0iNTAxNSIvPjxTIGQ9IjQ2OTAiLz48L1NlZ21lbnRUaW1lbGluZT48L1NlZ21lbnRMaXN0PjxSZXByZXNlbnRhdGlvbiBpZD0iMTM5IiBjb2RlY3M9Im1wNGEuNDAuNSIgYXVkaW9TYW1wbGluZ1JhdGU9IjIyMDUwIiBzdGFydFdpdGhTQVA9IjEiIGJhbmR3aWR0aD0iNTAyNDUiPjxBdWRpb0NoYW5uZWxDb25maWd1cmF0aW9uIHNjaGVtZUlkVXJpPSJ1cm46bXBlZzpkYXNoOjIzMDAzOjM6YXVkaW9fY2hhbm5lbF9jb25maWd1cmF0aW9uOjIwMTEiIHZhbHVlPSIyIi8+PEJhc2VVUkw+aHR0cHM6Ly9yMi0tLXNuLTRhdmYtY2JwZS5nb29nbGV2aWRlby5jb20vdmlkZW9wbGF5YmFjay9pZC82MGI4M2UyYzI5MTg1ZGIyL2l0YWcvMTM5L3NvdXJjZS95b3V0dWJlL3JlcXVpcmVzc2wveWVzL3BsLzI0L212L20vbXMvYXUvZWkvaGpUd1dkalNGY09jLXdYVXQ1ZW9EQS9tbS8zMS9tbi9zbi00YXZmLWNicGUvaW5pdGN3bmRicHMvMjQxMjUwL3JhdGVieXBhc3MveWVzL21pbWUvYXVkaW8lMkZtcDQvb3RmcC8xL2dpci95ZXMvY2xlbi8xODQ2MDYyL2xtdC8xNTA1NDIzNjE2MzYzMzI1L2R1ci8zMDkuNzA3L210LzE1MDg5MTQxMjkvYmVpZHMvJTVCOTQ2NjU5NCU1RC9zaWduYXR1cmUvNjJBNTFGRTZCNjAxNTlBMUI3MjExQzQ2NDNEQTdFQ0FBNENDNUJDQS41QUIwQkEwMzc4ODVDQjlGNTAwMEJGQTZFMTE3MDRERDM2MTQ0MjJEL2tleS9kZ195dDAvaXAvMjA5LjU5LjkwLjE5Ny9pcGJpdHMvMC9leHBpcmUvMTUwODkzNTkxMC9zcGFyYW1zL2lwLGlwYml0cyxleHBpcmUsaWQsaXRhZyxzb3VyY2UscmVxdWlyZXNzbCxwbCxtdixtcyxlaSxtbSxtbixpbml0Y3duZGJwcyxyYXRlYnlwYXNzLG1pbWUsb3RmcCxnaXIsY2xlbixsbXQsZHVyLzwvQmFzZVVSTD48U2VnbWVudExpc3Q+PEluaXRpYWxpemF0aW9uIHNvdXJjZVVSTD0icmFuZ2UvMC01OTMiLz48U2VnbWVudFVSTCBtZWRpYT0icmFuZ2UvMTM3MC0zMTUwMyIvPjxTZWdtZW50VVJMIG1lZGlhPSJyYW5nZS8zMTUwNC02MTUxOCIvPjxTZWdtZW50VVJMIG1lZGlhPSJyYW5nZS82MTUxOS05MTE4MyIvPjxTZWdtZW50VVJMIG1lZGlhPSJyYW5nZS85MTE4NC0xMjA5OTQiLz48U2VnbWVudFVSTCBtZWRpYT0icmFuZ2UvMTIwOTk1LTE1MDc5NCIvPjxTZWdtZW50VVJMIG1lZGlhPSJyYW5nZS8xNTA3OTUtMTgwNjcxIi8+PFNlZ21lbnRVUkwgbWVkaWE9InJhbmdlLzE4MDY3Mi0yMTA1OTkiLz48U2VnbWVudFVSTCBtZWRpYT0icmFuZ2UvMjEwNjAwLTI0MDI1MSIvPjxTZWdtZW50VVJMIG1lZGlhPSJyYW5nZS8yNDAyNTItMjY5OTAxIi8+PFNlZ21lbnRVUkwgbWVkaWE9InJhbmdlLzI2OTkwMi0yOTk3NDIiLz48U2VnbWVudFVSTCBtZWRpYT0icmFuZ2UvMjk5NzQzLTMyOTYyNyIvPjxTZWdtZW50VVJMIG1lZGlhPSJyYW5nZS8zMjk2MjgtMzU5MDUxIi8+PFNlZ21lbnRVUkwgbWVkaWE9InJhbmdlLzM1OTA1Mi0zODkwMDYiLz48U2VnbWVudFVSTCBtZWRpYT0icmFuZ2UvMzg5MDA3LTQxOTAzMyIvPjxTZWdtZW50VVJMIG1lZGlhPSJyYW5nZS80MTkwMzQtNDQ4Mzk3Ii8+PFNlZ21lbnRVUkwgbWVkaWE9InJhbmdlLzQ0ODM5OC00NzgzNzYiLz48U2VnbWVudFVSTCBtZWRpYT0icmFuZ2UvNDc4Mzc3LTUwODIyNyIvPjxTZWdtZW50VVJMIG1lZGlhPSJyYW5nZS81MDgyMjgtNTM3OTcwIi8+PFNlZ21lbnRVUkwgbWVkaWE9InJhbmdlLzUzNzk3MS01Njc3MjEiLz48U2VnbWVudFVSTCBtZWRpYT0icmFuZ2UvNTY3NzIyLTU5NzU4NSIvPjxTZWdtZW50VVJMIG1lZGlhPSJyYW5nZS81OTc1ODYtNjI3MTcxIi8+PFNlZ21lbnRVUkwgbWVkaWE9InJhbmdlLzYyNzE3Mi02NTcxMDUiLz48U2VnbWVudFVSTCBtZWRpYT0icmFuZ2UvNjU3MTA2LTY4NzAzMSIvPjxTZWdtZW50VVJMIG1lZGlhPSJyYW5nZS82ODcwMzItNzE2NjMxIi8+PFNlZ21lbnRVUkwgbWVkaWE9InJhbmdlLzcxNjYzMi03NDY0MjMiLz48U2VnbWVudFVSTCBtZWRpYT0icmFuZ2UvNzQ2NDI0LTc3NjI1NyIvPjxTZWdtZW50VVJMIG1lZGlhPSJyYW5nZS83NzYyNTgtODA1OTU4Ii8+PFNlZ21lbnRVUkwgbWVkaWE9InJhbmdlLzgwNTk1OS04MzU4MDkiLz48U2VnbWVudFVSTCBtZWRpYT0icmFuZ2UvODM1ODEwLTg2NTc4MCIvPjxTZWdtZW50VVJMIG1lZGlhPSJyYW5nZS84NjU3ODEtODk1MjgxIi8+PFNlZ21lbnRVUkwgbWVkaWE9InJhbmdlLzg5NTI4Mi05MjUwMDEiLz48U2VnbWVudFVSTCBtZWRpYT0icmFuZ2UvOTI1MDAyLTk1NTEzNyIvPjxTZWdtZW50VVJMIG1lZGlhPSJyYW5nZS85NTUxMzgtOTg0Njg1Ii8+PFNlZ21lbnRVUkwgbWVkaWE9InJhbmdlLzk4NDY4Ni0xMDE0NDMwIi8+PFNlZ21lbnRVUkwgbWVkaWE9InJhbmdlLzEwMTQ0MzEtMTA0NDM1MCIvPjxTZWdtZW50VVJMIG1lZGlhPSJyYW5nZS8xMDQ0MzUxLTEwNzQwMzciLz48U2VnbWVudFVSTCBtZWRpYT0icmFuZ2UvMTA3NDAzOC0xMTAzOTkyIi8+PFNlZ21lbnRVUkwgbWVkaWE9InJhbmdlLzExMDM5OTMtMTEzMzcxOSIvPjxTZWdtZW50VVJMIG1lZGlhPSJyYW5nZS8xMTMzNzIwLTExNjM0NTciLz48U2VnbWVudFVSTCBtZWRpYT0icmFuZ2UvMTE2MzQ1OC0xMTkzMTE2Ii8+PFNlZ21lbnRVUkwgbWVkaWE9InJhbmdlLzExOTMxMTctMTIyMzAxMCIvPjxTZWdtZW50VVJMIG1lZGlhPSJyYW5nZS8xMjIzMDExLTEyNTI5MDAiLz48U2VnbWVudFVSTCBtZWRpYT0icmFuZ2UvMTI1MjkwMS0xMjgyNDk4Ii8+PFNlZ21lbnRVUkwgbWVkaWE9InJhbmdlLzEyODI0OTktMTMxMjQzMiIvPjxTZWdtZW50VVJMIG1lZGlhPSJyYW5nZS8xMzEyNDMzLTEzNDIxOTgiLz48U2VnbWVudFVSTCBtZWRpYT0icmFuZ2UvMTM0MjE5OS0xMzcxODU2Ii8+PFNlZ21lbnRVUkwgbWVkaWE9InJhbmdlLzEzNzE4NTctMTQwMTkxMCIvPjxTZWdtZW50VVJMIG1lZGlhPSJyYW5nZS8xNDAxOTExLTE0MzE0MzgiLz48U2VnbWVudFVSTCBtZWRpYT0icmFuZ2UvMTQzMTQzOS0xNDYxMjcwIi8+PFNlZ21lbnRVUkwgbWVkaWE9InJhbmdlLzE0NjEyNzEtMTQ5MTEyMiIvPjxTZWdtZW50VVJMIG1lZGlhPSJyYW5nZS8xNDkxMTIzLTE1MjA2NjUiLz48U2VnbWVudFVSTCBtZWRpYT0icmFuZ2UvMTUyMDY2Ni0xNTUwNjU0Ii8+PFNlZ21lbnRVUkwgbWVkaWE9InJhbmdlLzE1NTA2NTUtMTU4MDU0NSIvPjxTZWdtZW50VVJMIG1lZGlhPSJyYW5nZS8xNTgwNTQ2LTE2MTAwNDMiLz48U2VnbWVudFVSTCBtZWRpYT0icmFuZ2UvMTYxMDA0NC0xNjM5OTU0Ii8+PFNlZ21lbnRVUkwgbWVkaWE9InJhbmdlLzE2Mzk5NTUtMTY2OTg0MCIvPjxTZWdtZW50VVJMIG1lZGlhPSJyYW5nZS8xNjY5ODQxLTE2OTk0MjgiLz48U2VnbWVudFVSTCBtZWRpYT0icmFuZ2UvMTY5OTQyOS0xNzI5MzU3Ii8+PFNlZ21lbnRVUkwgbWVkaWE9InJhbmdlLzE3MjkzNTgtMTc1OTAwOCIvPjxTZWdtZW50VVJMIG1lZGlhPSJyYW5nZS8xNzU5MDA5LTE3ODg1MTAiLz48U2VnbWVudFVSTCBtZWRpYT0icmFuZ2UvMTc4ODUxMS0xODE4NTYxIi8+PFNlZ21lbnRVUkwgbWVkaWE9InJhbmdlLzE4MTg1NjItMTg0NjA2MSIvPjwvU2VnbWVudExpc3Q+PC9SZXByZXNlbnRhdGlvbj48UmVwcmVzZW50YXRpb24gaWQ9IjE0MCIgY29kZWNzPSJtcDRhLjQwLjIiIGF1ZGlvU2FtcGxpbmdSYXRlPSI0NDEwMCIgc3RhcnRXaXRoU0FQPSIxIiBiYW5kd2lkdGg9IjEyOTQ2OCI+PEF1ZGlvQ2hhbm5lbENvbmZpZ3VyYXRpb24gc2NoZW1lSWRVcmk9InVybjptcGVnOmRhc2g6MjMwMDM6MzphdWRpb19jaGFubmVsX2NvbmZpZ3VyYXRpb246MjAxMSIgdmFsdWU9IjIiLz48QmFzZVVSTD5odHRwczovL3IyLS0tc24tNGF2Zi1jYnBlLmdvb2dsZXZpZGVvLmNvbS92aWRlb3BsYXliYWNrL2lkLzYwYjgzZTJjMjkxODVkYjIvaXRhZy8xNDAvc291cmNlL3lvdXR1YmUvcmVxdWlyZXNzbC95ZXMvcGwvMjQvbXYvbS9tcy9hdS9laS9oalR3V2RqU0ZjT2Mtd1hVdDVlb0RBL21tLzMxL21uL3NuLTRhdmYtY2JwZS9pbml0Y3duZGJwcy8yNDEyNTAvcmF0ZWJ5cGFzcy95ZXMvbWltZS9hdWRpbyUyRm1wNC9vdGZwLzEvZ2lyL3llcy9jbGVuLzQ5MjIxMjkvbG10LzE1MDU0MjM2MTU3NzI4MTgvZHVyLzMwOS42MzgvbXQvMTUwODkxNDEyOS9iZWlkcy8lNUI5NDY2NTk0JTVEL3NpZ25hdHVyZS80RjJBQ0M0QUM4RjJFNEYyQjBDNDdCRTBENzE0MjY2NjkzNTBENjRBLjUyQjY2QjgzRUUzODcyREU3N0JDMjVBOTUyNjJDQUE4ODBDRTc3N0Eva2V5L2RnX3l0MC9pcC8yMDkuNTkuOTAuMTk3L2lwYml0cy8wL2V4cGlyZS8xNTA4OTM1OTEwL3NwYXJhbXMvaXAsaXBiaXRzLGV4cGlyZSxpZCxpdGFnLHNvdXJjZSxyZXF1aXJlc3NsLHBsLG12LG1zLGVpLG1tLG1uLGluaXRjd25kYnBzLHJhdGVieXBhc3MsbWltZSxvdGZwLGdpcixjbGVuLGxtdCxkdXIvPC9CYXNlVVJMPjxTZWdtZW50TGlzdD48SW5pdGlhbGl6YXRpb24gc291cmNlVVJMPSJyYW5nZS8wLTU5MSIvPjxTZWdtZW50VVJMIG1lZGlhPSJyYW5nZS8xMzY4LTgxMTc2Ii8+PFNlZ21lbnRVUkwgbWVkaWE9InJhbmdlLzgxMTc3LTE2MDc2NCIvPjxTZWdtZW50VVJMIG1lZGlhPSJyYW5nZS8xNjA3NjUtMjQwMTQ3Ii8+PFNlZ21lbnRVUkwgbWVkaWE9InJhbmdlLzI0MDE0OC0zMTk3NjciLz48U2VnbWVudFVSTCBtZWRpYT0icmFuZ2UvMzE5NzY4LTM5OTIxMCIvPjxTZWdtZW50VVJMIG1lZGlhPSJyYW5nZS8zOTkyMTEtNDc4NjQ2Ii8+PFNlZ21lbnRVUkwgbWVkaWE9InJhbmdlLzQ3ODY0Ny01NTgzNDEiLz48U2VnbWVudFVSTCBtZWRpYT0icmFuZ2UvNTU4MzQyLTYzNzU1MCIvPjxTZWdtZW50VVJMIG1lZGlhPSJyYW5nZS82Mzc1NTEtNzE2ODM1Ii8+PFNlZ21lbnRVUkwgbWVkaWE9InJhbmdlLzcxNjgzNi03OTY1ODkiLz48U2VnbWVudFVSTCBtZWRpYT0icmFuZ2UvNzk2NTkwLTg3NTc1MiIvPjxTZWdtZW50VVJMIG1lZGlhPSJyYW5nZS84NzU3NTMtOTU1NDIzIi8+PFNlZ21lbnRVUkwgbWVkaWE9InJhbmdlLzk1NTQyNC0xMDM0ODM4Ii8+PFNlZ21lbnRVUkwgbWVkaWE9InJhbmdlLzEwMzQ4MzktMTExNDQ0OSIvPjxTZWdtZW50VVJMIG1lZGlhPSJyYW5nZS8xMTE0NDUwLTExOTM1NTgiLz48U2VnbWVudFVSTCBtZWRpYT0icmFuZ2UvMTE5MzU1OS0xMjczMTI2Ii8+PFNlZ21lbnRVUkwgbWVkaWE9InJhbmdlLzEyNzMxMjctMTM1MjcwNyIvPjxTZWdtZW50VVJMIG1lZGlhPSJyYW5nZS8xMzUyNzA4LTE0MzE5NzciLz48U2VnbWVudFVSTCBtZWRpYT0icmFuZ2UvMTQzMTk3OC0xNTExNjgyIi8+PFNlZ21lbnRVUkwgbWVkaWE9InJhbmdlLzE1MTE2ODMtMTU5MTAyMSIvPjxTZWdtZW50VVJMIG1lZGlhPSJyYW5nZS8xNTkxMDIyLTE2NzAzMDYiLz48U2VnbWVudFVSTCBtZWRpYT0icmFuZ2UvMTY3MDMwNy0xNzUwMTQwIi8+PFNlZ21lbnRVUkwgbWVkaWE9InJhbmdlLzE3NTAxNDEtMTgyOTQ4MSIvPjxTZWdtZW50VVJMIG1lZGlhPSJyYW5nZS8xODI5NDgyLTE5MDg2OTQiLz48U2VnbWVudFVSTCBtZWRpYT0icmFuZ2UvMTkwODY5NS0xOTg4MzI3Ii8+PFNlZ21lbnRVUkwgbWVkaWE9InJhbmdlLzE5ODgzMjgtMjA2NzY5NiIvPjxTZWdtZW50VVJMIG1lZGlhPSJyYW5nZS8yMDY3Njk3LTIxNDY5NjEiLz48U2VnbWVudFVSTCBtZWRpYT0icmFuZ2UvMjE0Njk2Mi0yMjI2ODA5Ii8+PFNlZ21lbnRVUkwgbWVkaWE9InJhbmdlLzIyMjY4MTAtMjMwNjIwNSIvPjxTZWdtZW50VVJMIG1lZGlhPSJyYW5nZS8yMzA2MjA2LTIzODU0NjIiLz48U2VnbWVudFVSTCBtZWRpYT0icmFuZ2UvMjM4NTQ2My0yNDY1Mjc1Ii8+PFNlZ21lbnRVUkwgbWVkaWE9InJhbmdlLzI0NjUyNzYtMjU0NDYzMiIvPjxTZWdtZW50VVJMIG1lZGlhPSJyYW5nZS8yNTQ0NjMzLTI2MjM5MDMiLz48U2VnbWVudFVSTCBtZWRpYT0icmFuZ2UvMjYyMzkwNC0yNzAzMzkzIi8+PFNlZ21lbnRVUkwgbWVkaWE9InJhbmdlLzI3MDMzOTQtMjc4Mjc4MyIvPjxTZWdtZW50VVJMIG1lZGlhPSJyYW5nZS8yNzgyNzg0LTI4NjIyMDkiLz48U2VnbWVudFVSTCBtZWRpYT0icmFuZ2UvMjg2MjIxMC0yOTQxOTc1Ii8+PFNlZ21lbnRVUkwgbWVkaWE9InJhbmdlLzI5NDE5NzYtMzAyMTIwOCIvPjxTZWdtZW50VVJMIG1lZGlhPSJyYW5nZS8zMDIxMjA5LTMxMDA2NDciLz48U2VnbWVudFVSTCBtZWRpYT0icmFuZ2UvMzEwMDY0OC0zMTgwMjQzIi8+PFNlZ21lbnRVUkwgbWVkaWE9InJhbmdlLzMxODAyNDQtMzI1OTc2NSIvPjxTZWdtZW50VVJMIG1lZGlhPSJyYW5nZS8zMjU5NzY2LTMzMzkyMTEiLz48U2VnbWVudFVSTCBtZWRpYT0icmFuZ2UvMzMzOTIxMi0zNDE4NzE1Ii8+PFNlZ21lbnRVUkwgbWVkaWE9InJhbmdlLzM0MTg3MTYtMzQ5ODI0NyIvPjxTZWdtZW50VVJMIG1lZGlhPSJyYW5nZS8zNDk4MjQ4LTM1Nzc0NjQiLz48U2VnbWVudFVSTCBtZWRpYT0icmFuZ2UvMzU3NzQ2NS0zNjU3MDI5Ii8+PFNlZ21lbnRVUkwgbWVkaWE9InJhbmdlLzM2NTcwMzAtMzczNjQ4MSIvPjxTZWdtZW50VVJMIG1lZGlhPSJyYW5nZS8zNzM2NDgyLTM4MTU2NDYiLz48U2VnbWVudFVSTCBtZWRpYT0icmFuZ2UvMzgxNTY0Ny0zODk1NzEzIi8+PFNlZ21lbnRVUkwgbWVkaWE9InJhbmdlLzM4OTU3MTQtMzk3NDcwMyIvPjxTZWdtZW50VVJMIG1lZGlhPSJyYW5nZS8zOTc0NzA0LTQwNTQwNzciLz48U2VnbWVudFVSTCBtZWRpYT0icmFuZ2UvNDA1NDA3OC00MTMzNzc2Ii8+PFNlZ21lbnRVUkwgbWVkaWE9InJhbmdlLzQxMzM3NzctNDIxMzE3MyIvPjxTZWdtZW50VVJMIG1lZGlhPSJyYW5nZS80MjEzMTc0LTQyOTI0MDYiLz48U2VnbWVudFVSTCBtZWRpYT0icmFuZ2UvNDI5MjQwNy00MzcyMTAyIi8+PFNlZ21lbnRVUkwgbWVkaWE9InJhbmdlLzQzNzIxMDMtNDQ1MTQ5MyIvPjxTZWdtZW50VVJMIG1lZGlhPSJyYW5nZS80NDUxNDk0LTQ1MzA5NTkiLz48U2VnbWVudFVSTCBtZWRpYT0icmFuZ2UvNDUzMDk2MC00NjEwNTE1Ii8+PFNlZ21lbnRVUkwgbWVkaWE9InJhbmdlLzQ2MTA1MTYtNDY4OTY5NiIvPjxTZWdtZW50VVJMIG1lZGlhPSJyYW5nZS80Njg5Njk3LTQ3NjkxODkiLz48U2VnbWVudFVSTCBtZWRpYT0icmFuZ2UvNDc2OTE5MC00ODQ4ODgxIi8+PFNlZ21lbnRVUkwgbWVkaWE9InJhbmdlLzQ4NDg4ODItNDkyMjEyOCIvPjwvU2VnbWVudExpc3Q+PC9SZXByZXNlbnRhdGlvbj48L0FkYXB0YXRpb25TZXQ+PEFkYXB0YXRpb25TZXQgaWQ9IjEiIG1pbWVUeXBlPSJ2aWRlby9tcDQiIHN1YnNlZ21lbnRBbGlnbm1lbnQ9InRydWUiPjxSb2xlIHNjaGVtZUlkVXJpPSJ1cm46bXBlZzpEQVNIOnJvbGU6MjAxMSIgdmFsdWU9Im1haW4iLz48U2VnbWVudExpc3Qgc3RhcnROdW1iZXI9IjAiIHRpbWVzY2FsZT0iMTAwMCI+PFNlZ21lbnRUaW1lbGluZT48UyBkPSI1MDcyIi8+PFMgZD0iNTA3MSIvPjxTIGQ9IjUwNzIiLz48UyBkPSI1MDcyIi8+PFMgZD0iNTA3MiIvPjxTIGQ9IjUwNzEiLz48UyBkPSI1MDcyIi8+PFMgZD0iNTA3MiIvPjxTIGQ9IjUwNzIiLz48UyBkPSI1MDcxIi8+PFMgZD0iNTA3MiIvPjxTIGQ9IjUwNzIiLz48UyBkPSI1MDcyIi8+PFMgZD0iNTA3MSIvPjxTIGQ9IjUwNzIiLz48UyBkPSI1MDcyIi8+PFMgZD0iNTA3MSIvPjxTIGQ9IjUwNzIiLz48UyBkPSI1MDcyIi8+PFMgZD0iNTA3MiIvPjxTIGQ9IjUwNzEiLz48UyBkPSI1MDcyIi8+PFMgZD0iNTA3MiIvPjxTIGQ9IjUwNzIiLz48UyBkPSI1MDcxIi8+PFMgZD0iNTA3MiIvPjxTIGQ9IjUwNzIiLz48UyBkPSI1MDcyIi8+PFMgZD0iNTA3MSIvPjxTIGQ9IjUwNzIiLz48UyBkPSI1MDcyIi8+PFMgZD0iNTA3MSIvPjxTIGQ9IjUwNzIiLz48UyBkPSI1MDcyIi8+PFMgZD0iNTA3MiIvPjxTIGQ9IjUwNzEiLz48UyBkPSI1MDcyIi8+PFMgZD0iNTA3MiIvPjxTIGQ9IjUwNzIiLz48UyBkPSI1MDcxIi8+PFMgZD0iNTA3MiIvPjxTIGQ9IjUwNzIiLz48UyBkPSI1MDcyIi8+PFMgZD0iNTA3MSIvPjxTIGQ9IjUwNzIiLz48UyBkPSI1MDcyIi8+PFMgZD0iNTA3MSIvPjxTIGQ9IjUwNzIiLz48UyBkPSI1MDcyIi8+PFMgZD0iNTA3MiIvPjxTIGQ9IjUwNzEiLz48UyBkPSI1MDcyIi8+PFMgZD0iNTA3MiIvPjxTIGQ9IjUwNzIiLz48UyBkPSI1MDcxIi8+PFMgZD0iNTA3MiIvPjxTIGQ9IjUwNzIiLz48UyBkPSI1MDcyIi8+PFMgZD0iNTA3MSIvPjxTIGQ9IjUwNzIiLz48UyBkPSI1MjcyIi8+PC9TZWdtZW50VGltZWxpbmU+PC9TZWdtZW50TGlzdD48UmVwcmVzZW50YXRpb24gaWQ9IjEzMyIgY29kZWNzPSJhdmMxLjRkNDAwYyIgd2lkdGg9IjQyNiIgaGVpZ2h0PSIyNDAiIHN0YXJ0V2l0aFNBUD0iMSIgbWF4UGxheW91dFJhdGU9IjEiIGJhbmR3aWR0aD0iMjQyMDAwIiBmcmFtZVJhdGU9IjMwIj48QmFzZVVSTD5odHRwczovL3IyLS0tc24tNGF2Zi1jYnBlLmdvb2dsZXZpZGVvLmNvbS92aWRlb3BsYXliYWNrL2lkLzYwYjgzZTJjMjkxODVkYjIvaXRhZy8xMzMvc291cmNlL3l0X290Zi9yZXF1aXJlc3NsL3llcy9wbC8yNC9tdi9tL21zL2F1L2VpL2hqVHdXZGpTRmNPYy13WFV0NWVvREEvbW0vMzEvbW4vc24tNGF2Zi1jYnBlL2luaXRjd25kYnBzLzI0MTI1MC9yYXRlYnlwYXNzL3llcy9taW1lL3ZpZGVvJTJGbXA0L290ZnAvMS9vdGYvMS9sbXQvMTUwNTQyMzYwNzg0NzY4OC9tdC8xNTA4OTE0MTI5L2JlaWRzLyU1Qjk0NjY1OTQlNUQvc2lnbmF0dXJlLzdCODRDNTUwRDM2NTM0MUYzMjkxNDlCOEQ1RTNGQUY4Q0UxRjc5OTIuOTFERUNENDAzMENEMEU2QzRGREFFODFCMUZEMDFEQUMwNjkyNjIzMS9rZXkvZGdfeXQwL2lwLzIwOS41OS45MC4xOTcvaXBiaXRzLzAvZXhwaXJlLzE1MDg5MzU5MTAvc3BhcmFtcy9pcCxpcGJpdHMsZXhwaXJlLGlkLGl0YWcsc291cmNlLHJlcXVpcmVzc2wscGwsbXYsbXMsZWksbW0sbW4saW5pdGN3bmRicHMscmF0ZWJ5cGFzcyxtaW1lLG90ZnAsb3RmLGxtdC88L0Jhc2VVUkw+PFNlZ21lbnRMaXN0PjxJbml0aWFsaXphdGlvbiBzb3VyY2VVUkw9InNxLzAiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvMS9kdXIvNS4wNzIiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvMi9kdXIvNS4wNzEiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvMy9kdXIvNS4wNzIiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvNC9kdXIvNS4wNzIiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvNS9kdXIvNS4wNzIiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvNi9kdXIvNS4wNzEiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvNy9kdXIvNS4wNzIiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvOC9kdXIvNS4wNzIiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvOS9kdXIvNS4wNzIiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvMTAvZHVyLzUuMDcxIi8+PFNlZ21lbnRVUkwgbWVkaWE9InNxLzExL2R1ci81LjA3MiIvPjxTZWdtZW50VVJMIG1lZGlhPSJzcS8xMi9kdXIvNS4wNzIiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvMTMvZHVyLzUuMDcyIi8+PFNlZ21lbnRVUkwgbWVkaWE9InNxLzE0L2R1ci81LjA3MSIvPjxTZWdtZW50VVJMIG1lZGlhPSJzcS8xNS9kdXIvNS4wNzIiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvMTYvZHVyLzUuMDcyIi8+PFNlZ21lbnRVUkwgbWVkaWE9InNxLzE3L2R1ci81LjA3MSIvPjxTZWdtZW50VVJMIG1lZGlhPSJzcS8xOC9kdXIvNS4wNzIiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvMTkvZHVyLzUuMDcyIi8+PFNlZ21lbnRVUkwgbWVkaWE9InNxLzIwL2R1ci81LjA3MiIvPjxTZWdtZW50VVJMIG1lZGlhPSJzcS8yMS9kdXIvNS4wNzEiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvMjIvZHVyLzUuMDcyIi8+PFNlZ21lbnRVUkwgbWVkaWE9InNxLzIzL2R1ci81LjA3MiIvPjxTZWdtZW50VVJMIG1lZGlhPSJzcS8yNC9kdXIvNS4wNzIiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvMjUvZHVyLzUuMDcxIi8+PFNlZ21lbnRVUkwgbWVkaWE9InNxLzI2L2R1ci81LjA3MiIvPjxTZWdtZW50VVJMIG1lZGlhPSJzcS8yNy9kdXIvNS4wNzIiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvMjgvZHVyLzUuMDcyIi8+PFNlZ21lbnRVUkwgbWVkaWE9InNxLzI5L2R1ci81LjA3MSIvPjxTZWdtZW50VVJMIG1lZGlhPSJzcS8zMC9kdXIvNS4wNzIiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvMzEvZHVyLzUuMDcyIi8+PFNlZ21lbnRVUkwgbWVkaWE9InNxLzMyL2R1ci81LjA3MSIvPjxTZWdtZW50VVJMIG1lZGlhPSJzcS8zMy9kdXIvNS4wNzIiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvMzQvZHVyLzUuMDcyIi8+PFNlZ21lbnRVUkwgbWVkaWE9InNxLzM1L2R1ci81LjA3MiIvPjxTZWdtZW50VVJMIG1lZGlhPSJzcS8zNi9kdXIvNS4wNzEiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvMzcvZHVyLzUuMDcyIi8+PFNlZ21lbnRVUkwgbWVkaWE9InNxLzM4L2R1ci81LjA3MiIvPjxTZWdtZW50VVJMIG1lZGlhPSJzcS8zOS9kdXIvNS4wNzIiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvNDAvZHVyLzUuMDcxIi8+PFNlZ21lbnRVUkwgbWVkaWE9InNxLzQxL2R1ci81LjA3MiIvPjxTZWdtZW50VVJMIG1lZGlhPSJzcS80Mi9kdXIvNS4wNzIiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvNDMvZHVyLzUuMDcyIi8+PFNlZ21lbnRVUkwgbWVkaWE9InNxLzQ0L2R1ci81LjA3MSIvPjxTZWdtZW50VVJMIG1lZGlhPSJzcS80NS9kdXIvNS4wNzIiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvNDYvZHVyLzUuMDcyIi8+PFNlZ21lbnRVUkwgbWVkaWE9InNxLzQ3L2R1ci81LjA3MSIvPjxTZWdtZW50VVJMIG1lZGlhPSJzcS80OC9kdXIvNS4wNzIiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvNDkvZHVyLzUuMDcyIi8+PFNlZ21lbnRVUkwgbWVkaWE9InNxLzUwL2R1ci81LjA3MiIvPjxTZWdtZW50VVJMIG1lZGlhPSJzcS81MS9kdXIvNS4wNzEiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvNTIvZHVyLzUuMDcyIi8+PFNlZ21lbnRVUkwgbWVkaWE9InNxLzUzL2R1ci81LjA3MiIvPjxTZWdtZW50VVJMIG1lZGlhPSJzcS81NC9kdXIvNS4wNzIiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvNTUvZHVyLzUuMDcxIi8+PFNlZ21lbnRVUkwgbWVkaWE9InNxLzU2L2R1ci81LjA3MiIvPjxTZWdtZW50VVJMIG1lZGlhPSJzcS81Ny9kdXIvNS4wNzIiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvNTgvZHVyLzUuMDcyIi8+PFNlZ21lbnRVUkwgbWVkaWE9InNxLzU5L2R1ci81LjA3MSIvPjxTZWdtZW50VVJMIG1lZGlhPSJzcS82MC9kdXIvNS4wNzIiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvNjEvZHVyLzUuMjcyIi8+PC9TZWdtZW50TGlzdD48L1JlcHJlc2VudGF0aW9uPjxSZXByZXNlbnRhdGlvbiBpZD0iMTM0IiBjb2RlY3M9ImF2YzEuNGQ0MDFlIiB3aWR0aD0iNjQwIiBoZWlnaHQ9IjM2MCIgc3RhcnRXaXRoU0FQPSIxIiBtYXhQbGF5b3V0UmF0ZT0iMSIgYmFuZHdpZHRoPSI3MTgyNTciIGZyYW1lUmF0ZT0iMzAiPjxCYXNlVVJMPmh0dHBzOi8vcjItLS1zbi00YXZmLWNicGUuZ29vZ2xldmlkZW8uY29tL3ZpZGVvcGxheWJhY2svaWQvNjBiODNlMmMyOTE4NWRiMi9pdGFnLzEzNC9zb3VyY2UveW91dHViZS9yZXF1aXJlc3NsL3llcy9wbC8yNC9tdi9tL21zL2F1L2VpL2hqVHdXZGpTRmNPYy13WFV0NWVvREEvbW0vMzEvbW4vc24tNGF2Zi1jYnBlL2luaXRjd25kYnBzLzI0MTI1MC9yYXRlYnlwYXNzL3llcy9taW1lL3ZpZGVvJTJGbXA0L290ZnAvMS9naXIveWVzL2NsZW4vMTgzMjI4NDQvbG10LzE1MDU0MjM2MDc2NDM1NjAvZHVyLzMwOS41NzUvbXQvMTUwODkxNDEyOS9iZWlkcy8lNUI5NDY2NTk0JTVEL3NpZ25hdHVyZS80MjlGOENGOUU3MjU2QTE0OEZDQTVDOUFFODhBRkEwQ0Y0RTkwNEEyLjg0QzAyMjlFQjUzRDQ2QzU1RkE1OUM4RkJEN0M2RUY5NDdEMjM2RkYva2V5L2RnX3l0MC9pcC8yMDkuNTkuOTAuMTk3L2lwYml0cy8wL2V4cGlyZS8xNTA4OTM1OTEwL3NwYXJhbXMvaXAsaXBiaXRzLGV4cGlyZSxpZCxpdGFnLHNvdXJjZSxyZXF1aXJlc3NsLHBsLG12LG1zLGVpLG1tLG1uLGluaXRjd25kYnBzLHJhdGVieXBhc3MsbWltZSxvdGZwLGdpcixjbGVuLGxtdCxkdXIvPC9CYXNlVVJMPjxTZWdtZW50TGlzdD48SW5pdGlhbGl6YXRpb24gc291cmNlVVJMPSJyYW5nZS8wLTcxMyIvPjxTZWdtZW50VVJMIG1lZGlhPSJyYW5nZS8xNDc4LTQwNTczNSIvPjxTZWdtZW50VVJMIG1lZGlhPSJyYW5nZS80MDU3MzYtNjgzODE1Ii8+PFNlZ21lbnRVUkwgbWVkaWE9InJhbmdlLzY4MzgxNi05NTIwMDIiLz48U2VnbWVudFVSTCBtZWRpYT0icmFuZ2UvOTUyMDAzLTEzNTQyMTgiLz48U2VnbWVudFVSTCBtZWRpYT0icmFuZ2UvMTM1NDIxOS0xNTcyMzIyIi8+PFNlZ21lbnRVUkwgbWVkaWE9InJhbmdlLzE1NzIzMjMtMTc4MzU4MSIvPjxTZWdtZW50VVJMIG1lZGlhPSJyYW5nZS8xNzgzNTgyLTIwMDIzOTEiLz48U2VnbWVudFVSTCBtZWRpYT0icmFuZ2UvMjAwMjM5Mi0yMTgxMzc2Ii8+PFNlZ21lbnRVUkwgbWVkaWE9InJhbmdlLzIxODEzNzctMjM1MjUyMSIvPjxTZWdtZW50VVJMIG1lZGlhPSJyYW5nZS8yMzUyNTIyLTI1NDgyMDYiLz48U2VnbWVudFVSTCBtZWRpYT0icmFuZ2UvMjU0ODIwNy0yNzQwNDYzIi8+PFNlZ21lbnRVUkwgbWVkaWE9InJhbmdlLzI3NDA0NjQtMjkyNjIyMyIvPjxTZWdtZW50VVJMIG1lZGlhPSJyYW5nZS8yOTI2MjI0LTMxMDgyNjciLz48U2VnbWVudFVSTCBtZWRpYT0icmFuZ2UvMzEwODI2OC0zMjg1MDc1Ii8+PFNlZ21lbnRVUkwgbWVkaWE9InJhbmdlLzMyODUwNzYtMzQ2MDM2NyIvPjxTZWdtZW50VVJMIG1lZGlhPSJyYW5nZS8zNDYwMzY4LTM2MjY0NjgiLz48U2VnbWVudFVSTCBtZWRpYT0icmFuZ2UvMzYyNjQ2OS0zODAwNTY0Ii8+PFNlZ21lbnRVUkwgbWVkaWE9InJhbmdlLzM4MDA1NjUtMzk3NDAyOCIvPjxTZWdtZW50VVJMIG1lZGlhPSJyYW5nZS8zOTc0MDI5LTQxNDYzNDkiLz48U2VnbWVudFVSTCBtZWRpYT0icmFuZ2UvNDE0NjM1MC00MzMxMzc5Ii8+PFNlZ21lbnRVUkwgbWVkaWE9InJhbmdlLzQzMzEzODAtNDY2NjM5MiIvPjxTZWdtZW50VVJMIG1lZGlhPSJyYW5nZS80NjY2MzkzLTUwNjg4NTMiLz48U2VnbWVudFVSTCBtZWRpYT0icmFuZ2UvNTA2ODg1NC01NDcxNjA5Ii8+PFNlZ21lbnRVUkwgbWVkaWE9InJhbmdlLzU0NzE2MTAtNTg3NDE1MSIvPjxTZWdtZW50VVJMIG1lZGlhPSJyYW5nZS81ODc0MTUyLTYyNzUzNjkiLz48U2VnbWVudFVSTCBtZWRpYT0icmFuZ2UvNjI3NTM3MC02Njc3NDg0Ii8+PFNlZ21lbnRVUkwgbWVkaWE9InJhbmdlLzY2Nzc0ODUtNzAxMzM5NCIvPjxTZWdtZW50VVJMIG1lZGlhPSJyYW5nZS83MDEzMzk1LTczNzQzNzIiLz48U2VnbWVudFVSTCBtZWRpYT0icmFuZ2UvNzM3NDM3My03NzI5NTcyIi8+PFNlZ21lbnRVUkwgbWVkaWE9InJhbmdlLzc3Mjk1NzMtODA3NDg2MiIvPjxTZWdtZW50VVJMIG1lZGlhPSJyYW5nZS84MDc0ODYzLTgzNzI2NjkiLz48U2VnbWVudFVSTCBtZWRpYT0icmFuZ2UvODM3MjY3MC04Njc1MDE3Ii8+PFNlZ21lbnRVUkwgbWVkaWE9InJhbmdlLzg2NzUwMTgtODkxNjY0NiIvPjxTZWdtZW50VVJMIG1lZGlhPSJyYW5nZS84OTE2NjQ3LTkxODEwOTQiLz48U2VnbWVudFVSTCBtZWRpYT0icmFuZ2UvOTE4MTA5NS05NDM3Nzg4Ii8+PFNlZ21lbnRVUkwgbWVkaWE9InJhbmdlLzk0Mzc3ODktOTczMjI0NSIvPjxTZWdtZW50VVJMIG1lZGlhPSJyYW5nZS85NzMyMjQ2LTEwMDQ5MzIyIi8+PFNlZ21lbnRVUkwgbWVkaWE9InJhbmdlLzEwMDQ5MzIzLTEwNDI3OTAzIi8+PFNlZ21lbnRVUkwgbWVkaWE9InJhbmdlLzEwNDI3OTA0LTEwODI4OTU2Ii8+PFNlZ21lbnRVUkwgbWVkaWE9InJhbmdlLzEwODI4OTU3LTExMjI5NjY0Ii8+PFNlZ21lbnRVUkwgbWVkaWE9InJhbmdlLzExMjI5NjY1LTExNjMzMzc2Ii8+PFNlZ21lbnRVUkwgbWVkaWE9InJhbmdlLzExNjMzMzc3LTExOTU5OTMyIi8+PFNlZ21lbnRVUkwgbWVkaWE9InJhbmdlLzExOTU5OTMzLTEyMzIxNjUyIi8+PFNlZ21lbnRVUkwgbWVkaWE9InJhbmdlLzEyMzIxNjUzLTEyNzA0NTAxIi8+PFNlZ21lbnRVUkwgbWVkaWE9InJhbmdlLzEyNzA0NTAyLTEzMTA1ODUzIi8+PFNlZ21lbnRVUkwgbWVkaWE9InJhbmdlLzEzMTA1ODU0LTEzNTE0NTkzIi8+PFNlZ21lbnRVUkwgbWVkaWE9InJhbmdlLzEzNTE0NTk0LTEzOTE0ODgzIi8+PFNlZ21lbnRVUkwgbWVkaWE9InJhbmdlLzEzOTE0ODg0LTE0MzcwMjU4Ii8+PFNlZ21lbnRVUkwgbWVkaWE9InJhbmdlLzE0MzcwMjU5LTE0NzcwNzk3Ii8+PFNlZ21lbnRVUkwgbWVkaWE9InJhbmdlLzE0NzcwNzk4LTE1MDkzNzQ1Ii8+PFNlZ21lbnRVUkwgbWVkaWE9InJhbmdlLzE1MDkzNzQ2LTE1NDEwMDk4Ii8+PFNlZ21lbnRVUkwgbWVkaWE9InJhbmdlLzE1NDEwMDk5LTE1ODExMTg3Ii8+PFNlZ21lbnRVUkwgbWVkaWE9InJhbmdlLzE1ODExMTg4LTE2MjI5OTI4Ii8+PFNlZ21lbnRVUkwgbWVkaWE9InJhbmdlLzE2MjI5OTI5LTE2NTQxMjM1Ii8+PFNlZ21lbnRVUkwgbWVkaWE9InJhbmdlLzE2NTQxMjM2LTE2ODE2NDkzIi8+PFNlZ21lbnRVUkwgbWVkaWE9InJhbmdlLzE2ODE2NDk0LTE3MTAyNzk5Ii8+PFNlZ21lbnRVUkwgbWVkaWE9InJhbmdlLzE3MTAyODAwLTE3MzQ3NzY5Ii8+PFNlZ21lbnRVUkwgbWVkaWE9InJhbmdlLzE3MzQ3NzcwLTE3NTg3MjQxIi8+PFNlZ21lbnRVUkwgbWVkaWE9InJhbmdlLzE3NTg3MjQyLTE3ODI3NzQyIi8+PFNlZ21lbnRVUkwgbWVkaWE9InJhbmdlLzE3ODI3NzQzLTE4MDcyMTc0Ii8+PFNlZ21lbnRVUkwgbWVkaWE9InJhbmdlLzE4MDcyMTc1LTE4MzIyODQzIi8+PC9TZWdtZW50TGlzdD48L1JlcHJlc2VudGF0aW9uPjxSZXByZXNlbnRhdGlvbiBpZD0iMTM1IiBjb2RlY3M9ImF2YzEuNGQ0MDE0IiB3aWR0aD0iODU0IiBoZWlnaHQ9IjQ4MCIgc3RhcnRXaXRoU0FQPSIxIiBtYXhQbGF5b3V0UmF0ZT0iMSIgYmFuZHdpZHRoPSIxMTU1MDAwIiBmcmFtZVJhdGU9IjMwIj48QmFzZVVSTD5odHRwczovL3IyLS0tc24tNGF2Zi1jYnBlLmdvb2dsZXZpZGVvLmNvbS92aWRlb3BsYXliYWNrL2lkLzYwYjgzZTJjMjkxODVkYjIvaXRhZy8xMzUvc291cmNlL3l0X290Zi9yZXF1aXJlc3NsL3llcy9wbC8yNC9tdi9tL21zL2F1L2VpL2hqVHdXZGpTRmNPYy13WFV0NWVvREEvbW0vMzEvbW4vc24tNGF2Zi1jYnBlL2luaXRjd25kYnBzLzI0MTI1MC9yYXRlYnlwYXNzL3llcy9taW1lL3ZpZGVvJTJGbXA0L290ZnAvMS9vdGYvMS9sbXQvMTUwNTQyMzYwNzg0NzY4OC9tdC8xNTA4OTE0MTI5L2JlaWRzLyU1Qjk0NjY1OTQlNUQvc2lnbmF0dXJlLzIyMTYyNDJDRDYzRjc2QUMyOTNBNzlBQzQxMDU0NUJCMTc3QkQyRTcuOEFDNkUwREIxMDMxNDAwNDQ3RkJCQzA1OUQzMTdDMEQ1MDZCQTIxRS9rZXkvZGdfeXQwL2lwLzIwOS41OS45MC4xOTcvaXBiaXRzLzAvZXhwaXJlLzE1MDg5MzU5MTAvc3BhcmFtcy9pcCxpcGJpdHMsZXhwaXJlLGlkLGl0YWcsc291cmNlLHJlcXVpcmVzc2wscGwsbXYsbXMsZWksbW0sbW4saW5pdGN3bmRicHMscmF0ZWJ5cGFzcyxtaW1lLG90ZnAsb3RmLGxtdC88L0Jhc2VVUkw+PFNlZ21lbnRMaXN0PjxJbml0aWFsaXphdGlvbiBzb3VyY2VVUkw9InNxLzAiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvMS9kdXIvNS4wNzIiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvMi9kdXIvNS4wNzEiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvMy9kdXIvNS4wNzIiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvNC9kdXIvNS4wNzIiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvNS9kdXIvNS4wNzIiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvNi9kdXIvNS4wNzEiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvNy9kdXIvNS4wNzIiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvOC9kdXIvNS4wNzIiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvOS9kdXIvNS4wNzIiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvMTAvZHVyLzUuMDcxIi8+PFNlZ21lbnRVUkwgbWVkaWE9InNxLzExL2R1ci81LjA3MiIvPjxTZWdtZW50VVJMIG1lZGlhPSJzcS8xMi9kdXIvNS4wNzIiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvMTMvZHVyLzUuMDcyIi8+PFNlZ21lbnRVUkwgbWVkaWE9InNxLzE0L2R1ci81LjA3MSIvPjxTZWdtZW50VVJMIG1lZGlhPSJzcS8xNS9kdXIvNS4wNzIiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvMTYvZHVyLzUuMDcyIi8+PFNlZ21lbnRVUkwgbWVkaWE9InNxLzE3L2R1ci81LjA3MSIvPjxTZWdtZW50VVJMIG1lZGlhPSJzcS8xOC9kdXIvNS4wNzIiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvMTkvZHVyLzUuMDcyIi8+PFNlZ21lbnRVUkwgbWVkaWE9InNxLzIwL2R1ci81LjA3MiIvPjxTZWdtZW50VVJMIG1lZGlhPSJzcS8yMS9kdXIvNS4wNzEiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvMjIvZHVyLzUuMDcyIi8+PFNlZ21lbnRVUkwgbWVkaWE9InNxLzIzL2R1ci81LjA3MiIvPjxTZWdtZW50VVJMIG1lZGlhPSJzcS8yNC9kdXIvNS4wNzIiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvMjUvZHVyLzUuMDcxIi8+PFNlZ21lbnRVUkwgbWVkaWE9InNxLzI2L2R1ci81LjA3MiIvPjxTZWdtZW50VVJMIG1lZGlhPSJzcS8yNy9kdXIvNS4wNzIiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvMjgvZHVyLzUuMDcyIi8+PFNlZ21lbnRVUkwgbWVkaWE9InNxLzI5L2R1ci81LjA3MSIvPjxTZWdtZW50VVJMIG1lZGlhPSJzcS8zMC9kdXIvNS4wNzIiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvMzEvZHVyLzUuMDcyIi8+PFNlZ21lbnRVUkwgbWVkaWE9InNxLzMyL2R1ci81LjA3MSIvPjxTZWdtZW50VVJMIG1lZGlhPSJzcS8zMy9kdXIvNS4wNzIiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvMzQvZHVyLzUuMDcyIi8+PFNlZ21lbnRVUkwgbWVkaWE9InNxLzM1L2R1ci81LjA3MiIvPjxTZWdtZW50VVJMIG1lZGlhPSJzcS8zNi9kdXIvNS4wNzEiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvMzcvZHVyLzUuMDcyIi8+PFNlZ21lbnRVUkwgbWVkaWE9InNxLzM4L2R1ci81LjA3MiIvPjxTZWdtZW50VVJMIG1lZGlhPSJzcS8zOS9kdXIvNS4wNzIiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvNDAvZHVyLzUuMDcxIi8+PFNlZ21lbnRVUkwgbWVkaWE9InNxLzQxL2R1ci81LjA3MiIvPjxTZWdtZW50VVJMIG1lZGlhPSJzcS80Mi9kdXIvNS4wNzIiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvNDMvZHVyLzUuMDcyIi8+PFNlZ21lbnRVUkwgbWVkaWE9InNxLzQ0L2R1ci81LjA3MSIvPjxTZWdtZW50VVJMIG1lZGlhPSJzcS80NS9kdXIvNS4wNzIiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvNDYvZHVyLzUuMDcyIi8+PFNlZ21lbnRVUkwgbWVkaWE9InNxLzQ3L2R1ci81LjA3MSIvPjxTZWdtZW50VVJMIG1lZGlhPSJzcS80OC9kdXIvNS4wNzIiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvNDkvZHVyLzUuMDcyIi8+PFNlZ21lbnRVUkwgbWVkaWE9InNxLzUwL2R1ci81LjA3MiIvPjxTZWdtZW50VVJMIG1lZGlhPSJzcS81MS9kdXIvNS4wNzEiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvNTIvZHVyLzUuMDcyIi8+PFNlZ21lbnRVUkwgbWVkaWE9InNxLzUzL2R1ci81LjA3MiIvPjxTZWdtZW50VVJMIG1lZGlhPSJzcS81NC9kdXIvNS4wNzIiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvNTUvZHVyLzUuMDcxIi8+PFNlZ21lbnRVUkwgbWVkaWE9InNxLzU2L2R1ci81LjA3MiIvPjxTZWdtZW50VVJMIG1lZGlhPSJzcS81Ny9kdXIvNS4wNzIiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvNTgvZHVyLzUuMDcyIi8+PFNlZ21lbnRVUkwgbWVkaWE9InNxLzU5L2R1ci81LjA3MSIvPjxTZWdtZW50VVJMIG1lZGlhPSJzcS82MC9kdXIvNS4wNzIiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvNjEvZHVyLzUuMjcyIi8+PC9TZWdtZW50TGlzdD48L1JlcHJlc2VudGF0aW9uPjxSZXByZXNlbnRhdGlvbiBpZD0iMTYwIiBjb2RlY3M9ImF2YzEuNGQ0MDBiIiB3aWR0aD0iMjU2IiBoZWlnaHQ9IjE0NCIgc3RhcnRXaXRoU0FQPSIxIiBtYXhQbGF5b3V0UmF0ZT0iMSIgYmFuZHdpZHRoPSIxMDgwMDAiIGZyYW1lUmF0ZT0iMzAiPjxCYXNlVVJMPmh0dHBzOi8vcjItLS1zbi00YXZmLWNicGUuZ29vZ2xldmlkZW8uY29tL3ZpZGVvcGxheWJhY2svaWQvNjBiODNlMmMyOTE4NWRiMi9pdGFnLzE2MC9zb3VyY2UveXRfb3RmL3JlcXVpcmVzc2wveWVzL3BsLzI0L212L20vbXMvYXUvZWkvaGpUd1dkalNGY09jLXdYVXQ1ZW9EQS9tbS8zMS9tbi9zbi00YXZmLWNicGUvaW5pdGN3bmRicHMvMjQxMjUwL3JhdGVieXBhc3MveWVzL21pbWUvdmlkZW8lMkZtcDQvb3RmcC8xL290Zi8xL2xtdC8xNTA1NDIzNjA3ODQ3Njg4L210LzE1MDg5MTQxMjkvYmVpZHMvJTVCOTQ2NjU5NCU1RC9zaWduYXR1cmUvNjE2RjFGNTQ2RDVBN0E1NDIzNUIwQkM5RjYyOTNCN0JFNkFBMzgzMC43REY3NDJBNzIxRTkxREFEQjI0RjQ5OTgyNzUyREQ4MUI4QzBCMzMzL2tleS9kZ195dDAvaXAvMjA5LjU5LjkwLjE5Ny9pcGJpdHMvMC9leHBpcmUvMTUwODkzNTkxMC9zcGFyYW1zL2lwLGlwYml0cyxleHBpcmUsaWQsaXRhZyxzb3VyY2UscmVxdWlyZXNzbCxwbCxtdixtcyxlaSxtbSxtbixpbml0Y3duZGJwcyxyYXRlYnlwYXNzLG1pbWUsb3RmcCxvdGYsbG10LzwvQmFzZVVSTD48U2VnbWVudExpc3Q+PEluaXRpYWxpemF0aW9uIHNvdXJjZVVSTD0ic3EvMCIvPjxTZWdtZW50VVJMIG1lZGlhPSJzcS8xL2R1ci81LjA3MiIvPjxTZWdtZW50VVJMIG1lZGlhPSJzcS8yL2R1ci81LjA3MSIvPjxTZWdtZW50VVJMIG1lZGlhPSJzcS8zL2R1ci81LjA3MiIvPjxTZWdtZW50VVJMIG1lZGlhPSJzcS80L2R1ci81LjA3MiIvPjxTZWdtZW50VVJMIG1lZGlhPSJzcS81L2R1ci81LjA3MiIvPjxTZWdtZW50VVJMIG1lZGlhPSJzcS82L2R1ci81LjA3MSIvPjxTZWdtZW50VVJMIG1lZGlhPSJzcS83L2R1ci81LjA3MiIvPjxTZWdtZW50VVJMIG1lZGlhPSJzcS84L2R1ci81LjA3MiIvPjxTZWdtZW50VVJMIG1lZGlhPSJzcS85L2R1ci81LjA3MiIvPjxTZWdtZW50VVJMIG1lZGlhPSJzcS8xMC9kdXIvNS4wNzEiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvMTEvZHVyLzUuMDcyIi8+PFNlZ21lbnRVUkwgbWVkaWE9InNxLzEyL2R1ci81LjA3MiIvPjxTZWdtZW50VVJMIG1lZGlhPSJzcS8xMy9kdXIvNS4wNzIiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvMTQvZHVyLzUuMDcxIi8+PFNlZ21lbnRVUkwgbWVkaWE9InNxLzE1L2R1ci81LjA3MiIvPjxTZWdtZW50VVJMIG1lZGlhPSJzcS8xNi9kdXIvNS4wNzIiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvMTcvZHVyLzUuMDcxIi8+PFNlZ21lbnRVUkwgbWVkaWE9InNxLzE4L2R1ci81LjA3MiIvPjxTZWdtZW50VVJMIG1lZGlhPSJzcS8xOS9kdXIvNS4wNzIiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvMjAvZHVyLzUuMDcyIi8+PFNlZ21lbnRVUkwgbWVkaWE9InNxLzIxL2R1ci81LjA3MSIvPjxTZWdtZW50VVJMIG1lZGlhPSJzcS8yMi9kdXIvNS4wNzIiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvMjMvZHVyLzUuMDcyIi8+PFNlZ21lbnRVUkwgbWVkaWE9InNxLzI0L2R1ci81LjA3MiIvPjxTZWdtZW50VVJMIG1lZGlhPSJzcS8yNS9kdXIvNS4wNzEiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvMjYvZHVyLzUuMDcyIi8+PFNlZ21lbnRVUkwgbWVkaWE9InNxLzI3L2R1ci81LjA3MiIvPjxTZWdtZW50VVJMIG1lZGlhPSJzcS8yOC9kdXIvNS4wNzIiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvMjkvZHVyLzUuMDcxIi8+PFNlZ21lbnRVUkwgbWVkaWE9InNxLzMwL2R1ci81LjA3MiIvPjxTZWdtZW50VVJMIG1lZGlhPSJzcS8zMS9kdXIvNS4wNzIiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvMzIvZHVyLzUuMDcxIi8+PFNlZ21lbnRVUkwgbWVkaWE9InNxLzMzL2R1ci81LjA3MiIvPjxTZWdtZW50VVJMIG1lZGlhPSJzcS8zNC9kdXIvNS4wNzIiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvMzUvZHVyLzUuMDcyIi8+PFNlZ21lbnRVUkwgbWVkaWE9InNxLzM2L2R1ci81LjA3MSIvPjxTZWdtZW50VVJMIG1lZGlhPSJzcS8zNy9kdXIvNS4wNzIiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvMzgvZHVyLzUuMDcyIi8+PFNlZ21lbnRVUkwgbWVkaWE9InNxLzM5L2R1ci81LjA3MiIvPjxTZWdtZW50VVJMIG1lZGlhPSJzcS80MC9kdXIvNS4wNzEiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvNDEvZHVyLzUuMDcyIi8+PFNlZ21lbnRVUkwgbWVkaWE9InNxLzQyL2R1ci81LjA3MiIvPjxTZWdtZW50VVJMIG1lZGlhPSJzcS80My9kdXIvNS4wNzIiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvNDQvZHVyLzUuMDcxIi8+PFNlZ21lbnRVUkwgbWVkaWE9InNxLzQ1L2R1ci81LjA3MiIvPjxTZWdtZW50VVJMIG1lZGlhPSJzcS80Ni9kdXIvNS4wNzIiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvNDcvZHVyLzUuMDcxIi8+PFNlZ21lbnRVUkwgbWVkaWE9InNxLzQ4L2R1ci81LjA3MiIvPjxTZWdtZW50VVJMIG1lZGlhPSJzcS80OS9kdXIvNS4wNzIiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvNTAvZHVyLzUuMDcyIi8+PFNlZ21lbnRVUkwgbWVkaWE9InNxLzUxL2R1ci81LjA3MSIvPjxTZWdtZW50VVJMIG1lZGlhPSJzcS81Mi9kdXIvNS4wNzIiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvNTMvZHVyLzUuMDcyIi8+PFNlZ21lbnRVUkwgbWVkaWE9InNxLzU0L2R1ci81LjA3MiIvPjxTZWdtZW50VVJMIG1lZGlhPSJzcS81NS9kdXIvNS4wNzEiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvNTYvZHVyLzUuMDcyIi8+PFNlZ21lbnRVUkwgbWVkaWE9InNxLzU3L2R1ci81LjA3MiIvPjxTZWdtZW50VVJMIG1lZGlhPSJzcS81OC9kdXIvNS4wNzIiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvNTkvZHVyLzUuMDcxIi8+PFNlZ21lbnRVUkwgbWVkaWE9InNxLzYwL2R1ci81LjA3MiIvPjxTZWdtZW50VVJMIG1lZGlhPSJzcS82MS9kdXIvNS4yNzIiLz48L1NlZ21lbnRMaXN0PjwvUmVwcmVzZW50YXRpb24+PFJlcHJlc2VudGF0aW9uIGlkPSIxMzYiIGNvZGVjcz0iYXZjMS40ZDQwMTYiIHdpZHRoPSIxMjgwIiBoZWlnaHQ9IjcyMCIgc3RhcnRXaXRoU0FQPSIxIiBtYXhQbGF5b3V0UmF0ZT0iMSIgYmFuZHdpZHRoPSIyMzEwMDAwIiBmcmFtZVJhdGU9IjMwIj48QmFzZVVSTD5odHRwczovL3IyLS0tc24tNGF2Zi1jYnBlLmdvb2dsZXZpZGVvLmNvbS92aWRlb3BsYXliYWNrL2lkLzYwYjgzZTJjMjkxODVkYjIvaXRhZy8xMzYvc291cmNlL3l0X290Zi9yZXF1aXJlc3NsL3llcy9wbC8yNC9tdi9tL21zL2F1L2VpL2hqVHdXZGpTRmNPYy13WFV0NWVvREEvbW0vMzEvbW4vc24tNGF2Zi1jYnBlL2luaXRjd25kYnBzLzI0MTI1MC9yYXRlYnlwYXNzL3llcy9taW1lL3ZpZGVvJTJGbXA0L290ZnAvMS9vdGYvMS9sbXQvMTUwNTQyMzYwNzg0NzY4OC9tdC8xNTA4OTE0MTI5L2JlaWRzLyU1Qjk0NjY1OTQlNUQvc2lnbmF0dXJlLzFFMzlBMDcyQjFFN0MzNkQ5MUNEOTBDMEFEMUJCNzg3M0YwNjM3RkYuN0VBQjNBRDNCRDMxNzQ4OTdBNThBQTcwOTdGOEM4NzY2RkE2NDYxOC9rZXkvZGdfeXQwL2lwLzIwOS41OS45MC4xOTcvaXBiaXRzLzAvZXhwaXJlLzE1MDg5MzU5MTAvc3BhcmFtcy9pcCxpcGJpdHMsZXhwaXJlLGlkLGl0YWcsc291cmNlLHJlcXVpcmVzc2wscGwsbXYsbXMsZWksbW0sbW4saW5pdGN3bmRicHMscmF0ZWJ5cGFzcyxtaW1lLG90ZnAsb3RmLGxtdC88L0Jhc2VVUkw+PFNlZ21lbnRMaXN0PjxJbml0aWFsaXphdGlvbiBzb3VyY2VVUkw9InNxLzAiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvMS9kdXIvNS4wNzIiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvMi9kdXIvNS4wNzEiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvMy9kdXIvNS4wNzIiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvNC9kdXIvNS4wNzIiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvNS9kdXIvNS4wNzIiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvNi9kdXIvNS4wNzEiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvNy9kdXIvNS4wNzIiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvOC9kdXIvNS4wNzIiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvOS9kdXIvNS4wNzIiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvMTAvZHVyLzUuMDcxIi8+PFNlZ21lbnRVUkwgbWVkaWE9InNxLzExL2R1ci81LjA3MiIvPjxTZWdtZW50VVJMIG1lZGlhPSJzcS8xMi9kdXIvNS4wNzIiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvMTMvZHVyLzUuMDcyIi8+PFNlZ21lbnRVUkwgbWVkaWE9InNxLzE0L2R1ci81LjA3MSIvPjxTZWdtZW50VVJMIG1lZGlhPSJzcS8xNS9kdXIvNS4wNzIiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvMTYvZHVyLzUuMDcyIi8+PFNlZ21lbnRVUkwgbWVkaWE9InNxLzE3L2R1ci81LjA3MSIvPjxTZWdtZW50VVJMIG1lZGlhPSJzcS8xOC9kdXIvNS4wNzIiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvMTkvZHVyLzUuMDcyIi8+PFNlZ21lbnRVUkwgbWVkaWE9InNxLzIwL2R1ci81LjA3MiIvPjxTZWdtZW50VVJMIG1lZGlhPSJzcS8yMS9kdXIvNS4wNzEiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvMjIvZHVyLzUuMDcyIi8+PFNlZ21lbnRVUkwgbWVkaWE9InNxLzIzL2R1ci81LjA3MiIvPjxTZWdtZW50VVJMIG1lZGlhPSJzcS8yNC9kdXIvNS4wNzIiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvMjUvZHVyLzUuMDcxIi8+PFNlZ21lbnRVUkwgbWVkaWE9InNxLzI2L2R1ci81LjA3MiIvPjxTZWdtZW50VVJMIG1lZGlhPSJzcS8yNy9kdXIvNS4wNzIiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvMjgvZHVyLzUuMDcyIi8+PFNlZ21lbnRVUkwgbWVkaWE9InNxLzI5L2R1ci81LjA3MSIvPjxTZWdtZW50VVJMIG1lZGlhPSJzcS8zMC9kdXIvNS4wNzIiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvMzEvZHVyLzUuMDcyIi8+PFNlZ21lbnRVUkwgbWVkaWE9InNxLzMyL2R1ci81LjA3MSIvPjxTZWdtZW50VVJMIG1lZGlhPSJzcS8zMy9kdXIvNS4wNzIiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvMzQvZHVyLzUuMDcyIi8+PFNlZ21lbnRVUkwgbWVkaWE9InNxLzM1L2R1ci81LjA3MiIvPjxTZWdtZW50VVJMIG1lZGlhPSJzcS8zNi9kdXIvNS4wNzEiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvMzcvZHVyLzUuMDcyIi8+PFNlZ21lbnRVUkwgbWVkaWE9InNxLzM4L2R1ci81LjA3MiIvPjxTZWdtZW50VVJMIG1lZGlhPSJzcS8zOS9kdXIvNS4wNzIiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvNDAvZHVyLzUuMDcxIi8+PFNlZ21lbnRVUkwgbWVkaWE9InNxLzQxL2R1ci81LjA3MiIvPjxTZWdtZW50VVJMIG1lZGlhPSJzcS80Mi9kdXIvNS4wNzIiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvNDMvZHVyLzUuMDcyIi8+PFNlZ21lbnRVUkwgbWVkaWE9InNxLzQ0L2R1ci81LjA3MSIvPjxTZWdtZW50VVJMIG1lZGlhPSJzcS80NS9kdXIvNS4wNzIiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvNDYvZHVyLzUuMDcyIi8+PFNlZ21lbnRVUkwgbWVkaWE9InNxLzQ3L2R1ci81LjA3MSIvPjxTZWdtZW50VVJMIG1lZGlhPSJzcS80OC9kdXIvNS4wNzIiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvNDkvZHVyLzUuMDcyIi8+PFNlZ21lbnRVUkwgbWVkaWE9InNxLzUwL2R1ci81LjA3MiIvPjxTZWdtZW50VVJMIG1lZGlhPSJzcS81MS9kdXIvNS4wNzEiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvNTIvZHVyLzUuMDcyIi8+PFNlZ21lbnRVUkwgbWVkaWE9InNxLzUzL2R1ci81LjA3MiIvPjxTZWdtZW50VVJMIG1lZGlhPSJzcS81NC9kdXIvNS4wNzIiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvNTUvZHVyLzUuMDcxIi8+PFNlZ21lbnRVUkwgbWVkaWE9InNxLzU2L2R1ci81LjA3MiIvPjxTZWdtZW50VVJMIG1lZGlhPSJzcS81Ny9kdXIvNS4wNzIiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvNTgvZHVyLzUuMDcyIi8+PFNlZ21lbnRVUkwgbWVkaWE9InNxLzU5L2R1ci81LjA3MSIvPjxTZWdtZW50VVJMIG1lZGlhPSJzcS82MC9kdXIvNS4wNzIiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvNjEvZHVyLzUuMjcyIi8+PC9TZWdtZW50TGlzdD48L1JlcHJlc2VudGF0aW9uPjxSZXByZXNlbnRhdGlvbiBpZD0iMTM3IiBjb2RlY3M9ImF2YzEuNjQwMDFlIiB3aWR0aD0iMTkyMCIgaGVpZ2h0PSIxMDgwIiBzdGFydFdpdGhTQVA9IjEiIG1heFBsYXlvdXRSYXRlPSIxIiBiYW5kd2lkdGg9IjQzMzEyNTAiIGZyYW1lUmF0ZT0iMzAiPjxCYXNlVVJMPmh0dHBzOi8vcjItLS1zbi00YXZmLWNicGUuZ29vZ2xldmlkZW8uY29tL3ZpZGVvcGxheWJhY2svaWQvNjBiODNlMmMyOTE4NWRiMi9pdGFnLzEzNy9zb3VyY2UveXRfb3RmL3JlcXVpcmVzc2wveWVzL3BsLzI0L212L20vbXMvYXUvZWkvaGpUd1dkalNGY09jLXdYVXQ1ZW9EQS9tbS8zMS9tbi9zbi00YXZmLWNicGUvaW5pdGN3bmRicHMvMjQxMjUwL3JhdGVieXBhc3MveWVzL21pbWUvdmlkZW8lMkZtcDQvb3RmcC8xL290Zi8xL2xtdC8xNTA1NDIzNjA3ODQ3Njg4L210LzE1MDg5MTQxMjkvYmVpZHMvJTVCOTQ2NjU5NCU1RC9zaWduYXR1cmUvNEY2NUIxQkMxN0QwQ0JBODMyNzZBMUZBQTA0NTM4NTg2MUVBREU4Qy40QkM2ODVCRTE1N0I0QjlGMTA5NDIxRUQ4NzExNTIwMzZGQzczQ0U1L2tleS9kZ195dDAvaXAvMjA5LjU5LjkwLjE5Ny9pcGJpdHMvMC9leHBpcmUvMTUwODkzNTkxMC9zcGFyYW1zL2lwLGlwYml0cyxleHBpcmUsaWQsaXRhZyxzb3VyY2UscmVxdWlyZXNzbCxwbCxtdixtcyxlaSxtbSxtbixpbml0Y3duZGJwcyxyYXRlYnlwYXNzLG1pbWUsb3RmcCxvdGYsbG10LzwvQmFzZVVSTD48U2VnbWVudExpc3Q+PEluaXRpYWxpemF0aW9uIHNvdXJjZVVSTD0ic3EvMCIvPjxTZWdtZW50VVJMIG1lZGlhPSJzcS8xL2R1ci81LjA3MiIvPjxTZWdtZW50VVJMIG1lZGlhPSJzcS8yL2R1ci81LjA3MSIvPjxTZWdtZW50VVJMIG1lZGlhPSJzcS8zL2R1ci81LjA3MiIvPjxTZWdtZW50VVJMIG1lZGlhPSJzcS80L2R1ci81LjA3MiIvPjxTZWdtZW50VVJMIG1lZGlhPSJzcS81L2R1ci81LjA3MiIvPjxTZWdtZW50VVJMIG1lZGlhPSJzcS82L2R1ci81LjA3MSIvPjxTZWdtZW50VVJMIG1lZGlhPSJzcS83L2R1ci81LjA3MiIvPjxTZWdtZW50VVJMIG1lZGlhPSJzcS84L2R1ci81LjA3MiIvPjxTZWdtZW50VVJMIG1lZGlhPSJzcS85L2R1ci81LjA3MiIvPjxTZWdtZW50VVJMIG1lZGlhPSJzcS8xMC9kdXIvNS4wNzEiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvMTEvZHVyLzUuMDcyIi8+PFNlZ21lbnRVUkwgbWVkaWE9InNxLzEyL2R1ci81LjA3MiIvPjxTZWdtZW50VVJMIG1lZGlhPSJzcS8xMy9kdXIvNS4wNzIiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvMTQvZHVyLzUuMDcxIi8+PFNlZ21lbnRVUkwgbWVkaWE9InNxLzE1L2R1ci81LjA3MiIvPjxTZWdtZW50VVJMIG1lZGlhPSJzcS8xNi9kdXIvNS4wNzIiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvMTcvZHVyLzUuMDcxIi8+PFNlZ21lbnRVUkwgbWVkaWE9InNxLzE4L2R1ci81LjA3MiIvPjxTZWdtZW50VVJMIG1lZGlhPSJzcS8xOS9kdXIvNS4wNzIiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvMjAvZHVyLzUuMDcyIi8+PFNlZ21lbnRVUkwgbWVkaWE9InNxLzIxL2R1ci81LjA3MSIvPjxTZWdtZW50VVJMIG1lZGlhPSJzcS8yMi9kdXIvNS4wNzIiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvMjMvZHVyLzUuMDcyIi8+PFNlZ21lbnRVUkwgbWVkaWE9InNxLzI0L2R1ci81LjA3MiIvPjxTZWdtZW50VVJMIG1lZGlhPSJzcS8yNS9kdXIvNS4wNzEiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvMjYvZHVyLzUuMDcyIi8+PFNlZ21lbnRVUkwgbWVkaWE9InNxLzI3L2R1ci81LjA3MiIvPjxTZWdtZW50VVJMIG1lZGlhPSJzcS8yOC9kdXIvNS4wNzIiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvMjkvZHVyLzUuMDcxIi8+PFNlZ21lbnRVUkwgbWVkaWE9InNxLzMwL2R1ci81LjA3MiIvPjxTZWdtZW50VVJMIG1lZGlhPSJzcS8zMS9kdXIvNS4wNzIiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvMzIvZHVyLzUuMDcxIi8+PFNlZ21lbnRVUkwgbWVkaWE9InNxLzMzL2R1ci81LjA3MiIvPjxTZWdtZW50VVJMIG1lZGlhPSJzcS8zNC9kdXIvNS4wNzIiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvMzUvZHVyLzUuMDcyIi8+PFNlZ21lbnRVUkwgbWVkaWE9InNxLzM2L2R1ci81LjA3MSIvPjxTZWdtZW50VVJMIG1lZGlhPSJzcS8zNy9kdXIvNS4wNzIiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvMzgvZHVyLzUuMDcyIi8+PFNlZ21lbnRVUkwgbWVkaWE9InNxLzM5L2R1ci81LjA3MiIvPjxTZWdtZW50VVJMIG1lZGlhPSJzcS80MC9kdXIvNS4wNzEiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvNDEvZHVyLzUuMDcyIi8+PFNlZ21lbnRVUkwgbWVkaWE9InNxLzQyL2R1ci81LjA3MiIvPjxTZWdtZW50VVJMIG1lZGlhPSJzcS80My9kdXIvNS4wNzIiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvNDQvZHVyLzUuMDcxIi8+PFNlZ21lbnRVUkwgbWVkaWE9InNxLzQ1L2R1ci81LjA3MiIvPjxTZWdtZW50VVJMIG1lZGlhPSJzcS80Ni9kdXIvNS4wNzIiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvNDcvZHVyLzUuMDcxIi8+PFNlZ21lbnRVUkwgbWVkaWE9InNxLzQ4L2R1ci81LjA3MiIvPjxTZWdtZW50VVJMIG1lZGlhPSJzcS80OS9kdXIvNS4wNzIiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvNTAvZHVyLzUuMDcyIi8+PFNlZ21lbnRVUkwgbWVkaWE9InNxLzUxL2R1ci81LjA3MSIvPjxTZWdtZW50VVJMIG1lZGlhPSJzcS81Mi9kdXIvNS4wNzIiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvNTMvZHVyLzUuMDcyIi8+PFNlZ21lbnRVUkwgbWVkaWE9InNxLzU0L2R1ci81LjA3MiIvPjxTZWdtZW50VVJMIG1lZGlhPSJzcS81NS9kdXIvNS4wNzEiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvNTYvZHVyLzUuMDcyIi8+PFNlZ21lbnRVUkwgbWVkaWE9InNxLzU3L2R1ci81LjA3MiIvPjxTZWdtZW50VVJMIG1lZGlhPSJzcS81OC9kdXIvNS4wNzIiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvNTkvZHVyLzUuMDcxIi8+PFNlZ21lbnRVUkwgbWVkaWE9InNxLzYwL2R1ci81LjA3MiIvPjxTZWdtZW50VVJMIG1lZGlhPSJzcS82MS9kdXIvNS4yNzIiLz48L1NlZ21lbnRMaXN0PjwvUmVwcmVzZW50YXRpb24+PFJlcHJlc2VudGF0aW9uIGlkPSIyOTgiIGNvZGVjcz0iYXZjMS40ZDQwMTYiIHdpZHRoPSIxMjgwIiBoZWlnaHQ9IjcyMCIgc3RhcnRXaXRoU0FQPSIxIiBtYXhQbGF5b3V0UmF0ZT0iMSIgYmFuZHdpZHRoPSIzNDY1MDAwIiBmcmFtZVJhdGU9IjYwIj48QmFzZVVSTD5odHRwczovL3IyLS0tc24tNGF2Zi1jYnBlLmdvb2dsZXZpZGVvLmNvbS92aWRlb3BsYXliYWNrL2lkLzYwYjgzZTJjMjkxODVkYjIvaXRhZy8yOTgvc291cmNlL3l0X290Zi9yZXF1aXJlc3NsL3llcy9wbC8yNC9tdi9tL21zL2F1L2VpL2hqVHdXZGpTRmNPYy13WFV0NWVvREEvbW0vMzEvbW4vc24tNGF2Zi1jYnBlL2luaXRjd25kYnBzLzI0MTI1MC9yYXRlYnlwYXNzL3llcy9taW1lL3ZpZGVvJTJGbXA0L290ZnAvMS9vdGYvMS9sbXQvMTUwNTQyMzYwNzg0NzY4OC9tdC8xNTA4OTE0MTI5L2JlaWRzLyU1Qjk0NjY1OTQlNUQvc2lnbmF0dXJlLzk2RTE4Q0ZDNjI2QUY2OUUxOUY3OEY1NTFBQjk3OUUxN0ExQTUwRDAuN0E3OUJGNDg4MzhENkE5MEJGMDFDOEYxMzc5NTE2NzE1RTRBMUE1NC9rZXkvZGdfeXQwL2lwLzIwOS41OS45MC4xOTcvaXBiaXRzLzAvZXhwaXJlLzE1MDg5MzU5MTAvc3BhcmFtcy9pcCxpcGJpdHMsZXhwaXJlLGlkLGl0YWcsc291cmNlLHJlcXVpcmVzc2wscGwsbXYsbXMsZWksbW0sbW4saW5pdGN3bmRicHMscmF0ZWJ5cGFzcyxtaW1lLG90ZnAsb3RmLGxtdC88L0Jhc2VVUkw+PFNlZ21lbnRMaXN0PjxJbml0aWFsaXphdGlvbiBzb3VyY2VVUkw9InNxLzAiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvMS9kdXIvNS4wNzIiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvMi9kdXIvNS4wNzEiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvMy9kdXIvNS4wNzIiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvNC9kdXIvNS4wNzIiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvNS9kdXIvNS4wNzIiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvNi9kdXIvNS4wNzEiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvNy9kdXIvNS4wNzIiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvOC9kdXIvNS4wNzIiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvOS9kdXIvNS4wNzIiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvMTAvZHVyLzUuMDcxIi8+PFNlZ21lbnRVUkwgbWVkaWE9InNxLzExL2R1ci81LjA3MiIvPjxTZWdtZW50VVJMIG1lZGlhPSJzcS8xMi9kdXIvNS4wNzIiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvMTMvZHVyLzUuMDcyIi8+PFNlZ21lbnRVUkwgbWVkaWE9InNxLzE0L2R1ci81LjA3MSIvPjxTZWdtZW50VVJMIG1lZGlhPSJzcS8xNS9kdXIvNS4wNzIiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvMTYvZHVyLzUuMDcyIi8+PFNlZ21lbnRVUkwgbWVkaWE9InNxLzE3L2R1ci81LjA3MSIvPjxTZWdtZW50VVJMIG1lZGlhPSJzcS8xOC9kdXIvNS4wNzIiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvMTkvZHVyLzUuMDcyIi8+PFNlZ21lbnRVUkwgbWVkaWE9InNxLzIwL2R1ci81LjA3MiIvPjxTZWdtZW50VVJMIG1lZGlhPSJzcS8yMS9kdXIvNS4wNzEiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvMjIvZHVyLzUuMDcyIi8+PFNlZ21lbnRVUkwgbWVkaWE9InNxLzIzL2R1ci81LjA3MiIvPjxTZWdtZW50VVJMIG1lZGlhPSJzcS8yNC9kdXIvNS4wNzIiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvMjUvZHVyLzUuMDcxIi8+PFNlZ21lbnRVUkwgbWVkaWE9InNxLzI2L2R1ci81LjA3MiIvPjxTZWdtZW50VVJMIG1lZGlhPSJzcS8yNy9kdXIvNS4wNzIiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvMjgvZHVyLzUuMDcyIi8+PFNlZ21lbnRVUkwgbWVkaWE9InNxLzI5L2R1ci81LjA3MSIvPjxTZWdtZW50VVJMIG1lZGlhPSJzcS8zMC9kdXIvNS4wNzIiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvMzEvZHVyLzUuMDcyIi8+PFNlZ21lbnRVUkwgbWVkaWE9InNxLzMyL2R1ci81LjA3MSIvPjxTZWdtZW50VVJMIG1lZGlhPSJzcS8zMy9kdXIvNS4wNzIiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvMzQvZHVyLzUuMDcyIi8+PFNlZ21lbnRVUkwgbWVkaWE9InNxLzM1L2R1ci81LjA3MiIvPjxTZWdtZW50VVJMIG1lZGlhPSJzcS8zNi9kdXIvNS4wNzEiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvMzcvZHVyLzUuMDcyIi8+PFNlZ21lbnRVUkwgbWVkaWE9InNxLzM4L2R1ci81LjA3MiIvPjxTZWdtZW50VVJMIG1lZGlhPSJzcS8zOS9kdXIvNS4wNzIiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvNDAvZHVyLzUuMDcxIi8+PFNlZ21lbnRVUkwgbWVkaWE9InNxLzQxL2R1ci81LjA3MiIvPjxTZWdtZW50VVJMIG1lZGlhPSJzcS80Mi9kdXIvNS4wNzIiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvNDMvZHVyLzUuMDcyIi8+PFNlZ21lbnRVUkwgbWVkaWE9InNxLzQ0L2R1ci81LjA3MSIvPjxTZWdtZW50VVJMIG1lZGlhPSJzcS80NS9kdXIvNS4wNzIiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvNDYvZHVyLzUuMDcyIi8+PFNlZ21lbnRVUkwgbWVkaWE9InNxLzQ3L2R1ci81LjA3MSIvPjxTZWdtZW50VVJMIG1lZGlhPSJzcS80OC9kdXIvNS4wNzIiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvNDkvZHVyLzUuMDcyIi8+PFNlZ21lbnRVUkwgbWVkaWE9InNxLzUwL2R1ci81LjA3MiIvPjxTZWdtZW50VVJMIG1lZGlhPSJzcS81MS9kdXIvNS4wNzEiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvNTIvZHVyLzUuMDcyIi8+PFNlZ21lbnRVUkwgbWVkaWE9InNxLzUzL2R1ci81LjA3MiIvPjxTZWdtZW50VVJMIG1lZGlhPSJzcS81NC9kdXIvNS4wNzIiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvNTUvZHVyLzUuMDcxIi8+PFNlZ21lbnRVUkwgbWVkaWE9InNxLzU2L2R1ci81LjA3MiIvPjxTZWdtZW50VVJMIG1lZGlhPSJzcS81Ny9kdXIvNS4wNzIiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvNTgvZHVyLzUuMDcyIi8+PFNlZ21lbnRVUkwgbWVkaWE9InNxLzU5L2R1ci81LjA3MSIvPjxTZWdtZW50VVJMIG1lZGlhPSJzcS82MC9kdXIvNS4wNzIiLz48U2VnbWVudFVSTCBtZWRpYT0ic3EvNjEvZHVyLzUuMjcyIi8+PC9TZWdtZW50TGlzdD48L1JlcHJlc2VudGF0aW9uPjxSZXByZXNlbnRhdGlvbiBpZD0iMjk5IiBjb2RlY3M9ImF2YzEuNjQwMDJhIiB3aWR0aD0iMTkyMCIgaGVpZ2h0PSIxMDgwIiBzdGFydFdpdGhTQVA9IjEiIG1heFBsYXlvdXRSYXRlPSIxIiBiYW5kd2lkdGg9IjU3OTQ0ODUiIGZyYW1lUmF0ZT0iNjAiPjxCYXNlVVJMPmh0dHBzOi8vcjItLS1zbi00YXZmLWNicGUuZ29vZ2xldmlkZW8uY29tL3ZpZGVvcGxheWJhY2svaWQvNjBiODNlMmMyOTE4NWRiMi9pdGFnLzI5OS9zb3VyY2UveW91dHViZS9yZXF1aXJlc3NsL3llcy9wbC8yNC9tdi9tL21zL2F1L2VpL2hqVHdXZGpTRmNPYy13WFV0NWVvREEvbW0vMzEvbW4vc24tNGF2Zi1jYnBlL2luaXRjd25kYnBzLzI0MTI1MC9yYXRlYnlwYXNzL3llcy9taW1lL3ZpZGVvJTJGbXA0L290ZnAvMS9naXIveWVzL2NsZW4vMTc2NzA2ODM3L2xtdC8xNTA1NDIzNjA3ODQ3Njg4L2R1ci8zMDkuNTc1L210LzE1MDg5MTQxMjkvYmVpZHMvJTVCOTQ2NjU5NCU1RC9zaWduYXR1cmUvOEIzMUM5NjkwRjlBOTQ4RDQzQ0U1NjRBN0FGMUE1Q0UyQjRBNjQxRC45NDI0Q0JFNzE3RTBEMkRBOTdFMDYwMjVGQzMwNkExNDlEM0MxOUI2L2tleS9kZ195dDAvaXAvMjA5LjU5LjkwLjE5Ny9pcGJpdHMvMC9leHBpcmUvMTUwODkzNTkxMC9zcGFyYW1zL2lwLGlwYml0cyxleHBpcmUsaWQsaXRhZyxzb3VyY2UscmVxdWlyZXNzbCxwbCxtdixtcyxlaSxtbSxtbixpbml0Y3duZGJwcyxyYXRlYnlwYXNzLG1pbWUsb3RmcCxnaXIsY2xlbixsbXQsZHVyLzwvQmFzZVVSTD48U2VnbWVudExpc3Q+PEluaXRpYWxpemF0aW9uIHNvdXJjZVVSTD0icmFuZ2UvMC03MTMiLz48U2VnbWVudFVSTCBtZWRpYT0icmFuZ2UvMTQ3OC0yNTE0MzMyIi8+PFNlZ21lbnRVUkwgbWVkaWE9InJhbmdlLzI1MTQzMzMtNTUwNDQ5NiIvPjxTZWdtZW50VVJMIG1lZGlhPSJyYW5nZS81NTA0NDk3LTg1NTMxMzYiLz48U2VnbWVudFVSTCBtZWRpYT0icmFuZ2UvODU1MzEzNy0xMTkxMDUzMCIvPjxTZWdtZW50VVJMIG1lZGlhPSJyYW5nZS8xMTkxMDUzMS0xNDUxNDM2OCIvPjxTZWdtZW50VVJMIG1lZGlhPSJyYW5nZS8xNDUxNDM2OS0xNzE0MDU5MSIvPjxTZWdtZW50VVJMIG1lZGlhPSJyYW5nZS8xNzE0MDU5Mi0xOTkxOTg3NSIvPjxTZWdtZW50VVJMIG1lZGlhPSJyYW5nZS8xOTkxOTg3Ni0yMjQ2MDYxNSIvPjxTZWdtZW50VVJMIG1lZGlhPSJyYW5nZS8yMjQ2MDYxNi0yNDg2MTY1OSIvPjxTZWdtZW50VVJMIG1lZGlhPSJyYW5nZS8yNDg2MTY2MC0yNzI2ODYyOSIvPjxTZWdtZW50VVJMIG1lZGlhPSJyYW5nZS8yNzI2ODYzMC0yOTgxMjA0NiIvPjxTZWdtZW50VVJMIG1lZGlhPSJyYW5nZS8yOTgxMjA0Ny0zMjM4ODU4OSIvPjxTZWdtZW50VVJMIG1lZGlhPSJyYW5nZS8zMjM4ODU5MC0zNTAwMTM0MCIvPjxTZWdtZW50VVJMIG1lZGlhPSJyYW5nZS8zNTAwMTM0MS0zNzQ0MTMwMyIvPjxTZWdtZW50VVJMIG1lZGlhPSJyYW5nZS8zNzQ0MTMwNC0zOTg5NDA5OCIvPjxTZWdtZW50VVJMIG1lZGlhPSJyYW5nZS8zOTg5NDA5OS00MjE5NTQ5NCIvPjxTZWdtZW50VVJMIG1lZGlhPSJyYW5nZS80MjE5NTQ5NS00NDQwMDY1NSIvPjxTZWdtZW50VVJMIG1lZGlhPSJyYW5nZS80NDQwMDY1Ni00NjU0OTU5MSIvPjxTZWdtZW50VVJMIG1lZGlhPSJyYW5nZS80NjU0OTU5Mi00ODc2OTQzMiIvPjxTZWdtZW50VVJMIG1lZGlhPSJyYW5nZS80ODc2OTQzMy01MTA4Njc2OCIvPjxTZWdtZW50VVJMIG1lZGlhPSJyYW5nZS81MTA4Njc2OS01NDQ1OTY2NSIvPjxTZWdtZW50VVJMIG1lZGlhPSJyYW5nZS81NDQ1OTY2Ni01ODEyNTA0MSIvPjxTZWdtZW50VVJMIG1lZGlhPSJyYW5nZS81ODEyNTA0Mi02MTc5ODc0NSIvPjxTZWdtZW50VVJMIG1lZGlhPSJyYW5nZS82MTc5ODc0Ni02NTQ2NzA1MCIvPjxTZWdtZW50VVJMIG1lZGlhPSJyYW5nZS82NTQ2NzA1MS02OTEyODQ2MyIvPjxTZWdtZW50VVJMIG1lZGlhPSJyYW5nZS82OTEyODQ2NC03Mjc5NTk4OCIvPjxTZWdtZW50VVJMIG1lZGlhPSJyYW5nZS83Mjc5NTk4OS03NTU1MTQ2NiIvPjxTZWdtZW50VVJMIG1lZGlhPSJyYW5nZS83NTU1MTQ2Ny03ODgzNjY3OCIvPjxTZWdtZW50VVJMIG1lZGlhPSJyYW5nZS83ODgzNjY3OS04MjI2NjU3NSIvPjxTZWdtZW50VVJMIG1lZGlhPSJyYW5nZS84MjI2NjU3Ni04NTY3NDYxNiIvPjxTZWdtZW50VVJMIG1lZGlhPSJyYW5nZS84NTY3NDYxNy04ODY3NDIzNiIvPjxTZWdtZW50VVJMIG1lZGlhPSJyYW5nZS84ODY3NDIzNy05MTc4MDk1NSIvPjxTZWdtZW50VVJMIG1lZGlhPSJyYW5nZS85MTc4MDk1Ni05NDUyODczOSIvPjxTZWdtZW50VVJMIG1lZGlhPSJyYW5nZS85NDUyODc0MC05NzMyNjUyNyIvPjxTZWdtZW50VVJMIG1lZGlhPSJyYW5nZS85NzMyNjUyOC0xMDAxMTAzMzMiLz48U2VnbWVudFVSTCBtZWRpYT0icmFuZ2UvMTAwMTEwMzM0LTEwMzE4NzcwOCIvPjxTZWdtZW50VVJMIG1lZGlhPSJyYW5nZS8xMDMxODc3MDktMTA2MjQ0ODYxIi8+PFNlZ21lbnRVUkwgbWVkaWE9InJhbmdlLzEwNjI0NDg2Mi0xMDk3MTI3MDYiLz48U2VnbWVudFVSTCBtZWRpYT0icmFuZ2UvMTA5NzEyNzA3LTExMzM4MTY3MyIvPjxTZWdtZW50VVJMIG1lZGlhPSJyYW5nZS8xMTMzODE2NzQtMTE3MDQ2Mzc4Ii8+PFNlZ21lbnRVUkwgbWVkaWE9InJhbmdlLzExNzA0NjM3OS0xMjA0MjQxNDQiLz48U2VnbWVudFVSTCBtZWRpYT0icmFuZ2UvMTIwNDI0MTQ1LTEyMzMzMDYwNyIvPjxTZWdtZW50VVJMIG1lZGlhPSJyYW5nZS8xMjMzMzA2MDgtMTI2NjMyMTMwIi8+PFNlZ21lbnRVUkwgbWVkaWE9InJhbmdlLzEyNjYzMjEzMS0xMzAwNjAwMzciLz48U2VnbWVudFVSTCBtZWRpYT0icmFuZ2UvMTMwMDYwMDM4LTEzMzU2MDMxNSIvPjxTZWdtZW50VVJMIG1lZGlhPSJyYW5nZS8xMzM1NjAzMTYtMTM2OTY0MDA4Ii8+PFNlZ21lbnRVUkwgbWVkaWE9InJhbmdlLzEzNjk2NDAwOS0xNDAyOTU2MTEiLz48U2VnbWVudFVSTCBtZWRpYT0icmFuZ2UvMTQwMjk1NjEyLTE0Mzk2NzEzNSIvPjxTZWdtZW50VVJMIG1lZGlhPSJyYW5nZS8xNDM5NjcxMzYtMTQ3NjM4MjYzIi8+PFNlZ21lbnRVUkwgbWVkaWE9InJhbmdlLzE0NzYzODI2NC0xNTAzNjU0MTAiLz48U2VnbWVudFVSTCBtZWRpYT0icmFuZ2UvMTUwMzY1NDExLTE1MzE5NDYwNyIvPjxTZWdtZW50VVJMIG1lZGlhPSJyYW5nZS8xNTMxOTQ2MDgtMTU2ODY0NjUxIi8+PFNlZ21lbnRVUkwgbWVkaWE9InJhbmdlLzE1Njg2NDY1Mi0xNjAzMzk1NzQiLz48U2VnbWVudFVSTCBtZWRpYT0icmFuZ2UvMTYwMzM5NTc1LTE2MzQwODk0MiIvPjxTZWdtZW50VVJMIG1lZGlhPSJyYW5nZS8xNjM0MDg5NDMtMTY2NDQyOTc5Ii8+PFNlZ21lbnRVUkwgbWVkaWE9InJhbmdlLzE2NjQ0Mjk4MC0xNjkwMDQwMDEiLz48U2VnbWVudFVSTCBtZWRpYT0icmFuZ2UvMTY5MDA0MDAyLTE3MDU2MTQyNCIvPjxTZWdtZW50VVJMIG1lZGlhPSJyYW5nZS8xNzA1NjE0MjUtMTcyMDY3NzgxIi8+PFNlZ21lbnRVUkwgbWVkaWE9InJhbmdlLzE3MjA2Nzc4Mi0xNzM1OTA1MzAiLz48U2VnbWVudFVSTCBtZWRpYT0icmFuZ2UvMTczNTkwNTMxLTE3NTEyNjkzNSIvPjxTZWdtZW50VVJMIG1lZGlhPSJyYW5nZS8xNzUxMjY5MzYtMTc2NzA2ODM2Ii8+PC9TZWdtZW50TGlzdD48L1JlcHJlc2VudGF0aW9uPjwvQWRhcHRhdGlvblNldD48L1BlcmlvZD48L01QRD4K", + "headers" : { + "Server" : "HTTP server (unknown)", + "Content-Type" : "video\/vnd.mpeg.dash.mpd", + "Pragma" : "no-cache", + "Expires" : "Fri, 01 Jan 1990 00:00:00 GMT", + "Date" : "Wed, 25 Oct 2017 06:51:50 GMT", + "X-Frame-Options" : "SAMEORIGIN", + "Content-Encoding" : "gzip", + "X-XSS-Protection" : "1; mode=block", + "Alt-Svc" : "quic=\":443\"; ma=2592000; v=\"39,38,37,35\"", + "Cache-Control" : "no-cache, must-revalidate", + "Transfer-Encoding" : "Identity" + }, + "method" : "GET", + "status" : 200, + "uri" : "https:\/\/manifest.googlevideo.com\/api\/manifest\/dash\/as\/fmp4_audio_clear%2Cfmp4_sd_hd_clear\/hfr\/all\/ip\/209.59.90.197\/pl\/24\/mv\/m\/mt\/1508914129\/ms\/au\/ei\/hjTwWdjSFcOc-wXUt5eoDA\/source\/youtube\/expire\/1508935910\/mm\/31\/id\/60b83e2c29185db2\/itag\/0\/beids\/%5B9466594%5D\/ipbits\/0\/mn\/sn-4avf-cbpe\/signature\/987A64FA597244E622E2CF04F46F27E4D6F33D49.93DEA8205EB462E570AA2E92002503E85081A38C\/sparams\/as%2Cei%2Chfr%2Cid%2Cinitcwndbps%2Cip%2Cipbits%2Citag%2Cmm%2Cmn%2Cms%2Cmv%2Cpl%2Cplayback_host%2Crequiressl%2Csource%2Cexpire\/initcwndbps\/241250\/requiressl\/yes\/playback_host\/r2---sn-4avf-cbpe.googlevideo.com\/key\/yt6" + } +] \ No newline at end of file diff --git a/XCDYouTubeKit Tests/XCDYouTubeClientTestCase.m b/XCDYouTubeKit Tests/XCDYouTubeClientTestCase.m index d9f6be5ef..2fcd93149 100644 --- a/XCDYouTubeKit Tests/XCDYouTubeClientTestCase.m +++ b/XCDYouTubeKit Tests/XCDYouTubeClientTestCase.m @@ -57,6 +57,18 @@ - (void) testVideoThatHasCaptions } +- (void)testVideoWithDashManifest +{ + __weak XCTestExpectation *expectation = [self expectationWithDescription:@""]; + [[XCDYouTubeClient defaultClient] getVideoWithIdentifier:@"YLg-LCkYXbI" completionHandler:^(XCDYouTubeVideo *video, NSError *error) + { + XCTAssertNotNil(video); + XCTAssertNotNil(video.streamURLs[@299], @"Could not find Dash video 299 in `streamURLs`"); //itag=299: {'ext': 'mp4', 'height': 1080, 'format_note': 'DASH video', 'vcodec': 'h264', 'fps': 60} + [expectation fulfill]; + }]; + [self waitForExpectationsWithTimeout:5 handler:nil]; +} + - (void) testVideoWithUndeterminedCaptionLanguageCode { __weak XCTestExpectation *expectation = [self expectationWithDescription:@""]; From 297071ea56e50e8e9c4b928c279ec20a09108b0c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sonee=CC=81=20John?= Date: Wed, 25 Oct 2017 03:03:50 -0400 Subject: [PATCH 20/52] =?UTF-8?q?Assign=20integer=20to=20streamURL?= =?UTF-8?q?=E2=80=99s=20key=20instead=20of=20string?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit #354 #356 --- XCDYouTubeKit/XCDYouTubeDashManifestXML.m | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/XCDYouTubeKit/XCDYouTubeDashManifestXML.m b/XCDYouTubeKit/XCDYouTubeDashManifestXML.m index 62e2b89a3..3c11338da 100644 --- a/XCDYouTubeKit/XCDYouTubeDashManifestXML.m +++ b/XCDYouTubeKit/XCDYouTubeDashManifestXML.m @@ -64,7 +64,7 @@ - (NSDictionary *)streamURLs NSTextCheckingResult *itagCheckingResult = [itagRegex firstMatchInString:(NSString *_Nonnull)url.absoluteString options:0 range:NSMakeRange(0, url.absoluteString.length)]; NSString *itag = [url.absoluteString substringWithRange:itagCheckingResult.range]; - streamURLs[itag] = url; + streamURLs[@(itag.integerValue)] = url; } if (streamURLs.count == 0) From 00739fa3f20d491bf47c2f87ea1e5f4183002dd0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sonee=CC=81=20John?= Date: Wed, 25 Oct 2017 03:13:10 -0400 Subject: [PATCH 21/52] Add manifest test in the event of a network error #354 #356 --- .../testConnectionErrorWithDashManifest.json | 35 +++++++++++++++++++ .../XCDYouTubeClientTestCase.m | 11 ++++++ 2 files changed, 46 insertions(+) create mode 100644 XCDYouTubeKit Tests/Cassettes/XCDYouTubeClientTestCase/testConnectionErrorWithDashManifest.json diff --git a/XCDYouTubeKit Tests/Cassettes/XCDYouTubeClientTestCase/testConnectionErrorWithDashManifest.json b/XCDYouTubeKit Tests/Cassettes/XCDYouTubeClientTestCase/testConnectionErrorWithDashManifest.json new file mode 100644 index 000000000..521f09f49 --- /dev/null +++ b/XCDYouTubeKit Tests/Cassettes/XCDYouTubeClientTestCase/testConnectionErrorWithDashManifest.json @@ -0,0 +1,35 @@ +[ + { + "body" : "", + "error" : { + "code" : -1003, + "userInfo" : "YnBsaXN0MDDUAQIDBAUGUVJYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3ASAAGGoK8QFgcIGxwdHh8gISkqODk6OzxCSElKS05VJG51bGzTCQoLDBMaV05TLmtleXNaTlMub2JqZWN0c1YkY2xhc3OmDQ4PEBESgAKAA4AEgAWABoAHphQVFhcYGYAIgA6AD4ASgBGAE4AUXxARTlNVbmRlcmx5aW5nRXJyb3JfEBpOU0Vycm9yRmFpbGluZ1VSTFN0cmluZ0tleV8QFE5TRXJyb3JGYWlsaW5nVVJMS2V5XxAYX2tDRlN0cmVhbUVycm9yRG9tYWluS2V5XxAWX2tDRlN0cmVhbUVycm9yQ29kZUtleV8QFk5TTG9jYWxpemVkRGVzY3JpcHRpb27UIiMkCyUmJyhWTlNDb2RlWk5TVXNlckluZm9YTlNEb21haW4T\/\/\/\/\/\/\/\/\/BWACoAJgBVfEBdrQ0ZFcnJvckRvbWFpbkNGTmV0d29ya9MJCgsrMRqlLC0REDCAC4AMgAaABYANpRUWGBcZgA6AD4ARgBKAE4AUXxAaTlNFcnJvckZhaWxpbmdVUkxTdHJpbmdLZXlfEBROU0Vycm9yRmFpbGluZ1VSTEtleV8QFk5TTG9jYWxpemVkRGVzY3JpcHRpb25fEQJWaHR0cHM6Ly9tYW5pZmVzdC5nb29nbGV2aWRlby5jb20vYXBpL21hbmlmZXN0L2Rhc2gvbW4vc24tbzA5N3pubDYvc2lnbmF0dXJlLzg1NTE2NDEyMkUwOTVCNzI3ODZEMzE5Q0E0RjVGMjNGNjFGNDdEMjguMkU3MTA2RTkxOTExQTk4RjYyRjYwNzczOUE2QkJCNjc5NTI1RkE4Ni9tbS8zMS9zcGFyYW1zL2FzJTJDZWklMkNoZnIlMkNpZCUyQ2luaXRjd25kYnBzJTJDaXAlMkNpcGJpdHMlMkNpdGFnJTJDbW0lMkNtbiUyQ21zJTJDbXYlMkNwbCUyQ3BsYXliYWNrX2hvc3QlMkNyZXF1aXJlc3NsJTJDc291cmNlJTJDZXhwaXJlL2lkLzYwYjgzZTJjMjkxODVkYjIvaGZyL2FsbC9zb3VyY2UveW91dHViZS9iZWlkcy8lNUI5NDY2NTk0JTVEL212L20vbXQvMTUwODkxNTM4Mi9tcy9hdS9wbGF5YmFja19ob3N0L3IyLS0tc24tbzA5N3pubDYuZ29vZ2xldmlkZW8uY29tL2l0YWcvMC9hcy9mbXA0X2F1ZGlvX2NsZWFyJTJDZm1wNF9zZF9oZF9jbGVhci9yZXF1aXJlc3NsL3llcy9laS9MRG53V2NlSklzdXgtQVBic2F5d0NRL2tleS95dDYvcGwvMTgvaXBiaXRzLzAvaW5pdGN3bmRicHMvMjYyNTAwL2V4cGlyZS8xNTA4OTM3MTAwL2lwLzEwNC4yMzYuMTM4LjI0MdM9Cz4\/QBVXTlMuYmFzZVtOUy5yZWxhdGl2ZYAAgBCADtJDREVGWiRjbGFzc25hbWVYJGNsYXNzZXNVTlNVUkyiRUdYTlNPYmplY3QQCBAMXxA4QSBzZXJ2ZXIgd2l0aCB0aGUgc3BlY2lmaWVkIGhvc3RuYW1lIGNvdWxkIG5vdCBiZSBmb3VuZC7SQ0RMTVxOU0RpY3Rpb25hcnmiTEfSQ0RPUFdOU0Vycm9yok9HXxAPTlNLZXllZEFyY2hpdmVy0VNUVHJvb3SAAQAIABEAGgAjAC0AMgA3AFAAVgBdAGUAcAB3AH4AgACCAIQAhgCIAIoAkQCTAJUAlwCZAJsAnQCfALMA0ADnAQIBGwE0AT0BRAFPAVgBYQFjAWUBZwGBAYgBjgGQAZIBlAGWAZgBngGgAaIBpAGmAagBqgHHAd4B9wRRBFgEYARsBG4EcARyBHcEggSLBJEElASdBJ8EoQTcBOEE7gTxBPYE\/gUBBRMFFgUbAAAAAAAAAgEAAAAAAAAAVQAAAAAAAAAAAAAAAAAABR0=", + "domain" : "NSURLErrorDomain" + }, + "method" : "GET", + "status" : 0, + "uri" : "https:\/\/manifest.googlevideo.com\/api\/manifest\/dash\/mn\/sn-o097znl6\/signature\/855164122E095B72786D319CA4F5F23F61F47D28.2E7106E91911A98F62F607739A6BBB679525FA86\/mm\/31\/sparams\/as%2Cei%2Chfr%2Cid%2Cinitcwndbps%2Cip%2Cipbits%2Citag%2Cmm%2Cmn%2Cms%2Cmv%2Cpl%2Cplayback_host%2Crequiressl%2Csource%2Cexpire\/id\/60b83e2c29185db2\/hfr\/all\/source\/youtube\/beids\/%5B9466594%5D\/mv\/m\/mt\/1508915382\/ms\/au\/playback_host\/r2---sn-o097znl6.googlevideo.com\/itag\/0\/as\/fmp4_audio_clear%2Cfmp4_sd_hd_clear\/requiressl\/yes\/ei\/LDnwWceJIsux-APbsaywCQ\/key\/yt6\/pl\/18\/ipbits\/0\/initcwndbps\/262500\/expire\/1508937100\/ip\/104.236.138.241" + }, + { + "body" : "author=Canoe+Kayak+Canada&length_seconds=310&vm=CAEQABgE&t=1&idpj=-1&itct=CAEQu2kiEwjHz6CjnIvXAhXLGH4KHdsYC5Yo6NQB&videostats_playback_base_url=https%3A%2F%2Fs.youtube.com%2Fapi%2Fstats%2Fplayback%3Flen%3D310%26of%3DGC6OCn1lTVgpgJyrp2hYjw%26cl%3D173247681%26vm%3DCAEQABgE%26ns%3Dyt%26plid%3DAAVcWcRrU_a4B7nj%26el%3Dembedded%26ei%3DLDnwWceJIsux-APbsaywCQ%26fexp%3D23701710%252C23702322%252C23702387%252C23702700%252C23702730%252C23704248%252C23705485%252C23705739%252C23706129%252C23706607%252C23707852%252C23708159%252C23708907%252C23708910%252C23709268%252C23709826%252C9422596%252C9431754%252C9444895%252C9449243%252C9466594%252C9471239%252C9474594%252C9476026%252C9476327%252C9480475%252C9485000%252C9487203%252C9488038%252C9488568%26docid%3DYLg-LCkYXbI&c=WEB&fexp=23701710%2C23702322%2C23702387%2C23702700%2C23702730%2C23704248%2C23705485%2C23705739%2C23706129%2C23706607%2C23707852%2C23708159%2C23708907%2C23708910%2C23709268%2C23709826%2C9422596%2C9431754%2C9444895%2C9449243%2C9466594%2C9471239%2C9474594%2C9476026%2C9476327%2C9480475%2C9485000%2C9487203%2C9488038%2C9488568&host_language=en&iv3_module=1&cver=1.20171023&hl=en_US&probe_url=https%3A%2F%2Fr3---sn-aigllndd.googlevideo.com%2Fvideogoodput%3Fid%3Do-ACMEAY3lRWIiUYJHP640IFKrWD2w9_EHiONPbtjpww_c%26source%3Dgoodput%26range%3D0-4999%26expire%3D1508919100%26ip%3D104.236.138.241%26ms%3Dpm%26mm%3D35%26pl%3D24%26nh%3DIgpwZjAxLmxocjI1KgwxOTUuNTkuNzcuNDU%26sparams%3Did%2Csource%2Crange%2Cexpire%2Cip%2Cms%2Cmm%2Cpl%2Cnh%26signature%3D7FB0F9C8F4182DAFB4259DEFA25899EFFB5B707A.2DE7DE38756D52C88B9385FCB1FEEBEF9B8B3666%26key%3Dcms1&gapi_hint_params=m%3B%2F_%2Fscs%2Fabc-static%2F_%2Fjs%2Fk%3Dgapi.gapi.en.CMK08v540qY.O%2Fm%3D__features__%2Fam%3DAAg%2Frt%3Dj%2Fd%3D1%2Frs%3DAHpOoo-zuYXPOIuiHXsKOXE2DwZ06yC48g&tmi=1&vss_host=s.youtube.com&eventid=LDnwWceJIsux-APbsaywCQ&ucid=UCf4BdBAZoaT7ulFBrYSzeBA&fmt_list=22%2F1280x720%2F9%2F0%2F115%2C43%2F640x360%2F99%2F0%2F0%2C18%2F640x360%2F9%2F0%2F115%2C36%2F320x180%2F99%2F1%2F0%2C17%2F176x144%2F99%2F1%2F0&ptk=youtube_none&avg_rating=0.0&apiary_host_firstparty=&root_ve_type=27240&plid=AAVcWcRrU_a4B7nj&vmap=%3C%3Fxml+version%3D%221.0%22+encoding%3D%22UTF-8%22%3F%3E%3Cvmap%3AVMAP+xmlns%3Avmap%3D%22http%3A%2F%2Fwww.iab.net%2Fvideosuite%2Fvmap%22+xmlns%3Ayt%3D%22http%3A%2F%2Fyoutube.com%22+version%3D%221.0%22%3E%3C%2Fvmap%3AVMAP%3E&innertube_context_client_version=1.20171023&swf_player_response=1&of=GC6OCn1lTVgpgJyrp2hYjw&ldpj=-10&no_get_video_log=1&dashmpd=https%3A%2F%2Fmanifest.googlevideo.com%2Fapi%2Fmanifest%2Fdash%2Fmn%2Fsn-o097znl6%2Fsignature%2F855164122E095B72786D319CA4F5F23F61F47D28.2E7106E91911A98F62F607739A6BBB679525FA86%2Fmm%2F31%2Fsparams%2Fas%252Cei%252Chfr%252Cid%252Cinitcwndbps%252Cip%252Cipbits%252Citag%252Cmm%252Cmn%252Cms%252Cmv%252Cpl%252Cplayback_host%252Crequiressl%252Csource%252Cexpire%2Fid%2F60b83e2c29185db2%2Fhfr%2Fall%2Fsource%2Fyoutube%2Fbeids%2F%255B9466594%255D%2Fmv%2Fm%2Fmt%2F1508915382%2Fms%2Fau%2Fplayback_host%2Fr2---sn-o097znl6.googlevideo.com%2Fitag%2F0%2Fas%2Ffmp4_audio_clear%252Cfmp4_sd_hd_clear%2Frequiressl%2Fyes%2Fei%2FLDnwWceJIsux-APbsaywCQ%2Fkey%2Fyt6%2Fpl%2F18%2Fipbits%2F0%2Finitcwndbps%2F262500%2Fexpire%2F1508937100%2Fip%2F104.236.138.241&url_encoded_fmt_stream_map=quality%3Dhd720%26url%3Dhttps%253A%252F%252Fr2---sn-o097znl6.googlevideo.com%252Fvideoplayback%253Fmn%253Dsn-o097znl6%2526key%253Dyt6%2526mm%253D31%2526dur%253D309.638%2526id%253Do-ANY3lXoQjANa_6uNQo81keKWpc7NFdx9Q5p0OndfWpNM%2526ip%253D104.236.138.241%2526mime%253Dvideo%25252Fmp4%2526beids%253D%25255B9466594%25255D%2526mv%253Dm%2526pl%253D18%2526ipbits%253D0%2526initcwndbps%253D262500%2526ms%253Dau%2526sparams%253Ddur%25252Cei%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cpl%25252Cratebypass%25252Crequiressl%25252Csource%25252Cexpire%2526expire%253D1508937100%2526lmt%253D1505423618163931%2526ratebypass%253Dyes%2526source%253Dyoutube%2526mt%253D1508915382%2526itag%253D22%2526signature%253DA7FF7F3E402ACAB5DD49094CBF373DD1B19D886F.5ED3167C37A9748EF3A1DC2C4E2228796DCC1491%2526requiressl%253Dyes%2526ei%253DLDnwWceJIsux-APbsaywCQ%26itag%3D22%26type%3Dvideo%252Fmp4%253B%2Bcodecs%253D%2522avc1.64001F%252C%2Bmp4a.40.2%2522%2Cquality%3Dmedium%26url%3Dhttps%253A%252F%252Fr2---sn-o097znl6.googlevideo.com%252Fvideoplayback%253Fmn%253Dsn-o097znl6%2526signature%253D05C289428B0E3C3F0B351204AC2C672E3999A789.36B2861A6EBE0D2E16C953DD1B3EDA8280A77650%2526gir%253Dyes%2526mm%253D31%2526dur%253D0.000%2526id%253Do-ANY3lXoQjANa_6uNQo81keKWpc7NFdx9Q5p0OndfWpNM%2526ip%253D104.236.138.241%2526mime%253Dvideo%25252Fwebm%2526beids%253D%25255B9466594%25255D%2526mv%253Dm%2526mt%253D1508915382%2526ms%253Dau%2526sparams%253Dclen%25252Cdur%25252Cei%25252Cgir%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cpl%25252Cratebypass%25252Crequiressl%25252Csource%25252Cexpire%2526itag%253D43%2526requiressl%253Dyes%2526ei%253DLDnwWceJIsux-APbsaywCQ%2526key%253Dyt6%2526pl%253D18%2526ipbits%253D0%2526initcwndbps%253D262500%2526expire%253D1508937100%2526lmt%253D1505426085675537%2526ratebypass%253Dyes%2526source%253Dyoutube%2526clen%253D34550729%26itag%3D43%26type%3Dvideo%252Fwebm%253B%2Bcodecs%253D%2522vp8.0%252C%2Bvorbis%2522%2Cquality%3Dmedium%26url%3Dhttps%253A%252F%252Fr2---sn-o097znl6.googlevideo.com%252Fvideoplayback%253Fmn%253Dsn-o097znl6%2526signature%253D6B93291F6D72B5C1C421DC167C17E4A89CF7E3E2.62540E2D39AF7F6E2A064EE9F529FD249217B906%2526gir%253Dyes%2526mm%253D31%2526dur%253D309.638%2526id%253Do-ANY3lXoQjANa_6uNQo81keKWpc7NFdx9Q5p0OndfWpNM%2526ip%253D104.236.138.241%2526mime%253Dvideo%25252Fmp4%2526beids%253D%25255B9466594%25255D%2526mv%253Dm%2526mt%253D1508915382%2526ms%253Dau%2526sparams%253Dclen%25252Cdur%25252Cei%25252Cgir%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cpl%25252Cratebypass%25252Crequiressl%25252Csource%25252Cexpire%2526itag%253D18%2526requiressl%253Dyes%2526ei%253DLDnwWceJIsux-APbsaywCQ%2526key%253Dyt6%2526pl%253D18%2526ipbits%253D0%2526initcwndbps%253D262500%2526expire%253D1508937100%2526lmt%253D1505423509978445%2526ratebypass%253Dyes%2526source%253Dyoutube%2526clen%253D26128895%26itag%3D18%26type%3Dvideo%252Fmp4%253B%2Bcodecs%253D%2522avc1.42001E%252C%2Bmp4a.40.2%2522%2Cquality%3Dsmall%26url%3Dhttps%253A%252F%252Fr2---sn-o097znl6.googlevideo.com%252Fvideoplayback%253Fmn%253Dsn-o097znl6%2526signature%253D5E52A4A54C69C099CDB0E5ECF5D3BC3498B891D5.ADE64BCE6D9492812BAFFA3989931584335320A8%2526gir%253Dyes%2526mm%253D31%2526sparams%253Dclen%25252Cdur%25252Cei%25252Cgir%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cpl%25252Crequiressl%25252Csource%25252Cexpire%2526id%253Do-ANY3lXoQjANa_6uNQo81keKWpc7NFdx9Q5p0OndfWpNM%2526ip%253D104.236.138.241%2526mime%253Dvideo%25252F3gpp%2526beids%253D%25255B9466594%25255D%2526mv%253Dm%2526mt%253D1508915382%2526ms%253Dau%2526dur%253D309.661%2526itag%253D36%2526requiressl%253Dyes%2526ei%253DLDnwWceJIsux-APbsaywCQ%2526key%253Dyt6%2526pl%253D18%2526ipbits%253D0%2526initcwndbps%253D262500%2526expire%253D1508937100%2526lmt%253D1505423507066538%2526source%253Dyoutube%2526clen%253D8444065%26itag%3D36%26type%3Dvideo%252F3gpp%253B%2Bcodecs%253D%2522mp4v.20.3%252C%2Bmp4a.40.2%2522%2Cquality%3Dsmall%26url%3Dhttps%253A%252F%252Fr2---sn-o097znl6.googlevideo.com%252Fvideoplayback%253Fmn%253Dsn-o097znl6%2526signature%253DD49EAF2A20DF357E3797D1128919BA1A05FD6998.08664D695FDFA2215152C899756980A1B37D54F9%2526gir%253Dyes%2526mm%253D31%2526sparams%253Dclen%25252Cdur%25252Cei%25252Cgir%25252Cid%25252Cinitcwndbps%25252Cip%25252Cipbits%25252Citag%25252Clmt%25252Cmime%25252Cmm%25252Cmn%25252Cms%25252Cmv%25252Cpl%25252Crequiressl%25252Csource%25252Cexpire%2526id%253Do-ANY3lXoQjANa_6uNQo81keKWpc7NFdx9Q5p0OndfWpNM%2526ip%253D104.236.138.241%2526mime%253Dvideo%25252F3gpp%2526beids%253D%25255B9466594%25255D%2526mv%253Dm%2526mt%253D1508915382%2526ms%253Dau%2526dur%253D309.661%2526itag%253D17%2526requiressl%253Dyes%2526ei%253DLDnwWceJIsux-APbsaywCQ%2526key%253Dyt6%2526pl%253D18%2526ipbits%253D0%2526initcwndbps%253D262500%2526expire%253D1508937100%2526lmt%253D1505423506674421%2526source%253Dyoutube%2526clen%253D2977035%26itag%3D17%26type%3Dvideo%252F3gpp%253B%2Bcodecs%253D%2522mp4v.20.3%252C%2Bmp4a.40.2%2522&csn=LDnwWceJIsux-APbsaywCQ&is_listed=1&innertube_api_key=AIzaSyAO_FJ2SlqU8Q4STEHLGCilw_Y9_11qcW8&pltype=contentugc&enablecsi=1&storyboard_spec=https%3A%2F%2Fi9.ytimg.com%2Fsb%2FYLg-LCkYXbI%2Fstoryboard3_L%24L%2F%24N.jpg%7C48%2327%23100%2310%2310%230%23default%23rs%24AOn4CLBT6swri_SqgEJ-YI8TvnTAlh0kZw%7C80%2345%2363%2310%2310%235000%23M%24M%23rs%24AOn4CLDRiEriQwqebeCgrU01FS92rKvCMA%7C160%2390%2363%235%235%235000%23M%24M%23rs%24AOn4CLDWdouNDSKoYgPHCXvLQfDE4oGjiQ&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×tamp=1508915500&atc=a%3D3%26b%3DyQPRNVdU2E8zPeS03dAL_gZwPM4%26c%3D1508915500%26d%3D1%26e%3DYLg-LCkYXbI%26c3a%3D24%26c1a%3D1%26c6a%3D1%26hh%3DtqMPSNKm_eURPSK2JjBHwuq8YA8F8bjV8DNV3J0EeZg&view_count=99&account_playback_token=QUFFLUhqbjh6eXVsZVlHN0VoRWpScE5tcEJSbXYxMkhEZ3xBQ3Jtc0tsQ2dFc080My1VdnR5bW9va2kyYkNfNDROdlIwSXZ6MmFSMUMwc1FXRVhBQjBYeElCSThVYTE3VTZhek40MVBvd3ljTFltc19DdHd4c21pMk9YT1FFM3dWclVQSEcwUWVWTjE5TnUwcjFpZDZiOXlmdw%3D%3D&cl=173247681&iv_load_policy=1&innertube_api_version=v1&xhr_apiary_host=youtubei.youtube.com&status=ok&fflags=new_promo_page%3Dtrue%26html5_new_fallback%3Dtrue%26yto_enable_unlimited_landing_page_yto_features%3Dtrue%26html5_desktop_serverside_get_biscotti_id_from_client%3Dtrue%26report_promotes_terrorism_mobile_web%3Dtrue%26enable_plus_page_pts%3Dtrue%26legacy_autoplay_flag%3Dtrue%26html5_max_readahead_bandwidth_cap%3D0%26desktop_cleanup_companion_on_instream_begin%3Dtrue%26show_countdown_on_bumper%3Dtrue%26autoplay_time%3D8000%26html5_new_e2e_latency_tracking%3Dtrue%26use_fast_fade_in_0s%3Dtrue%26enable_offer_restricts_for_watch_page_offers%3Dtrue%26html5_dom_pause%3Dtrue%26king_crimson_player_redux%3Dtrue%26disable_reporting_html5_no_vast_ads_as_error%3Dtrue%26web_player_disable_flash_playerproxy%3Dtrue%26html5_live_abr_head_miss_fraction%3D0.0%26html5_min_readbehind_secs%3D0%26sponsors_disable%3Dtrue%26html5_always_enable_timeouts%3Dtrue%26interaction_log_delayed_event_batch_size%3D200%26html5_msi_error_fallback%3Dtrue%26mweb_autonav_paddles%3Dtrue%26android_buy_bucket_buy_flows%3Dtrue%26unplugged_web_location_accuracy%3Dtrue%26html5_ad_loudness_penalty_db%3D0%26allow_live_autoplay%3Dtrue%26kids_enable_terms_servlet%3Dtrue%26html5_min_readbehind_cap_secs%3D0%26live_chunk_readahead%3D3%26reels_avatar_row%3Dfalse%26html5_post_interrupt_readahead%3D20%26html5_minimum_readahead_seconds%3D0.0%26mweb_blacklist_progressive_chrome_mobile%3Dtrue%26html5_disable_audio_slicing%3Dtrue%26disable_trusted_ad_domains_player_check%3Dtrue%26dynamic_ad_break_seek_threshold_sec%3D0%26html5_max_headm_for_streaming_xhr%3D0%26enable_prefetch_for_postrolls%3Dtrue%26enable_playlist_multi_season%3Dtrue%26enable_finished_broadcast_reactr_sharing%3Dfalse%26web_player_disable_flash_watch%3Dtrue%26html5_deferred_source_buffer_creation%3Dtrue%26html5_spherical_bicubic_mode%3D0%26kids_asset_theme%3Dserver_side_assets%26html5_live_abr_repredict_fraction%3D0.0%26show_interstitial_for_3s%3Dtrue%26live_chat_v1_turndown%3Dtrue%26yto_feature_hub_channel%3Dfalse%26disable_new_pause_state3%3Dtrue%26html5_clearance_fix%3Dtrue%26html5_sticky_ignore_capped%3Dtrue%26html5_tight_max_buffer_allowed_bandwidth_stddevs%3D0.0%26html5_max_av_sync_drift%3D50%26html5_composite_stall%3Dtrue%26html5_variability_no_discount_thresh%3D1.0%26enable_bulleit_lidar_integration%3Dtrue%26html5_el_migration%3Dtrue%26html5_variability_full_discount_thresh%3D3.0%26mweb_muted_autoplay%3Dtrue%26website_actions_throttle_percentage%3D1.0%26mobile_disable_ad_mob_on_home%3Dtrue%26show_interstitial_white%3Dtrue%26html5_suspend_manifest_on_pause%3Dtrue%26use_survey_skip_in_0s%3Dtrue%26html5_enable_ms_playready_hd%3Dtrue%26kids_enable_post_onboarding_red_flow%3Dtrue%26show_thumbnail_behind_ypc_offer_module%3Dtrue%26html5_pause_video_fix%3Dtrue%26html5_tight_max_buffer_allowed_impaired_time%3D0.0%26web_player_flash_fallback_killswitch%3Dtrue%26html5_allowable_liveness_drift_chunks%3D2%26forced_brand_precap_duration_ms%3D2000%26disable_indisplay_adunit_on_embedded%3Dtrue%26max_resolution_for_white_noise%3D360%26uniplayer_dbp%3Dtrue%26mweb_playsinline_webview%3Dtrue%26kids_mqb_use_confirmed_safe_videos_only%3Dfalse%26playready_first_play_expiration%3D-1%26html5_platform_minimum_readahead_seconds%3D0.0%26html5_report_conn%3Dtrue%26ios_disable_notification_preprompt%3Dtrue%26spacecast_uniplayer_decorate_manifest%3Dtrue%26midroll_notify_time_seconds%3D5%26mpu_visible_threshold_count%3D2%26yto_enable_ytr_promo_refresh_assets%3Dtrue%26disable_client_side_midroll_freq_capping%3Dtrue%26html5_variability_discount%3D0.5%26html5_use_adaptive_live_readahead%3Dtrue%26mweb_autonav%3Dtrue%26flex_theater_mode%3Dtrue%26live_fresca_v2%3Dtrue%26set_interstitial_question_text%3Dtrue%26enable_afv_div_reset_in_kevlar%3Dtrue%26fix_gpt_pos_params%3Dtrue%26html5_restrict_streaming_xhr_on_sqless_requests%3Dtrue%26report_promotes_terrorism_ios%3Dtrue%26html5_max_buffer_health_for_downgrade%3D15%26html5_reselect_bandwidth_factor%3D3.0%26html5_subsegment_readahead_progress_timeout_fraction%3D0.8%26disable_max_adsense_channel_limit%3Dtrue%26tvhtml5_background_su%3Dtrue%26limit_of_rebuffering_event_on_html5%3D1000%26yto_enable_watch_offer_module%3Dtrue%26html5_connect_timeout_secs%3D7.0%26html5_player_autonav_logging%3Dtrue%26html5_error_reload_cooldown_ms%3D0%26android_enable_thumbnail_overlay_side_panel%3Dfalse%26chrome_promo_enabled%3Dtrue%26html5_elbow_tracking_tweaks%3Dtrue%26html5_live_pin_to_tail%3Dtrue%26html5_no_shadow_env_data%3Dfalse%26use_new_skip_icon%3Dtrue%26html5_disable_non_contiguous%3Dtrue%26mweb_pu_android_chrome_54_above%3Dtrue%26html5_maximum_readahead_seconds%3D0.0%26polymer_report_missing_web_navigation_endpoint%3Dfalse%26html5_request_sizing_multiplier%3D0.8%26persist_text_on_preview_button%3Dtrue%26html5_ultra_low_latency_streaming_responses%3Dtrue%26use_new_style%3Dtrue%26kids_enable_privacy_notice%3Dtrue%26kids_enable_server_side_assets%3Dfalse%26sidebar_renderers%3Dtrue%26html5_suspended_state%3Dtrue%26deprecate_get_video_metadata%3Dtrue%26html5_stop_video_in_cancel_playback%3Dtrue%26exclude_pyv_overlays_on_desktop_watch%3Dtrue%26html5_request_size_max_secs%3D31%26html5_deadzone_multiplier%3D1.0%26html5_stale_dash_manifest_retry_factor%3D1.0%26enable_red_carpet_p13n_shelves%3Dtrue%26segment_volume_reporting%3Dtrue%26show_thumbnail_on_standard%3Dtrue%26html5_repredict_interval_secs%3D0.0%26channel_about_page_gadgets%3Dtrue%26use_forced_linebreak_preskip_text%3Dtrue%26html5_strip_emsg%3Dtrue%26html5_preload_size_excludes_metadata%3Dtrue%26embed_show_watchlater_login%3Dtrue%26report_promotes_terrorism_desktop%3Dtrue%26doubleclick_gpt_retagging%3Dtrue%26dash_manifest_version%3D5%26enable_ccs_buy_flow_for_chirp%3Dtrue%26html5_default_quality_cap%3D0%26html5_min_upgrade_health%3D0%26website_actions_cta_redesign%3Dtrue%26live_readahead_seconds_multiplier%3D0.8%26lock_fullscreen%3Dfalse%26custom_emoji_creator%3Dtrue%26king_crimson_player%3Dfalse%26sponsors_whitelist_creator%3Dtrue%26html5_progressive_signature_reload%3Dtrue%26sdk_ad_prefetch_time_seconds%3D-1%26html5_throttle_burst_secs%3D15.0%26use_push_for_desktop_live_chat%3Dtrue%26lugash_header_by_service%3Dtrue%26player_destroy_old_version%3Dtrue%26html5_request_size_min_secs%3D0.0%26stop_using_ima_sdk_gpt_request_activity%3Dtrue%26mweb_playsinline%3Dtrue%26html5_subsegment_readahead_tail_margin_secs%3D0.2%26html5_adjust_effective_request_size%3Dtrue%26ios_enable_mainapp_playlist_sync_worker%3Dfalse%26enable_local_channel%3Dtrue%26report_promotes_terrorism_android%3Dtrue%26html5_serverside_call_server_on_biscotti_error%3Dtrue%26www_for_videostats%3Dtrue%26html5_serverside_biscotti_id_wait_ms%3D1000%26html5_background_quality_cap%3D360%26kids_enable_block_servlet%3Dtrue%26html5_throttle_rate%3D0.0%26web_player_api_logging_fraction%3D0.01%26html5_aspect_from_adaptive_format%3Dtrue%26mweb_cougar_big_controls%3Dtrue%26mweb_enable_skippables_on_iphone%3Dtrue%26html5_subsegment_readahead_target_buffer_health_secs%3D0.5%26custom_emoji_legacy%3Dtrue%26signed_out_notification_settings%3Dtrue%26html5_quality_cap_min_age_secs%3D0%26mweb_cougar%3Dtrue%26vss_dni_delayping%3D0%26variable_load_timeout_ms%3D0%26html5_stall_pctile%3Dtrue%26dynamic_ad_break_pause_threshold_sec%3D0%26enable_live_state_auth%3Dtrue%26kids_eliminate_playlists_in_channels%3Dtrue%26signed_out_notifications_inbox%3Dtrue%26html5_live_4k_more_buffer%3Dtrue%26html5_bandwidth_window_size%3D0%26hide_preskip%3Dtrue%26html5_video_tbd_min_kb%3D0%26use_html5_player_event_timeout%3Dtrue%26html5_min_secs_over_max_bytes%3Dtrue%26html5_license_constraint_delay%3D0%26html5_enable_embedded_player_visibility_signals%3Dtrue%26playready_on_borg%3Dtrue%26html5_env_data_update_app_only%3Dtrue%26html5_observe_live_start_seconds%3Dtrue%26enable_gaming_new_logo%3Dtrue%26mysubs_highlight_shelf_counterfactual%3Dfalse%26html5_get_video_info_timeout_ms%3D0%26lugash_header_warmup%3Dtrue%26ad_duration_threshold_for_showing_endcap_seconds%3D15%26html5_live_disable_dg_pacing%3Dtrue%26html5_timeupdate_readystate_check%3Dtrue%26report_promotes_terrorism_polymer%3Dtrue%26ios_notifications_disabled_subs_tab_promoted_item_promo%3Dtrue%26html5_subsegment_readahead_timeout_secs%3D2.0%26info_box_for_promotes_terrorism_reporting%3Dtrue%26ios_enable_mixin_accessibility_custom_actions%3Dtrue%26postroll_notify_time_seconds%3D5%26html5_background_cap_idle_secs%3D60%26html5_manifestless_accurate_sliceinfo%3Dtrue%26html5_local_max_byterate_lookahead%3D15%26html5_break_deadlocks%3Dtrue%26html5_serverside_call_server_on_biscotti_timeout%3Dtrue%26youtubei_for_web%3Dtrue%26fixed_padding_skip_button%3Dtrue%26html5_min_startup_smooth_target%3D10.0%26html5_max_buffer_duration%3D0%26web_player_edge_autohide_killswitch%3Dtrue%26html5_aux_pctile%3Dtrue%26html5_nnr_downgrade_count%3D4%26android_native_live_enablement%3Dtrue%26html5_get_video_info_promiseajax%3Dtrue%26ad_video_end_renderer_duration_milliseconds%3D7000%26html5_min_secs_between_format_selections%3D8.0%26html5_ad_no_buffer_abort_after_skippable%3Dtrue%26sdk_wrapper_levels_allowed%3D0%26html5_enable_mesh_projection%3Dtrue%26html5_disable_move_pssh_to_moov%3Dtrue%26html5_disable_urgent_upgrade_for_quality%3Dtrue%26html5_manifestless_no_redundant_seek_to_head%3Dtrue%26send_html5_api_stats_ads_abandon%3Dtrue%26html5_mobile_perf_cap_240%3Dtrue%26mweb_muted_autoplay_animation%3Dshrink%26set_interstitial_start_button%3Dtrue%26lightweight_watch_video_swf%3Dtrue%26html5_min_buffer_to_resume%3D6%26html5_new_peg_to_live_v2%3Dtrue%26disable_mweb_iphone_ad_click_handling_functionality%3Dtrue%26html5_hopeless_mode_request_size_secs%3D15%26yt_unlimited_pts_skip_ads_promo_desktop_always%3Dtrue%26html5_pipeline_ultra_low_latency%3Dtrue%26disable_search_mpu%3Dtrue%26web_embedded_player_service%3Dtrue&apiary_host=&ppv_remarketing_url=https%3A%2F%2Fwww.googleadservices.com%2Fpagead%2Fconversion%2F971134070%2F%3Fbackend%3Dinnertube%26cname%3D1%26cver%3D1_20171023%26data%3Dbackend%253Dinnertube%253Bcname%253D1%253Bcver%253D1_20171023%253Bdactive%253DNone%253Bptype%253Dppv%26label%3DiuZUCLmC72YQ9qiJzwM%26ptype%3Dppv%26value%3D0.081&token=1&cr=US&player_response=%7B%22playbackTracking%22%3A%7B%7D%2C%22captions%22%3A%7B%22playerCaptionsTracklistRenderer%22%3A%7B%22captionTracks%22%3A%5B%7B%22baseUrl%22%3A%22https%3A%2F%2Fwww.youtube.com%2Fapi%2Ftimedtext%3Fexpire%3D1508940700%5Cu0026signature%3D4BF83995FF0AC38791B7A8BE3F6C26DEE4D0ED30.31FCD42C01DB076DA98A77B175F58F3D809D3D4E%5Cu0026asr_langs%3Dpt%252Ces%252Cru%252Cnl%252Cde%252Cit%252Cko%252Cen%252Cja%252Cfr%5Cu0026sparams%3Dasr_langs%252Ccaps%252Cv%252Cexpire%5Cu0026key%3Dyttt1%5Cu0026hl%3Den_US%5Cu0026caps%3Dasr%5Cu0026v%3DYLg-LCkYXbI%5Cu0026kind%3Dasr%5Cu0026lang%3Den%22%2C%22name%22%3A%7B%22simpleText%22%3A%22English+%28auto-generated%29%22%7D%2C%22vssId%22%3A%22a.en%22%2C%22languageCode%22%3A%22en%22%2C%22kind%22%3A%22asr%22%2C%22isTranslatable%22%3Atrue%7D%5D%2C%22audioTracks%22%3A%5B%7B%22captionTrackIndices%22%3A%5B0%5D%2C%22visibility%22%3A%22UNKNOWN%22%7D%5D%2C%22translationLanguages%22%3A%5B%7B%22languageCode%22%3A%22af%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Afrikaans%22%7D%7D%2C%7B%22languageCode%22%3A%22sq%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Albanian%22%7D%7D%2C%7B%22languageCode%22%3A%22am%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Amharic%22%7D%7D%2C%7B%22languageCode%22%3A%22ar%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Arabic%22%7D%7D%2C%7B%22languageCode%22%3A%22hy%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Armenian%22%7D%7D%2C%7B%22languageCode%22%3A%22az%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Azerbaijani%22%7D%7D%2C%7B%22languageCode%22%3A%22bn%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Bangla%22%7D%7D%2C%7B%22languageCode%22%3A%22eu%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Basque%22%7D%7D%2C%7B%22languageCode%22%3A%22be%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Belarusian%22%7D%7D%2C%7B%22languageCode%22%3A%22bs%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Bosnian%22%7D%7D%2C%7B%22languageCode%22%3A%22bg%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Bulgarian%22%7D%7D%2C%7B%22languageCode%22%3A%22my%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Burmese%22%7D%7D%2C%7B%22languageCode%22%3A%22ca%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Catalan%22%7D%7D%2C%7B%22languageCode%22%3A%22ceb%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Cebuano%22%7D%7D%2C%7B%22languageCode%22%3A%22zh-Hans%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Chinese+%28Simplified%29%22%7D%7D%2C%7B%22languageCode%22%3A%22zh-Hant%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Chinese+%28Traditional%29%22%7D%7D%2C%7B%22languageCode%22%3A%22co%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Corsican%22%7D%7D%2C%7B%22languageCode%22%3A%22hr%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Croatian%22%7D%7D%2C%7B%22languageCode%22%3A%22cs%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Czech%22%7D%7D%2C%7B%22languageCode%22%3A%22da%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Danish%22%7D%7D%2C%7B%22languageCode%22%3A%22nl%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Dutch%22%7D%7D%2C%7B%22languageCode%22%3A%22en%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22English%22%7D%7D%2C%7B%22languageCode%22%3A%22eo%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Esperanto%22%7D%7D%2C%7B%22languageCode%22%3A%22et%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Estonian%22%7D%7D%2C%7B%22languageCode%22%3A%22fil%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Filipino%22%7D%7D%2C%7B%22languageCode%22%3A%22fi%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Finnish%22%7D%7D%2C%7B%22languageCode%22%3A%22fr%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22French%22%7D%7D%2C%7B%22languageCode%22%3A%22gl%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Galician%22%7D%7D%2C%7B%22languageCode%22%3A%22ka%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Georgian%22%7D%7D%2C%7B%22languageCode%22%3A%22de%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22German%22%7D%7D%2C%7B%22languageCode%22%3A%22el%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Greek%22%7D%7D%2C%7B%22languageCode%22%3A%22gu%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Gujarati%22%7D%7D%2C%7B%22languageCode%22%3A%22ht%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Haitian+Creole%22%7D%7D%2C%7B%22languageCode%22%3A%22ha%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Hausa%22%7D%7D%2C%7B%22languageCode%22%3A%22haw%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Hawaiian%22%7D%7D%2C%7B%22languageCode%22%3A%22iw%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Hebrew%22%7D%7D%2C%7B%22languageCode%22%3A%22hi%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Hindi%22%7D%7D%2C%7B%22languageCode%22%3A%22hmn%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Hmong%22%7D%7D%2C%7B%22languageCode%22%3A%22hu%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Hungarian%22%7D%7D%2C%7B%22languageCode%22%3A%22is%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Icelandic%22%7D%7D%2C%7B%22languageCode%22%3A%22ig%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Igbo%22%7D%7D%2C%7B%22languageCode%22%3A%22id%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Indonesian%22%7D%7D%2C%7B%22languageCode%22%3A%22ga%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Irish%22%7D%7D%2C%7B%22languageCode%22%3A%22it%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Italian%22%7D%7D%2C%7B%22languageCode%22%3A%22ja%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Japanese%22%7D%7D%2C%7B%22languageCode%22%3A%22jv%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Javanese%22%7D%7D%2C%7B%22languageCode%22%3A%22kn%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Kannada%22%7D%7D%2C%7B%22languageCode%22%3A%22kk%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Kazakh%22%7D%7D%2C%7B%22languageCode%22%3A%22km%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Khmer%22%7D%7D%2C%7B%22languageCode%22%3A%22ko%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Korean%22%7D%7D%2C%7B%22languageCode%22%3A%22ku%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Kurdish%22%7D%7D%2C%7B%22languageCode%22%3A%22ky%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Kyrgyz%22%7D%7D%2C%7B%22languageCode%22%3A%22lo%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Lao%22%7D%7D%2C%7B%22languageCode%22%3A%22la%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Latin%22%7D%7D%2C%7B%22languageCode%22%3A%22lv%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Latvian%22%7D%7D%2C%7B%22languageCode%22%3A%22lt%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Lithuanian%22%7D%7D%2C%7B%22languageCode%22%3A%22lb%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Luxembourgish%22%7D%7D%2C%7B%22languageCode%22%3A%22mk%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Macedonian%22%7D%7D%2C%7B%22languageCode%22%3A%22mg%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Malagasy%22%7D%7D%2C%7B%22languageCode%22%3A%22ms%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Malay%22%7D%7D%2C%7B%22languageCode%22%3A%22ml%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Malayalam%22%7D%7D%2C%7B%22languageCode%22%3A%22mt%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Maltese%22%7D%7D%2C%7B%22languageCode%22%3A%22mi%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Maori%22%7D%7D%2C%7B%22languageCode%22%3A%22mr%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Marathi%22%7D%7D%2C%7B%22languageCode%22%3A%22mn%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Mongolian%22%7D%7D%2C%7B%22languageCode%22%3A%22ne%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Nepali%22%7D%7D%2C%7B%22languageCode%22%3A%22no%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Norwegian%22%7D%7D%2C%7B%22languageCode%22%3A%22ny%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Nyanja%22%7D%7D%2C%7B%22languageCode%22%3A%22ps%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Pashto%22%7D%7D%2C%7B%22languageCode%22%3A%22fa%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Persian%22%7D%7D%2C%7B%22languageCode%22%3A%22pl%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Polish%22%7D%7D%2C%7B%22languageCode%22%3A%22pt%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Portuguese%22%7D%7D%2C%7B%22languageCode%22%3A%22pa%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Punjabi%22%7D%7D%2C%7B%22languageCode%22%3A%22ro%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Romanian%22%7D%7D%2C%7B%22languageCode%22%3A%22ru%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Russian%22%7D%7D%2C%7B%22languageCode%22%3A%22sm%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Samoan%22%7D%7D%2C%7B%22languageCode%22%3A%22gd%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Scottish+Gaelic%22%7D%7D%2C%7B%22languageCode%22%3A%22sr%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Serbian%22%7D%7D%2C%7B%22languageCode%22%3A%22sn%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Shona%22%7D%7D%2C%7B%22languageCode%22%3A%22sd%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Sindhi%22%7D%7D%2C%7B%22languageCode%22%3A%22si%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Sinhala%22%7D%7D%2C%7B%22languageCode%22%3A%22sk%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Slovak%22%7D%7D%2C%7B%22languageCode%22%3A%22sl%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Slovenian%22%7D%7D%2C%7B%22languageCode%22%3A%22so%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Somali%22%7D%7D%2C%7B%22languageCode%22%3A%22st%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Southern+Sotho%22%7D%7D%2C%7B%22languageCode%22%3A%22es%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Spanish%22%7D%7D%2C%7B%22languageCode%22%3A%22su%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Sundanese%22%7D%7D%2C%7B%22languageCode%22%3A%22sw%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Swahili%22%7D%7D%2C%7B%22languageCode%22%3A%22sv%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Swedish%22%7D%7D%2C%7B%22languageCode%22%3A%22tg%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Tajik%22%7D%7D%2C%7B%22languageCode%22%3A%22ta%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Tamil%22%7D%7D%2C%7B%22languageCode%22%3A%22te%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Telugu%22%7D%7D%2C%7B%22languageCode%22%3A%22th%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Thai%22%7D%7D%2C%7B%22languageCode%22%3A%22tr%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Turkish%22%7D%7D%2C%7B%22languageCode%22%3A%22uk%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Ukrainian%22%7D%7D%2C%7B%22languageCode%22%3A%22ur%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Urdu%22%7D%7D%2C%7B%22languageCode%22%3A%22uz%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Uzbek%22%7D%7D%2C%7B%22languageCode%22%3A%22vi%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Vietnamese%22%7D%7D%2C%7B%22languageCode%22%3A%22cy%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Welsh%22%7D%7D%2C%7B%22languageCode%22%3A%22fy%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Western+Frisian%22%7D%7D%2C%7B%22languageCode%22%3A%22xh%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Xhosa%22%7D%7D%2C%7B%22languageCode%22%3A%22yi%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Yiddish%22%7D%7D%2C%7B%22languageCode%22%3A%22yo%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Yoruba%22%7D%7D%2C%7B%22languageCode%22%3A%22zu%22%2C%22languageName%22%3A%7B%22simpleText%22%3A%22Zulu%22%7D%7D%5D%2C%22defaultAudioTrackIndex%22%3A0%7D%7D%2C%22videoDetails%22%3A%7B%22thumbnail%22%3A%7B%22thumbnails%22%3A%5B%7B%22url%22%3A%22https%3A%2F%2Fi.ytimg.com%2Fvi%2FYLg-LCkYXbI%2Fhqdefault.jpg%3Fsqp%3D-oaymwEWCKgBEF5IWvKriqkDCQgBFQAAiEIYAQ%3D%3D%5Cu0026rs%3DAOn4CLD0lHlyaeo4Dcy-0vBzPCMBKmTLlA%22%2C%22width%22%3A168%2C%22height%22%3A94%7D%2C%7B%22url%22%3A%22https%3A%2F%2Fi.ytimg.com%2Fvi%2FYLg-LCkYXbI%2Fhqdefault.jpg%3Fsqp%3D-oaymwEWCMQBEG5IWvKriqkDCQgBFQAAiEIYAQ%3D%3D%5Cu0026rs%3DAOn4CLA3x2tTxR00CPR4s58500W5CnsT7g%22%2C%22width%22%3A196%2C%22height%22%3A110%7D%2C%7B%22url%22%3A%22https%3A%2F%2Fi.ytimg.com%2Fvi%2FYLg-LCkYXbI%2Fhqdefault.jpg%3Fsqp%3D-oaymwEXCPYBEIoBSFryq4qpAwkIARUAAIhCGAE%3D%5Cu0026rs%3DAOn4CLBZJjSS07XphYFx3jCyv2cLUYy8sA%22%2C%22width%22%3A246%2C%22height%22%3A138%7D%2C%7B%22url%22%3A%22https%3A%2F%2Fi.ytimg.com%2Fvi%2FYLg-LCkYXbI%2Fhqdefault.jpg%3Fsqp%3D-oaymwEXCNACELwBSFryq4qpAwkIARUAAIhCGAE%3D%5Cu0026rs%3DAOn4CLB6rfdLt1OFLGHhQLCJhKMvUtWPEQ%22%2C%22width%22%3A336%2C%22height%22%3A188%7D%5D%7D%7D%2C%22adSafetyReason%22%3A%7B%7D%7D&ssl=1&keywords=Day4&ismb=2100000&allow_ratings=1&title=CKC+2017+-+Junior+Men%27s+C15+Homme+1000m+FINAL&csi_page_type=embed&video_id=YLg-LCkYXbI&iv_invideo_url=https%3A%2F%2Fwww.youtube.com%2Fannotations_invideo%3Fcap_hist%3D1%26video_id%3DYLg-LCkYXbI%26client%3D1%26ei%3DLDnwWceJIsux-APbsaywCQ&thumbnail_url=https%3A%2F%2Fi.ytimg.com%2Fvi%2FYLg-LCkYXbI%2Fdefault.jpg&iv_allow_in_place_switch=1&player_error_log_fraction=1.0&allow_embed=1", + "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=\"41,39,38,37,35\"", + "Set-Cookie" : "YSC=QGajfXkFGpg; path=\/; domain=.youtube.com; httponly", + "Server" : "YouTube Frontend Proxy", + "Content-Encoding" : "br", + "X-XSS-Protection" : "1; mode=block; report=https:\/\/www.google.com\/appserve\/security-bugs\/log\/youtube", + "Expires" : "Tue, 27 Apr 1971 19:44:06 EST", + "Cache-Control" : "no-store", + "Date" : "Wed, 25 Oct 2017 07:11:40 GMT", + "Strict-Transport-Security" : "max-age=31536000", + "Content-Length" : "8386", + "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=YLg-LCkYXbI" + } +] \ No newline at end of file diff --git a/XCDYouTubeKit Tests/XCDYouTubeClientTestCase.m b/XCDYouTubeKit Tests/XCDYouTubeClientTestCase.m index 2fcd93149..87477fc9a 100644 --- a/XCDYouTubeKit Tests/XCDYouTubeClientTestCase.m +++ b/XCDYouTubeKit Tests/XCDYouTubeClientTestCase.m @@ -69,6 +69,17 @@ - (void)testVideoWithDashManifest [self waitForExpectationsWithTimeout:5 handler:nil]; } +- (void)testConnectionErrorWithDashManifest +{ + __weak XCTestExpectation *expectation = [self expectationWithDescription:@""]; + [[XCDYouTubeClient defaultClient] getVideoWithIdentifier:@"YLg-LCkYXbI" completionHandler:^(XCDYouTubeVideo *video, NSError *error) + { + XCTAssertNotNil(video); + [expectation fulfill]; + }]; + [self waitForExpectationsWithTimeout:70 handler:nil]; +} + - (void) testVideoWithUndeterminedCaptionLanguageCode { __weak XCTestExpectation *expectation = [self expectationWithDescription:@""]; From 95bd6cbf903d6252f6dd063900cb09ff2d8e61b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sonee=CC=81=20John?= Date: Wed, 25 Oct 2017 03:14:13 -0400 Subject: [PATCH 22/52] Add early return in case of network error (XCDYouTubeRequestTypeDashManifest) #354 #356 --- XCDYouTubeKit/XCDYouTubeVideoOperation.m | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/XCDYouTubeKit/XCDYouTubeVideoOperation.m b/XCDYouTubeKit/XCDYouTubeVideoOperation.m index 2358c4a61..c2402f295 100644 --- a/XCDYouTubeKit/XCDYouTubeVideoOperation.m +++ b/XCDYouTubeKit/XCDYouTubeVideoOperation.m @@ -189,9 +189,11 @@ - (void) handleConnectionSuccessWithData:(NSData *)data response:(NSURLResponse - (void) handleConnectionError:(NSError *)connectionError requestType:(XCDYouTubeRequestType)requestType { //Shoud not return a connection error if was as a result of requesting the Dash Manifiest (we have a sucessfully created `XCDYouTubeVideo` and should just finish the operation as if were a 'sucessful' one - if (requestType == XCDYouTubeRequestTypeDashManifest) + if (requestType == XCDYouTubeRequestTypeDashManifest) { [self finishWithVideo:self.lastSucessfulVideo]; - + return; + } + NSDictionary *userInfo = @{ NSLocalizedDescriptionKey: connectionError.localizedDescription, NSUnderlyingErrorKey: connectionError }; self.lastError = [NSError errorWithDomain:XCDYouTubeVideoErrorDomain code:XCDYouTubeErrorNetwork userInfo:userInfo]; From 7df2a25bcecd36a83249a1e7c84bcbd506e4b863 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sonee=CC=81=20John?= Date: Wed, 25 Oct 2017 08:55:09 -0400 Subject: [PATCH 23/52] Fix curly brace from K&R style to Allman style 95bd6cbf903d6252f6dd063900cb09ff2d8e61b5 --- XCDYouTubeKit/XCDYouTubeVideoOperation.m | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/XCDYouTubeKit/XCDYouTubeVideoOperation.m b/XCDYouTubeKit/XCDYouTubeVideoOperation.m index c2402f295..d508d1331 100644 --- a/XCDYouTubeKit/XCDYouTubeVideoOperation.m +++ b/XCDYouTubeKit/XCDYouTubeVideoOperation.m @@ -189,7 +189,8 @@ - (void) handleConnectionSuccessWithData:(NSData *)data response:(NSURLResponse - (void) handleConnectionError:(NSError *)connectionError requestType:(XCDYouTubeRequestType)requestType { //Shoud not return a connection error if was as a result of requesting the Dash Manifiest (we have a sucessfully created `XCDYouTubeVideo` and should just finish the operation as if were a 'sucessful' one - if (requestType == XCDYouTubeRequestTypeDashManifest) { + if (requestType == XCDYouTubeRequestTypeDashManifest) + { [self finishWithVideo:self.lastSucessfulVideo]; return; } From 586e7b91b9ee45368c7df670337419e774963752 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sonee=CC=81=20John?= Date: Mon, 30 Oct 2017 02:09:01 -0400 Subject: [PATCH 24/52] Only continue if manifest is static --- XCDYouTubeKit/XCDYouTubeDashManifestXML.m | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/XCDYouTubeKit/XCDYouTubeDashManifestXML.m b/XCDYouTubeKit/XCDYouTubeDashManifestXML.m index 3c11338da..c1e1507f0 100644 --- a/XCDYouTubeKit/XCDYouTubeDashManifestXML.m +++ b/XCDYouTubeKit/XCDYouTubeDashManifestXML.m @@ -27,6 +27,18 @@ - (instancetype)initWithXMLString:(NSString *)XMLString - (NSDictionary *)streamURLs { + + //Catch the type + NSError *xmlTypeRegexError = NULL; + NSRegularExpression *xmlTypeRegex = [NSRegularExpression regularExpressionWithPattern:@"(?<=(type=\"))(\\w|\\d|\\n|[().,\\-:;@#$%^&*\\[\\]\"'+–/\\/®°⁰!?{}|`~]| )+?(?=(\"))" options:NSRegularExpressionAnchorsMatchLines error:&xmlTypeRegexError]; + if (xmlTypeRegexError) + return nil; + NSTextCheckingResult *xmlTypeRegexCheckingResult = [xmlTypeRegex firstMatchInString:self.XMLString options:0 range:NSMakeRange(0, self.XMLString.length)]; + + NSString *xmlType = [self.XMLString substringWithRange:xmlTypeRegexCheckingResult.range]; + if (![xmlType containsString:@"static"]) + return nil; + //Catch all URLs NSError *error = nil; NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"(?<=())(\\w|\\d|\\n|[().,\\-:;@#$%^&*\\[\\]\"'+–/\\/®°⁰!?{}|`~]| )+?(?=())" options:0 error:&error]; From ffc3c60dc1411e339cc84158ca6c9225b8ca01a0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sonee=CC=81=20John?= Date: Mon, 30 Oct 2017 02:12:47 -0400 Subject: [PATCH 25/52] Avoid DRM protected manifests --- XCDYouTubeKit/XCDYouTubeDashManifestXML.m | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/XCDYouTubeKit/XCDYouTubeDashManifestXML.m b/XCDYouTubeKit/XCDYouTubeDashManifestXML.m index c1e1507f0..decfc94bc 100644 --- a/XCDYouTubeKit/XCDYouTubeDashManifestXML.m +++ b/XCDYouTubeKit/XCDYouTubeDashManifestXML.m @@ -39,6 +39,10 @@ - (NSDictionary *)streamURLs if (![xmlType containsString:@"static"]) return nil; + //Do not process manifests that have DRM protection + if ([self.XMLString containsString:@"ContentProtection"] || [self.XMLString containsString:@"mp4protection"]) + return nil; + //Catch all URLs NSError *error = nil; NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"(?<=())(\\w|\\d|\\n|[().,\\-:;@#$%^&*\\[\\]\"'+–/\\/®°⁰!?{}|`~]| )+?(?=())" options:0 error:&error]; From 3dbc561d23b1946f3845560dca77f2435b0dfd65 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sonee=CC=81=20John?= Date: Mon, 30 Oct 2017 02:24:19 -0400 Subject: [PATCH 26/52] =?UTF-8?q?Remove=20-containsString:=20because=20it?= =?UTF-8?q?=E2=80=99s=20not=20available=20on=20macOS=2010.9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- XCDYouTubeKit/XCDYouTubeDashManifestXML.m | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/XCDYouTubeKit/XCDYouTubeDashManifestXML.m b/XCDYouTubeKit/XCDYouTubeDashManifestXML.m index decfc94bc..ea7565645 100644 --- a/XCDYouTubeKit/XCDYouTubeDashManifestXML.m +++ b/XCDYouTubeKit/XCDYouTubeDashManifestXML.m @@ -34,13 +34,16 @@ - (NSDictionary *)streamURLs if (xmlTypeRegexError) return nil; NSTextCheckingResult *xmlTypeRegexCheckingResult = [xmlTypeRegex firstMatchInString:self.XMLString options:0 range:NSMakeRange(0, self.XMLString.length)]; - NSString *xmlType = [self.XMLString substringWithRange:xmlTypeRegexCheckingResult.range]; - if (![xmlType containsString:@"static"]) + + NSRange staticRange = [xmlType rangeOfString:@"static" options:0]; + if (staticRange.location == NSNotFound) return nil; //Do not process manifests that have DRM protection - if ([self.XMLString containsString:@"ContentProtection"] || [self.XMLString containsString:@"mp4protection"]) + NSRange contentProtectionRange = [self.XMLString rangeOfString:@"ContentProtection" options:0]; + NSRange mp4ProtectionRange = [self.XMLString rangeOfString:@"mp4protection" options:0]; + if (contentProtectionRange.location != NSNotFound || mp4ProtectionRange.location != NSNotFound) return nil; //Catch all URLs @@ -63,7 +66,10 @@ - (NSDictionary *)streamURLs NSString* substringForMatch = [self.XMLString substringWithRange:checkingResult.range]; NSURL *url = [NSURL URLWithString:substringForMatch]; - if ([url.absoluteString containsString:@"youtube"] && [url.absoluteString containsString:@"itag"]) + NSRange youtubeRange = [url.absoluteString rangeOfString:@"youtube" options:0]; + NSRange itagnRange = [url.absoluteString rangeOfString:@"itag" options:0]; + + if (youtubeRange.location != NSNotFound && itagnRange.location != NSNotFound ) { [URLs addObject:url]; } From 5698d4e8f0bb5fbf683aa4f3ad3475a8100ee7dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sonee=CC=81=20John?= Date: Mon, 30 Oct 2017 02:26:08 -0400 Subject: [PATCH 27/52] Reduce test timeout to 5 seconds --- XCDYouTubeKit Tests/XCDYouTubeClientTestCase.m | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/XCDYouTubeKit Tests/XCDYouTubeClientTestCase.m b/XCDYouTubeKit Tests/XCDYouTubeClientTestCase.m index 87477fc9a..f99838747 100644 --- a/XCDYouTubeKit Tests/XCDYouTubeClientTestCase.m +++ b/XCDYouTubeKit Tests/XCDYouTubeClientTestCase.m @@ -77,7 +77,7 @@ - (void)testConnectionErrorWithDashManifest XCTAssertNotNil(video); [expectation fulfill]; }]; - [self waitForExpectationsWithTimeout:70 handler:nil]; + [self waitForExpectationsWithTimeout:5 handler:nil]; } - (void) testVideoWithUndeterminedCaptionLanguageCode From 740bea4cd34f17c89d670c29afbd1921b1171216 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sone=C3=A9=20John?= Date: Fri, 14 Sep 2018 01:10:48 -0400 Subject: [PATCH 28/52] Update regular expressions to get signature --- XCDYouTubeKit/XCDYouTubePlayerScript.m | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/XCDYouTubeKit/XCDYouTubePlayerScript.m b/XCDYouTubeKit/XCDYouTubePlayerScript.m index 008b4c8ae..e62e9f374 100644 --- a/XCDYouTubeKit/XCDYouTubePlayerScript.m +++ b/XCDYouTubeKit/XCDYouTubePlayerScript.m @@ -68,7 +68,29 @@ - (instancetype) initWithString:(NSString *)string XCDYouTubeLogWarning(@"Unexpected player script (no anonymous function found)"); } - NSRegularExpression *signatureRegularExpression = [NSRegularExpression regularExpressionWithPattern:@"[\"']signature[\"']\\s*,\\s*([^\\(]+)" options:NSRegularExpressionCaseInsensitive error:NULL]; + //See list of regex patterns here https://github.com/rg3/youtube-dl/blob/master/youtube_dl/extractor/youtube.py#L1179 + NSArray*patterns = @[@"/.sig\\|\\|([[a-zA-Z0-9$]+)\\(", + @"[\"']signature[\"']\\s*,\\s*([^\\(]+)", + @"yt\\.akamaized\\.net/\\)\\s*\\|\\|\\s*.*?\\s*c\\s*&&d.set\\([^,]+\\s*,\\s*(?[a-zA-Z0-9$]+)", + @"\\bcs*&&\\s*d\\.set\\([^,]+\\s*,\\s*([a-zA-Z0-9$]+)\\C" + ]; + + NSRegularExpression *signatureRegularExpression = nil; + NSArray *signatureResults = nil; + + for (NSString *pattern in patterns) { + + NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:pattern options:NSRegularExpressionCaseInsensitive error:NULL]; + NSArray *regexResults = [regex matchesInString:script options:(NSMatchingOptions)0 range:NSMakeRange(0, script.length)]; + + if (regexResults.count != 0) + { + signatureRegularExpression = regex; + signatureResults = regexResults; + break; + } + } + for (NSTextCheckingResult *signatureResult in [signatureRegularExpression matchesInString:script options:(NSMatchingOptions)0 range:NSMakeRange(0, script.length)]) { NSString *signatureFunctionName = signatureResult.numberOfRanges > 1 ? [script substringWithRange:[signatureResult rangeAtIndex:1]] : nil; From f0b1ef7b13c2d3cb188cd94b8c192ae4e4f7a61d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sonee=CC=81=20John?= Date: Fri, 14 Sep 2018 01:22:51 -0400 Subject: [PATCH 29/52] Update to XCDYouTubePlayerScript MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Soneé John --- XCDYouTubeKit/XCDYouTubePlayerScript.m | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/XCDYouTubeKit/XCDYouTubePlayerScript.m b/XCDYouTubeKit/XCDYouTubePlayerScript.m index e62e9f374..bfe6b9d81 100644 --- a/XCDYouTubeKit/XCDYouTubePlayerScript.m +++ b/XCDYouTubeKit/XCDYouTubePlayerScript.m @@ -75,7 +75,7 @@ - (instancetype) initWithString:(NSString *)string @"\\bcs*&&\\s*d\\.set\\([^,]+\\s*,\\s*([a-zA-Z0-9$]+)\\C" ]; - NSRegularExpression *signatureRegularExpression = nil; + NSArray *signatureResults = nil; for (NSString *pattern in patterns) { @@ -85,13 +85,12 @@ - (instancetype) initWithString:(NSString *)string if (regexResults.count != 0) { - signatureRegularExpression = regex; signatureResults = regexResults; break; } } - for (NSTextCheckingResult *signatureResult in [signatureRegularExpression matchesInString:script options:(NSMatchingOptions)0 range:NSMakeRange(0, script.length)]) + for (NSTextCheckingResult *signatureResult in signatureResults) { NSString *signatureFunctionName = signatureResult.numberOfRanges > 1 ? [script substringWithRange:[signatureResult rangeAtIndex:1]] : nil; if (!signatureFunctionName) From 137ac194a9d5746ab217b7aec61b78cf67afbb32 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sonee=CC=81=20John?= Date: Fri, 14 Sep 2018 01:43:46 -0400 Subject: [PATCH 30/52] Changed logic to get regex with valid signature MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Soneé John --- XCDYouTubeKit/XCDYouTubePlayerScript.m | 42 +++++++++++++------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/XCDYouTubeKit/XCDYouTubePlayerScript.m b/XCDYouTubeKit/XCDYouTubePlayerScript.m index bfe6b9d81..ccd896e49 100644 --- a/XCDYouTubeKit/XCDYouTubePlayerScript.m +++ b/XCDYouTubeKit/XCDYouTubePlayerScript.m @@ -74,35 +74,35 @@ - (instancetype) initWithString:(NSString *)string @"yt\\.akamaized\\.net/\\)\\s*\\|\\|\\s*.*?\\s*c\\s*&&d.set\\([^,]+\\s*,\\s*(?[a-zA-Z0-9$]+)", @"\\bcs*&&\\s*d\\.set\\([^,]+\\s*,\\s*([a-zA-Z0-9$]+)\\C" ]; - - - NSArray *signatureResults = nil; + + NSMutableArray*validRegularExpressions = [NSMutableArray new]; for (NSString *pattern in patterns) { - NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:pattern options:NSRegularExpressionCaseInsensitive error:NULL]; - NSArray *regexResults = [regex matchesInString:script options:(NSMatchingOptions)0 range:NSMakeRange(0, script.length)]; - - if (regexResults.count != 0) + if (regex != nil) { - signatureResults = regexResults; - break; + [validRegularExpressions addObject:regex]; } } - for (NSTextCheckingResult *signatureResult in signatureResults) - { - NSString *signatureFunctionName = signatureResult.numberOfRanges > 1 ? [script substringWithRange:[signatureResult rangeAtIndex:1]] : nil; - if (!signatureFunctionName) - continue; + for (NSRegularExpression *regularExpression in validRegularExpressions) { - JSValue *signatureFunction = self.context[signatureFunctionName]; - if (signatureFunction.isObject) - { - _signatureFunction = signatureFunction; - break; - } - } + NSArray *regexResults = [regularExpression matchesInString:script options:(NSMatchingOptions)0 range:NSMakeRange(0, script.length)]; + + for (NSTextCheckingResult *signatureResult in regexResults) + { + NSString *signatureFunctionName = signatureResult.numberOfRanges > 1 ? [script substringWithRange:[signatureResult rangeAtIndex:1]] : nil; + if (!signatureFunctionName) + continue; + + JSValue *signatureFunction = self.context[signatureFunctionName]; + if (signatureFunction.isObject) + { + _signatureFunction = signatureFunction; + break; + } + } + } if (!_signatureFunction) XCDYouTubeLogWarning(@"No signature function in player script"); From 0db90ea0dda183bed2058303948ad79939c66608 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sonee=CC=81=20John?= Date: Fri, 14 Sep 2018 03:06:29 -0400 Subject: [PATCH 31/52] Fix regular expression MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Soneé John --- XCDYouTubeKit/XCDYouTubePlayerScript.m | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/XCDYouTubeKit/XCDYouTubePlayerScript.m b/XCDYouTubeKit/XCDYouTubePlayerScript.m index ccd896e49..39705d5a1 100644 --- a/XCDYouTubeKit/XCDYouTubePlayerScript.m +++ b/XCDYouTubeKit/XCDYouTubePlayerScript.m @@ -69,7 +69,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 = @[@"/.sig\\|\\|([[a-zA-Z0-9$]+)\\(", + NSArray*patterns = @[@"\\.sig\\|\\|(?[a-zA-Z0-9$]+)\\(", @"[\"']signature[\"']\\s*,\\s*([^\\(]+)", @"yt\\.akamaized\\.net/\\)\\s*\\|\\|\\s*.*?\\s*c\\s*&&d.set\\([^,]+\\s*,\\s*(?[a-zA-Z0-9$]+)", @"\\bcs*&&\\s*d\\.set\\([^,]+\\s*,\\s*([a-zA-Z0-9$]+)\\C" From 3e278bea8a6a78cacf665f55ec937a815ee0abb1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sonee=CC=81=20John?= Date: Sun, 16 Sep 2018 14:19:15 -0400 Subject: [PATCH 32/52] Remove named capture groups MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Unsupported on lower operating systems i.e macOS 10.10 Signed-off-by: Soneé John --- XCDYouTubeKit/XCDYouTubePlayerScript.m | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/XCDYouTubeKit/XCDYouTubePlayerScript.m b/XCDYouTubeKit/XCDYouTubePlayerScript.m index 39705d5a1..5ae96cea5 100644 --- a/XCDYouTubeKit/XCDYouTubePlayerScript.m +++ b/XCDYouTubeKit/XCDYouTubePlayerScript.m @@ -69,9 +69,9 @@ - (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 = @[@"\\.sig\\|\\|(?[a-zA-Z0-9$]+)\\(", + NSArray*patterns = @[@"\\.sig\\|\\|([a-zA-Z0-9$]+)\\(", @"[\"']signature[\"']\\s*,\\s*([^\\(]+)", - @"yt\\.akamaized\\.net/\\)\\s*\\|\\|\\s*.*?\\s*c\\s*&&d.set\\([^,]+\\s*,\\s*(?[a-zA-Z0-9$]+)", + @"yt\\.akamaized\\.net/\\)\\s*\\|\\|\\s*.*?\\s*c\\s*&&d.set\\([^,]+\\s*,\\s*([a-zA-Z0-9$]+)", @"\\bcs*&&\\s*d\\.set\\([^,]+\\s*,\\s*([a-zA-Z0-9$]+)\\C" ]; From 5b03a5dd314e0fad79baac72b3a7b6c4ac8630dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sone=C3=A9=20John?= Date: Sun, 23 Sep 2018 15:57:51 -0400 Subject: [PATCH 33/52] Improve extraction of videos that contain a prompt (fixes #394) (e.g. Controversy videos) --- XCDYouTubeKit/XCDYouTubeVideoOperation.m | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/XCDYouTubeKit/XCDYouTubeVideoOperation.m b/XCDYouTubeKit/XCDYouTubeVideoOperation.m index ec971ddff..354e7c060 100644 --- a/XCDYouTubeKit/XCDYouTubeVideoOperation.m +++ b/XCDYouTubeKit/XCDYouTubeVideoOperation.m @@ -112,7 +112,7 @@ - (void) startNextRequest - (void) startWatchPageRequest { - NSDictionary *query = @{ @"v": self.videoIdentifier, @"hl": self.languageIdentifier, @"has_verified": @YES }; + NSDictionary *query = @{ @"v": self.videoIdentifier, @"hl": self.languageIdentifier, @"has_verified": @YES, @"bpctr": @9999999999 }; NSString *queryString = XCDQueryStringWithDictionary(query); NSURL *webpageURL = [NSURL URLWithString:[@"https://www.youtube.com/watch?" stringByAppendingString:queryString]]; [self startRequestWithURL:webpageURL type:XCDYouTubeRequestTypeWatchPage]; From 3e290c481ab8a29560bdabf5b7ba5bf712f76f0c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sonee=CC=81=20John?= Date: Sun, 23 Sep 2018 16:04:33 -0400 Subject: [PATCH 34/52] Update tests --- .../XCDYouTubeClientTestCase.m | 15 +++----------- .../XCDYouTubeProtectedVideosTestCase.m | 20 +++++++------------ 2 files changed, 10 insertions(+), 25 deletions(-) diff --git a/XCDYouTubeKit Tests/XCDYouTubeClientTestCase.m b/XCDYouTubeKit Tests/XCDYouTubeClientTestCase.m index c2117ace8..9c9e8a129 100644 --- a/XCDYouTubeKit Tests/XCDYouTubeClientTestCase.m +++ b/XCDYouTubeKit Tests/XCDYouTubeClientTestCase.m @@ -32,8 +32,6 @@ - (void) testThatVideoHasMetadata XCTAssertEqualObjects(video.identifier, @"9TTioMbNT9I"); XCTAssertEqualObjects(video.title, @"Super Mario Bros Theme Song on Wine Glasses and a Frying Pan (슈퍼 마리오 브라더스 - スーパーマリオブラザーズ - 超級瑪莉)"); XCTAssertNotNil(video.smallThumbnailURL); - XCTAssertNotNil(video.mediumThumbnailURL); - XCTAssertNotNil(video.largeThumbnailURL); XCTAssertTrue(video.streamURLs.count > 0); XCTAssertTrue(video.duration > 0); [expectation fulfill]; @@ -50,8 +48,6 @@ - (void) testMobileRestrictedVideo XCTAssertNotNil(video.title); XCTAssertNotNil(video.expirationDate); XCTAssertNotNil(video.smallThumbnailURL); - XCTAssertNotNil(video.mediumThumbnailURL); - XCTAssertNotNil(video.largeThumbnailURL); XCTAssertTrue(video.streamURLs.count > 0); XCTAssertTrue(video.duration > 0); [video.streamURLs enumerateKeysAndObjectsUsingBlock:^(NSNumber *key, NSURL *streamURL, BOOL *stop) { @@ -65,15 +61,11 @@ - (void) testMobileRestrictedVideo - (void) testLiveVideo { __weak XCTestExpectation *expectation = [self expectationWithDescription:@""]; - [[XCDYouTubeClient defaultClient] getVideoWithIdentifier:@"y60wDzZt8yg" completionHandler:^(XCDYouTubeVideo *video, NSError *error) + [[XCDYouTubeClient defaultClient] getVideoWithIdentifier:@"6EOLGg-JkhM" completionHandler:^(XCDYouTubeVideo *video, NSError *error) { XCTAssertNil(error); - XCTAssertNil(video.expirationDate); XCTAssertNotNil(video.title); XCTAssertNotNil(video.smallThumbnailURL); - XCTAssertNotNil(video.mediumThumbnailURL); - XCTAssertNotNil(video.largeThumbnailURL); - XCTAssertEqual(video.streamURLs.count, 1U); XCTAssertNotNil(video.streamURLs[XCDYouTubeVideoQualityHTTPLiveStreaming]); [expectation fulfill]; }]; @@ -103,7 +95,7 @@ - (void) testRestrictedVideo XCTAssertNil(video); XCTAssertEqualObjects(error.domain, XCDYouTubeVideoErrorDomain); XCTAssertEqual(error.code, XCDYouTubeErrorRestrictedPlayback); - XCTAssertEqualObjects(error.localizedDescription, @"This video contains content from Youtube test content owner, who has blocked it on copyright grounds."); + XCTAssertEqualObjects(error.localizedDescription, @"This video is no longer available because the YouTube account associated with this video has been terminated."); [expectation fulfill]; }]; [self waitForExpectationsWithTimeout:5 handler:nil]; @@ -120,7 +112,7 @@ - (void) testRemovedVideo XCTAssertNil(video); XCTAssertEqualObjects(error.domain, XCDYouTubeVideoErrorDomain); XCTAssertEqual(error.code, XCDYouTubeErrorRestrictedPlayback); - XCTAssertEqualObjects(error.localizedDescription, @"\"9/11 The F...\" This video is no longer available due to a copyright claim by Digital Rights Group Ltd."); + XCTAssertEqualObjects(error.localizedDescription, @"\"9/11 The F...\" is no longer available due to a copyright claim by Digital Rights Group Ltd."); [expectation fulfill]; }]; [self waitForExpectationsWithTimeout:5 handler:nil]; @@ -135,7 +127,6 @@ - (void) testGeoblockedVideo XCTAssertEqualObjects(error.domain, XCDYouTubeVideoErrorDomain); XCTAssertEqual(error.code, XCDYouTubeErrorRestrictedPlayback); XCTAssertEqualObjects(error.localizedDescription, @"The uploader has not made this video available in your country."); - XCTAssertEqualObjects(error.userInfo[XCDYouTubeAllowedCountriesUserInfoKey], [NSSet setWithArray:(@[ @"American Samoa", @"Canada", @"Guam", @"Northern Mariana Islands", @"Puerto Rico", @"U.S. Outlying Islands", @"United States", @"U.S. Virgin Islands" ])]); [expectation fulfill]; }]; [self waitForExpectationsWithTimeout:5 handler:nil]; diff --git a/XCDYouTubeKit Tests/XCDYouTubeProtectedVideosTestCase.m b/XCDYouTubeKit Tests/XCDYouTubeProtectedVideosTestCase.m index a6837f309..dc279b7e6 100644 --- a/XCDYouTubeKit Tests/XCDYouTubeProtectedVideosTestCase.m +++ b/XCDYouTubeKit Tests/XCDYouTubeProtectedVideosTestCase.m @@ -20,8 +20,7 @@ - (void) testAgeRestrictedVideo XCTAssertNotNil(video.title); XCTAssertNotNil(video.expirationDate); XCTAssertNotNil(video.smallThumbnailURL); - XCTAssertNotNil(video.mediumThumbnailURL); - XCTAssertNotNil(video.largeThumbnailURL); + XCTAssertTrue(video.streamURLs.count > 0); XCTAssertTrue(video.duration > 0); [video.streamURLs enumerateKeysAndObjectsUsingBlock:^(NSNumber *key, NSURL *streamURL, BOOL *stop) @@ -42,8 +41,7 @@ - (void) testAgeRestrictedUnratedVideo XCTAssertNotNil(video.title); XCTAssertNotNil(video.expirationDate); XCTAssertNotNil(video.smallThumbnailURL); - XCTAssertNotNil(video.mediumThumbnailURL); - XCTAssertNotNil(video.largeThumbnailURL); + XCTAssertTrue(video.streamURLs.count > 0); XCTAssertTrue(video.duration > 0); [video.streamURLs enumerateKeysAndObjectsUsingBlock:^(NSNumber *key, NSURL *streamURL, BOOL *stop) @@ -64,8 +62,7 @@ - (void) testProtectedVEVOVideo1 XCTAssertNotNil(video.title); XCTAssertNotNil(video.expirationDate); XCTAssertNotNil(video.smallThumbnailURL); - XCTAssertNotNil(video.mediumThumbnailURL); - XCTAssertNotNil(video.largeThumbnailURL); + XCTAssertTrue(video.streamURLs.count > 0); XCTAssertTrue(video.duration > 0); [video.streamURLs enumerateKeysAndObjectsUsingBlock:^(NSNumber *key, NSURL *streamURL, BOOL *stop) @@ -86,7 +83,7 @@ - (void) testProtectedVEVOVideo2 XCTAssertNotNil(video.title); XCTAssertNotNil(video.expirationDate); XCTAssertNotNil(video.smallThumbnailURL); - XCTAssertNotNil(video.mediumThumbnailURL); + XCTAssertTrue(video.streamURLs.count > 0); XCTAssertTrue(video.duration > 0); [video.streamURLs enumerateKeysAndObjectsUsingBlock:^(NSNumber *key, NSURL *streamURL, BOOL *stop) @@ -107,8 +104,7 @@ - (void) testProtectedVEVOVideo3 XCTAssertNotNil(video.title); XCTAssertNotNil(video.expirationDate); XCTAssertNotNil(video.smallThumbnailURL); - XCTAssertNotNil(video.mediumThumbnailURL); - XCTAssertNotNil(video.largeThumbnailURL); + XCTAssertTrue(video.streamURLs.count > 0); XCTAssertTrue(video.duration > 0); [video.streamURLs enumerateKeysAndObjectsUsingBlock:^(NSNumber *key, NSURL *streamURL, BOOL *stop) @@ -129,8 +125,7 @@ - (void) testProtectedVEVOIsPlayable XCTAssertNotNil(video.title); XCTAssertNotNil(video.expirationDate); XCTAssertNotNil(video.smallThumbnailURL); - XCTAssertNotNil(video.mediumThumbnailURL); - XCTAssertNotNil(video.largeThumbnailURL); + XCTAssertTrue(video.streamURLs.count > 0); XCTAssertTrue(video.duration > 0); NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:video.streamURLs[@(XCDYouTubeVideoQualityHD720)]]; @@ -173,8 +168,7 @@ - (void) testAgeRestrictedVEVOVideo XCTAssertNotNil(video.title); XCTAssertNotNil(video.expirationDate); XCTAssertNotNil(video.smallThumbnailURL); - XCTAssertNotNil(video.mediumThumbnailURL); - XCTAssertNotNil(video.largeThumbnailURL); + XCTAssertTrue(video.streamURLs.count > 0); XCTAssertTrue(video.duration > 0); [video.streamURLs enumerateKeysAndObjectsUsingBlock:^(NSNumber *key, NSURL *streamURL, BOOL *stop) From 91a74d6d2496406fdcf86828dd19ae47a5da9814 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sonee=CC=81=20John?= Date: Sun, 23 Sep 2018 17:50:03 -0400 Subject: [PATCH 35/52] Update cassettes for some tests --- .../testProtectedVEVOVideo2.json | 67 +++++------ .../testProtectedVEVOVideo3.json | 83 ++++++------- ...ectedVideoWithBrokenSignatureFunction.json | 97 +++++++++------- ...hNonAnonymousJavaScriptPlayerFunction.json | 109 +++++++++--------- ...tectedVideoWithoutJavaScriptPlayerURL.json | 107 +++++++++-------- ...rotectedVideoWithoutSignatureFunction.json | 107 +++++++++-------- .../XCDYouTubeProtectedVideosTestCase.m | 14 +-- 7 files changed, 309 insertions(+), 275 deletions(-) diff --git a/XCDYouTubeKit Tests/Cassettes/XCDYouTubeProtectedVideosTestCase/testProtectedVEVOVideo2.json b/XCDYouTubeKit Tests/Cassettes/XCDYouTubeProtectedVideosTestCase/testProtectedVEVOVideo2.json index f74b875af..d592120d7 100644 --- a/XCDYouTubeKit Tests/Cassettes/XCDYouTubeProtectedVideosTestCase/testProtectedVEVOVideo2.json +++ b/XCDYouTubeKit Tests/Cassettes/XCDYouTubeProtectedVideosTestCase/testProtectedVEVOVideo2.json @@ -1,58 +1,58 @@ [ { - "body" : "