mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-11-04 08:35:12 +00:00 
			
		
		
		
	[ooyala] Make more robust
This commit is contained in:
		@@ -3,12 +3,14 @@ import re
 | 
				
			|||||||
import base64
 | 
					import base64
 | 
				
			||||||
 | 
					
 | 
				
			||||||
from .common import InfoExtractor
 | 
					from .common import InfoExtractor
 | 
				
			||||||
 | 
					from ..compat import compat_str
 | 
				
			||||||
from ..utils import (
 | 
					from ..utils import (
 | 
				
			||||||
    int_or_none,
 | 
					 | 
				
			||||||
    float_or_none,
 | 
					 | 
				
			||||||
    ExtractorError,
 | 
					 | 
				
			||||||
    unsmuggle_url,
 | 
					 | 
				
			||||||
    determine_ext,
 | 
					    determine_ext,
 | 
				
			||||||
 | 
					    ExtractorError,
 | 
				
			||||||
 | 
					    float_or_none,
 | 
				
			||||||
 | 
					    int_or_none,
 | 
				
			||||||
 | 
					    try_get,
 | 
				
			||||||
 | 
					    unsmuggle_url,
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
from ..compat import compat_urllib_parse_urlencode
 | 
					from ..compat import compat_urllib_parse_urlencode
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -39,13 +41,15 @@ class OoyalaBaseIE(InfoExtractor):
 | 
				
			|||||||
        formats = []
 | 
					        formats = []
 | 
				
			||||||
        if cur_auth_data['authorized']:
 | 
					        if cur_auth_data['authorized']:
 | 
				
			||||||
            for stream in cur_auth_data['streams']:
 | 
					            for stream in cur_auth_data['streams']:
 | 
				
			||||||
                s_url = base64.b64decode(
 | 
					                url_data = try_get(stream, lambda x: x['url']['data'], compat_str)
 | 
				
			||||||
                    stream['url']['data'].encode('ascii')).decode('utf-8')
 | 
					                if not url_data:
 | 
				
			||||||
 | 
					                    continue
 | 
				
			||||||
 | 
					                s_url = base64.b64decode(url_data.encode('ascii')).decode('utf-8')
 | 
				
			||||||
                if not s_url or s_url in urls:
 | 
					                if not s_url or s_url in urls:
 | 
				
			||||||
                    continue
 | 
					                    continue
 | 
				
			||||||
                urls.append(s_url)
 | 
					                urls.append(s_url)
 | 
				
			||||||
                ext = determine_ext(s_url, None)
 | 
					                ext = determine_ext(s_url, None)
 | 
				
			||||||
                delivery_type = stream['delivery_type']
 | 
					                delivery_type = stream.get('delivery_type')
 | 
				
			||||||
                if delivery_type == 'hls' or ext == 'm3u8':
 | 
					                if delivery_type == 'hls' or ext == 'm3u8':
 | 
				
			||||||
                    formats.extend(self._extract_m3u8_formats(
 | 
					                    formats.extend(self._extract_m3u8_formats(
 | 
				
			||||||
                        re.sub(r'/ip(?:ad|hone)/', '/all/', s_url), embed_code, 'mp4', 'm3u8_native',
 | 
					                        re.sub(r'/ip(?:ad|hone)/', '/all/', s_url), embed_code, 'mp4', 'm3u8_native',
 | 
				
			||||||
@@ -65,7 +69,7 @@ class OoyalaBaseIE(InfoExtractor):
 | 
				
			|||||||
                else:
 | 
					                else:
 | 
				
			||||||
                    formats.append({
 | 
					                    formats.append({
 | 
				
			||||||
                        'url': s_url,
 | 
					                        'url': s_url,
 | 
				
			||||||
                        'ext': ext or stream.get('delivery_type'),
 | 
					                        'ext': ext or delivery_type,
 | 
				
			||||||
                        'vcodec': stream.get('video_codec'),
 | 
					                        'vcodec': stream.get('video_codec'),
 | 
				
			||||||
                        'format_id': delivery_type,
 | 
					                        'format_id': delivery_type,
 | 
				
			||||||
                        'width': int_or_none(stream.get('width')),
 | 
					                        'width': int_or_none(stream.get('width')),
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user