Browse Source

[YoutubeDL] Change how DashSegmentsFD is selected

master
Yen Chi Hsuan 9 years ago
parent
commit
b9258c6178
3 changed files with 4 additions and 5 deletions
  1. 2
      youtube_dl/downloader/__init__.py
  2. 4
      youtube_dl/downloader/http.py
  3. 3
      youtube_dl/extractor/youtube.py

2
youtube_dl/downloader/__init__.py

@ -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,
}

4
youtube_dl/downloader/http.py

@ -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

3
youtube_dl/extractor/youtube.py

@ -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