Browse Source

[dw] Add new extractor

master
remitamine 8 years ago
parent
commit
c8868a9d83
2 changed files with 44 additions and 0 deletions
  1. 1
      youtube_dl/extractor/__init__.py
  2. 43
      youtube_dl/extractor/dw.py

1
youtube_dl/extractor/__init__.py

@ -189,6 +189,7 @@ from .dumpert import DumpertIE
from .defense import DefenseGouvFrIE from .defense import DefenseGouvFrIE
from .discovery import DiscoveryIE from .discovery import DiscoveryIE
from .dropbox import DropboxIE from .dropbox import DropboxIE
from .dw import DWIE
from .eagleplatform import EaglePlatformIE from .eagleplatform import EaglePlatformIE
from .ebaumsworld import EbaumsWorldIE from .ebaumsworld import EbaumsWorldIE
from .echomsk import EchoMskIE from .echomsk import EchoMskIE

43
youtube_dl/extractor/dw.py

@ -0,0 +1,43 @@
# coding: utf-8
from __future__ import unicode_literals
from .common import InfoExtractor
from ..utils import int_or_none
class DWIE(InfoExtractor):
_VALID_URL = r'https?://(?:www\.)?dw\.com/(?:[^/]+/)+av-(?P<id>\d+)'
_TEST = {
'url': 'http://www.dw.com/en/intelligent-light/av-19112290',
'md5': '7372046e1815c5a534b43f3c3c36e6e9',
'info_dict': {
'id': '19112290',
'ext': 'mp4',
'title': 'Intelligent light',
'description': 'md5:90e00d5881719f2a6a5827cb74985af1',
'upload_date': '20160311',
}
}
def _real_extract(self, url):
video_id = self._match_id(url)
formats = self._extract_smil_formats(
'http://www.dw.com/smil/v-%s' % video_id, video_id,
transform_source=lambda s: s.replace(
'rtmp://tv-od.dw.de/flash/',
'http://tv-download.dw.de/dwtv_video/flv/'))
webpage = self._download_webpage(url, video_id)
hidden_inputs = self._hidden_inputs(webpage)
title = hidden_inputs['media_title']
return {
'id': video_id,
'title': title,
'description': self._og_search_description(webpage),
'thumbnail': hidden_inputs.get('preview_image'),
'duration': int_or_none(hidden_inputs.get('file_duration')),
'upload_date': hidden_inputs.get('display_date'),
'formats': formats,
}
Loading…
Cancel
Save