[YoutubeDL] Change how DashSegmentsFD is selected

pull/2/head
Yen Chi Hsuan 10 years ago
parent 6800d3372f
commit b9258c6178

@ -8,6 +8,7 @@ from .hls import NativeHlsFD
from .http import HttpFD
from .rtsp import RtspFD
from .rtmp import RtmpFD
from .dash import DashSegmentsFD
from ..utils import (
determine_protocol,
@ -20,6 +21,7 @@ PROTOCOL_MAP = {
'mms': RtspFD,
'rtsp': RtspFD,
'f4m': F4mFD,
'dash_segments': DashSegmentsFD,
}

@ -6,7 +6,6 @@ import socket
import time
from .common import FileDownloader
from .dash import DashSegmentsFD
from ..compat import (
compat_urllib_request,
compat_urllib_error,
@ -20,9 +19,6 @@ from ..utils import (
class HttpFD(FileDownloader):
def real_download(self, filename, info_dict):
if info_dict.get('initialization_url') and list(filter(None, info_dict.get('segment_urls', []))):
return DashSegmentsFD(self.ydl, self.params).real_download(filename, info_dict)
url = info_dict['url']
tmpfilename = self.temp_name(filename)
stream = None

@ -819,7 +819,8 @@ class YoutubeIE(YoutubeBaseInfoExtractor):
if segment_list:
f.update({
'initialization_url': segment_list.find('{urn:mpeg:DASH:schema:MPD:2011}Initialization').attrib['sourceURL'],
'segment_urls': [segment.attrib.get('media') for segment in segment_list.findall('{urn:mpeg:DASH:schema:MPD:2011}SegmentURL')]
'segment_urls': [segment.attrib.get('media') for segment in segment_list.findall('{urn:mpeg:DASH:schema:MPD:2011}SegmentURL')],
'protocol': 'dash_segments',
})
try:
existing_format = next(

Loading…
Cancel
Save