mirror of
				https://gitlab.com/ytdl-org/youtube-dl.git
				synced 2025-11-04 04:37:06 -05:00 
			
		
		
		
	[theplatform] Correctly extract videos that don't use f4m or rtmp (reported in #3176)
This commit is contained in:
		@@ -21,7 +21,7 @@ class SBSIE(InfoExtractor):
 | 
			
		||||
        'md5': '3150cf278965eeabb5b4cea1c963fe0a',
 | 
			
		||||
        'info_dict': {
 | 
			
		||||
            'id': '320403011771',
 | 
			
		||||
            'ext': 'flv',
 | 
			
		||||
            'ext': 'mp4',
 | 
			
		||||
            'title': 'Dingo Conservation',
 | 
			
		||||
            'description': 'Dingoes are on the brink of extinction; most of the animals we think are dingoes are in fact crossbred with wild dogs. This family run a dingo conservation park to prevent their extinction',
 | 
			
		||||
            'thumbnail': 're:http://.*\.jpg',
 | 
			
		||||
 
 | 
			
		||||
@@ -5,6 +5,7 @@ import json
 | 
			
		||||
 | 
			
		||||
from .common import InfoExtractor
 | 
			
		||||
from ..utils import (
 | 
			
		||||
    compat_str,
 | 
			
		||||
    ExtractorError,
 | 
			
		||||
    xpath_with_ns,
 | 
			
		||||
)
 | 
			
		||||
@@ -55,7 +56,7 @@ class ThePlatformIE(InfoExtractor):
 | 
			
		||||
        body = meta.find(_x('smil:body'))
 | 
			
		||||
 | 
			
		||||
        f4m_node = body.find(_x('smil:seq//smil:video'))
 | 
			
		||||
        if f4m_node is not None:
 | 
			
		||||
        if f4m_node is not None and '.f4m' in f4m_node.attrib['src']:
 | 
			
		||||
            f4m_url = f4m_node.attrib['src']
 | 
			
		||||
            if 'manifest.f4m?' not in f4m_url:
 | 
			
		||||
                f4m_url += '?'
 | 
			
		||||
@@ -64,9 +65,10 @@ class ThePlatformIE(InfoExtractor):
 | 
			
		||||
            f4m_url += '&g=UXWGVKRWHFSP&hdcore=3.0.3'
 | 
			
		||||
            formats = self._extract_f4m_formats(f4m_url, video_id)
 | 
			
		||||
        else:
 | 
			
		||||
            base_url = head.find(_x('smil:meta')).attrib['base']
 | 
			
		||||
            switch = body.find(_x('smil:switch'))
 | 
			
		||||
            formats = []
 | 
			
		||||
            switch = body.find(_x('smil:switch'))
 | 
			
		||||
            if switch is not None:
 | 
			
		||||
                base_url = head.find(_x('smil:meta')).attrib['base']
 | 
			
		||||
                for f in switch.findall(_x('smil:video')):
 | 
			
		||||
                    attr = f.attrib
 | 
			
		||||
                    width = int(attr['width'])
 | 
			
		||||
@@ -82,6 +84,16 @@ class ThePlatformIE(InfoExtractor):
 | 
			
		||||
                        'height': height,
 | 
			
		||||
                        'vbr': vbr,
 | 
			
		||||
                    })
 | 
			
		||||
            else:
 | 
			
		||||
                switch = body.find(_x('smil:seq//smil:switch'))
 | 
			
		||||
                for f in switch.findall(_x('smil:video')):
 | 
			
		||||
                    attr = f.attrib
 | 
			
		||||
                    vbr = int(attr['system-bitrate']) // 1000
 | 
			
		||||
                    formats.append({
 | 
			
		||||
                        'format_id': compat_str(vbr),
 | 
			
		||||
                        'url': attr['src'],
 | 
			
		||||
                        'vbr': vbr,
 | 
			
		||||
                    })
 | 
			
		||||
            self._sort_formats(formats)
 | 
			
		||||
 | 
			
		||||
        return {
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user