| 
														
															@@ -3121,6 +3121,19 @@ class YoutubeTabIE(YoutubeBaseInfoExtractor): 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             self._playlist_entries(playlist), playlist_id=playlist_id, 
														 | 
														
														 | 
														
															             self._playlist_entries(playlist), playlist_id=playlist_id, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             playlist_title=title) 
														 | 
														
														 | 
														
															             playlist_title=title) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    def _extract_identity_token(self, webpage, item_id): 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        ytcfg = self._parse_json( 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            self._search_regex( 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                r'ytcfg\.set\s*\(\s*({.+?})\s*\)\s*;', webpage, 'ytcfg', 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                default='{}'), item_id, fatal=False) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        if ytcfg: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            token = try_get(ytcfg, lambda x: x['ID_TOKEN'], compat_str) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            if token: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                return token 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        return self._search_regex( 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            r'\bID_TOKEN["\']\s*:\s*["\'](.+?)["\']', webpage, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            'identity token', default=None) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     def _real_extract(self, url): 
														 | 
														
														 | 
														
															     def _real_extract(self, url): 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         item_id = self._match_id(url) 
														 | 
														
														 | 
														
															         item_id = self._match_id(url) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         url = compat_urlparse.urlunparse( 
														 | 
														
														 | 
														
															         url = compat_urlparse.urlunparse( 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -3135,9 +3148,7 @@ class YoutubeTabIE(YoutubeBaseInfoExtractor): 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 return self.url_result(video_id, ie=YoutubeIE.ie_key(), video_id=video_id) 
														 | 
														
														 | 
														
															                 return self.url_result(video_id, ie=YoutubeIE.ie_key(), video_id=video_id) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             self.to_screen('Downloading playlist %s - add --no-playlist to just download video %s' % (playlist_id, video_id)) 
														 | 
														
														 | 
														
															             self.to_screen('Downloading playlist %s - add --no-playlist to just download video %s' % (playlist_id, video_id)) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         webpage = self._download_webpage(url, item_id) 
														 | 
														
														 | 
														
															         webpage = self._download_webpage(url, item_id) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        identity_token = self._search_regex( 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            r'\bID_TOKEN["\']\s*:\s*["\'](.+?)["\']', webpage, 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            'identity token', default=None) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        identity_token = self._extract_identity_token(webpage, item_id) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         data = self._extract_yt_initial_data(item_id, webpage) 
														 | 
														
														 | 
														
															         data = self._extract_yt_initial_data(item_id, webpage) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         tabs = try_get( 
														 | 
														
														 | 
														
															         tabs = try_get( 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             data, lambda x: x['contents']['twoColumnBrowseResultsRenderer']['tabs'], list) 
														 | 
														
														 | 
														
															             data, lambda x: x['contents']['twoColumnBrowseResultsRenderer']['tabs'], list) 
														 |