mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-10-31 14:45:14 +00:00 
			
		
		
		
	Move the decrypting function to a static method
This commit is contained in:
		| @@ -379,6 +379,17 @@ class YoutubeIE(InfoExtractor): | |||||||
|         """Indicate the download will use the RTMP protocol.""" |         """Indicate the download will use the RTMP protocol.""" | ||||||
|         self.to_screen(u'RTMP download detected') |         self.to_screen(u'RTMP download detected') | ||||||
|  |  | ||||||
|  |     @staticmethod | ||||||
|  |     def _decrypt_signature(s): | ||||||
|  |         """Decrypt the key the two subkeys must have a length of 43""" | ||||||
|  |         (a,b) = s.split('.') | ||||||
|  |         if len(a) != 43 or len(b) != 43: | ||||||
|  |             raise ExtractorError(u'Unable to decrypt signature, subkeys lengths not valid') | ||||||
|  |         b = ''.join([b[:8],a[0],b[9:18],b[-4],b[19:39], b[18]])[0:40] | ||||||
|  |         a = a[-40:] | ||||||
|  |         s_dec = '.'.join((a,b))[::-1] | ||||||
|  |         return s_dec | ||||||
|  |  | ||||||
|     def _get_available_subtitles(self, video_id): |     def _get_available_subtitles(self, video_id): | ||||||
|         self.report_video_subtitles_download(video_id) |         self.report_video_subtitles_download(video_id) | ||||||
|         request = compat_urllib_request.Request('http://video.google.com/timedtext?hl=en&type=list&v=%s' % video_id) |         request = compat_urllib_request.Request('http://video.google.com/timedtext?hl=en&type=list&v=%s' % video_id) | ||||||
| @@ -747,15 +758,8 @@ class YoutubeIE(InfoExtractor): | |||||||
|                     if 'sig' in url_data: |                     if 'sig' in url_data: | ||||||
|                         url += '&signature=' + url_data['sig'][0] |                         url += '&signature=' + url_data['sig'][0] | ||||||
|                     if 's' in url_data: |                     if 's' in url_data: | ||||||
|                         def k(s): |                         signature = self._decrypt_signature(url_data['s'][0]) | ||||||
|                             """Decrypt the key the two subkeys must have a length of 43""" |                         url += '&signature=' + signature | ||||||
|                             (a,b) = s.split('.') |  | ||||||
|                             b = ''.join([b[:8],a[0],b[9:18],b[-4],b[19:39], b[18]])[0:40] |  | ||||||
|                             a = a[-40:] |  | ||||||
|                             s_dec = '.'.join((a,b))[::-1] |  | ||||||
|                             return s_dec |  | ||||||
|                         key = k(url_data['s'][0]) |  | ||||||
|                         url += '&signature=' + key |  | ||||||
|                     if 'ratebypass' not in url: |                     if 'ratebypass' not in url: | ||||||
|                         url += '&ratebypass=yes' |                         url += '&ratebypass=yes' | ||||||
|                     url_map[url_data['itag'][0]] = url |                     url_map[url_data['itag'][0]] = url | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Jaime Marquínez Ferrándiz
					Jaime Marquínez Ferrándiz