mirror of
				https://gitlab.com/ytdl-org/youtube-dl.git
				synced 2025-11-04 02:07:07 -05:00 
			
		
		
		
	[openload] Use original host during extraction (closes #18211)
This commit is contained in:
		@@ -243,7 +243,18 @@ class PhantomJSwrapper(object):
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class OpenloadIE(InfoExtractor):
 | 
			
		||||
    _VALID_URL = r'https?://(?:www\.)?(?:openload\.(?:co|io|link)|oload\.(?:tv|stream|site|xyz|win|download|cloud|cc|icu|fun))/(?:f|embed)/(?P<id>[a-zA-Z0-9-_]+)'
 | 
			
		||||
    _VALID_URL = r'''(?x)
 | 
			
		||||
                    https?://
 | 
			
		||||
                        (?P<host>
 | 
			
		||||
                            (?:www\.)?
 | 
			
		||||
                            (?:
 | 
			
		||||
                                openload\.(?:co|io|link)|
 | 
			
		||||
                                oload\.(?:tv|stream|site|xyz|win|download|cloud|cc|icu|fun)
 | 
			
		||||
                            )
 | 
			
		||||
                        )/
 | 
			
		||||
                        (?:f|embed)/
 | 
			
		||||
                        (?P<id>[a-zA-Z0-9-_]+)
 | 
			
		||||
                    '''
 | 
			
		||||
 | 
			
		||||
    _TESTS = [{
 | 
			
		||||
        'url': 'https://openload.co/f/kUEfGclsU9o',
 | 
			
		||||
@@ -334,8 +345,11 @@ class OpenloadIE(InfoExtractor):
 | 
			
		||||
            webpage)
 | 
			
		||||
 | 
			
		||||
    def _real_extract(self, url):
 | 
			
		||||
        video_id = self._match_id(url)
 | 
			
		||||
        url_pattern = 'https://openload.co/%%s/%s/' % video_id
 | 
			
		||||
        mobj = re.match(self._VALID_URL, url)
 | 
			
		||||
        host = mobj.group('host')
 | 
			
		||||
        video_id = mobj.group('id')
 | 
			
		||||
 | 
			
		||||
        url_pattern = 'https://%s/%%s/%s/' % (host, video_id)
 | 
			
		||||
        headers = {
 | 
			
		||||
            'User-Agent': self._USER_AGENT,
 | 
			
		||||
        }
 | 
			
		||||
@@ -368,7 +382,7 @@ class OpenloadIE(InfoExtractor):
 | 
			
		||||
                           r'>\s*([\w~-]+~[a-f0-9:]+~[\w~-]+)'), webpage,
 | 
			
		||||
                          'stream URL'))
 | 
			
		||||
 | 
			
		||||
        video_url = 'https://openload.co/stream/%s?mime=true' % decoded_id
 | 
			
		||||
        video_url = 'https://%s/stream/%s?mime=true' % (host, decoded_id)
 | 
			
		||||
 | 
			
		||||
        title = self._og_search_title(webpage, default=None) or self._search_regex(
 | 
			
		||||
            r'<span[^>]+class=["\']title["\'][^>]*>([^<]+)', webpage,
 | 
			
		||||
@@ -379,7 +393,7 @@ class OpenloadIE(InfoExtractor):
 | 
			
		||||
        entry = entries[0] if entries else {}
 | 
			
		||||
        subtitles = entry.get('subtitles')
 | 
			
		||||
 | 
			
		||||
        info_dict = {
 | 
			
		||||
        return {
 | 
			
		||||
            'id': video_id,
 | 
			
		||||
            'title': title,
 | 
			
		||||
            'thumbnail': entry.get('thumbnail') or self._og_search_thumbnail(webpage, default=None),
 | 
			
		||||
@@ -388,4 +402,3 @@ class OpenloadIE(InfoExtractor):
 | 
			
		||||
            'subtitles': subtitles,
 | 
			
		||||
            'http_headers': headers,
 | 
			
		||||
        }
 | 
			
		||||
        return info_dict
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user