]> jfr.im git - yt-dlp.git/blob - yt_dlp/extractor/ehow.py
74469ce36f9eba3f737b455dc952384379356fba
[yt-dlp.git] / yt_dlp / extractor / ehow.py
1 from .common import InfoExtractor
2 from ..compat import compat_urllib_parse_unquote
3
4
5 class EHowIE(InfoExtractor):
6 IE_NAME = 'eHow'
7 _VALID_URL = r'https?://(?:www\.)?ehow\.com/[^/_?]*_(?P<id>[0-9]+)'
8 _TEST = {
9 'url': 'http://www.ehow.com/video_12245069_hardwood-flooring-basics.html',
10 'md5': '9809b4e3f115ae2088440bcb4efbf371',
11 'info_dict': {
12 'id': '12245069',
13 'ext': 'flv',
14 'title': 'Hardwood Flooring Basics',
15 'description': 'Hardwood flooring may be time consuming, but its ultimately a pretty straightforward concept. Learn about hardwood flooring basics with help from a hardware flooring business owner in this free video...',
16 'uploader': 'Erick Nathan',
17 }
18 }
19
20 def _real_extract(self, url):
21 video_id = self._match_id(url)
22 webpage = self._download_webpage(url, video_id)
23 video_url = self._search_regex(
24 r'(?:file|source)=(http[^\'"&]*)', webpage, 'video URL')
25 final_url = compat_urllib_parse_unquote(video_url)
26 uploader = self._html_search_meta('uploader', webpage)
27 title = self._og_search_title(webpage).replace(' | eHow', '')
28
29 return {
30 'id': video_id,
31 'url': final_url,
32 'title': title,
33 'thumbnail': self._og_search_thumbnail(webpage),
34 'description': self._og_search_description(webpage),
35 'uploader': uploader,
36 }