[YoutubeDL] Change how DashSegmentsFD is selected

This commit is contained in:
Yen Chi Hsuan 2015-06-04 22:05:33 +08:00
parent 6800d3372f
commit b9258c6178
3 changed files with 4 additions and 5 deletions

View File

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

View File

@ -6,7 +6,6 @@ import socket
import time import time
from .common import FileDownloader from .common import FileDownloader
from .dash import DashSegmentsFD
from ..compat import ( from ..compat import (
compat_urllib_request, compat_urllib_request,
compat_urllib_error, compat_urllib_error,
@ -20,9 +19,6 @@ from ..utils import (
class HttpFD(FileDownloader): class HttpFD(FileDownloader):
def real_download(self, filename, info_dict): 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'] url = info_dict['url']
tmpfilename = self.temp_name(filename) tmpfilename = self.temp_name(filename)
stream = None stream = None

View File

@ -819,7 +819,8 @@ class YoutubeIE(YoutubeBaseInfoExtractor):
if segment_list: if segment_list:
f.update({ f.update({
'initialization_url': segment_list.find('{urn:mpeg:DASH:schema:MPD:2011}Initialization').attrib['sourceURL'], '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: try:
existing_format = next( existing_format = next(