diff options
| author | Yen Chi Hsuan <yan12125@gmail.com> | 2015-06-03 23:10:18 +0800 | 
|---|---|---|
| committer | Yen Chi Hsuan <yan12125@gmail.com> | 2015-06-03 23:10:18 +0800 | 
| commit | 6800d3372f35e08dcc4d34d06601815bf0cb0a3d (patch) | |
| tree | f619f599f021410b83367e80517de198f2556185 /youtube_dl/extractor/youtube.py | |
| parent | 8f9478412424b87e4fb77be53d239c13932b078a (diff) | |
[YoutubeDL] Support DASH manifest downloading
Diffstat (limited to 'youtube_dl/extractor/youtube.py')
| -rw-r--r-- | youtube_dl/extractor/youtube.py | 6 | 
1 files changed, 6 insertions, 0 deletions
diff --git a/youtube_dl/extractor/youtube.py b/youtube_dl/extractor/youtube.py index aacb999ce..5d1297e0d 100644 --- a/youtube_dl/extractor/youtube.py +++ b/youtube_dl/extractor/youtube.py @@ -802,6 +802,7 @@ class YoutubeIE(YoutubeBaseInfoExtractor):                      # TODO implement WebVTT downloading                      pass                  elif mime_type.startswith('audio/') or mime_type.startswith('video/'): +                    segment_list = r.find('{urn:mpeg:DASH:schema:MPD:2011}SegmentList')                      format_id = r.attrib['id']                      video_url = url_el.text                      filesize = int_or_none(url_el.attrib.get('{http://youtube.com/yt/2012/10/10}contentLength')) @@ -815,6 +816,11 @@ class YoutubeIE(YoutubeBaseInfoExtractor):                          'filesize': filesize,                          'fps': int_or_none(r.attrib.get('frameRate')),                      } +                    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')] +                        })                      try:                          existing_format = next(                              fo for fo in formats  | 
