Browse Source

[YoutubeDL] Change how DashSegmentsFD is selected

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

+ 2
- 0
youtube_dl/downloader/__init__.py 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,
} }


+ 0
- 4
youtube_dl/downloader/http.py 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


+ 2
- 1
youtube_dl/extractor/youtube.py 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(


Loading…
Cancel
Save