]> jfr.im git - yt-dlp.git/blame - youtube_dl/extractor/ebaumsworld.py
[bilibili] Add preliminary support (#2174)
[yt-dlp.git] / youtube_dl / extractor / ebaumsworld.py
CommitLineData
3d60bb96 1import re
3d60bb96
JMF
2
3from .common import InfoExtractor
4from ..utils import determine_ext
5
6
7class EbaumsWorldIE(InfoExtractor):
8 _VALID_URL = r'https?://www\.ebaumsworld\.com/video/watch/(?P<id>\d+)'
9
10 _TEST = {
11 u'url': u'http://www.ebaumsworld.com/video/watch/83367677/',
12 u'file': u'83367677.mp4',
13 u'info_dict': {
14 u'title': u'A Giant Python Opens The Door',
15 u'description': u'This is how nightmares start...',
16 u'uploader': u'jihadpizza',
17 },
18 }
19
20 def _real_extract(self, url):
21 mobj = re.match(self._VALID_URL, url)
22 video_id = mobj.group('id')
e26f8712 23 config = self._download_xml(
3d60bb96 24 'http://www.ebaumsworld.com/video/player/%s' % video_id, video_id)
3d60bb96
JMF
25 video_url = config.find('file').text
26
27 return {
28 'id': video_id,
29 'title': config.find('title').text,
30 'url': video_url,
31 'ext': determine_ext(video_url),
32 'description': config.find('description').text,
33 'thumbnail': config.find('image').text,
34 'uploader': config.find('username').text,
35 }