diff --git a/youtube_dl/extractor/camwithher.py b/youtube_dl/extractor/camwithher.py index fa4ec351f..eb0a4ec56 100644 --- a/youtube_dl/extractor/camwithher.py +++ b/youtube_dl/extractor/camwithher.py @@ -4,14 +4,14 @@ from .common import InfoExtractor class CamWithHerIE(InfoExtractor): - _VALID_URL = r'https?://(?:www\.)?camwithher\.tv/view_video\.php\?viewkey=(?P\w+).*' + _VALID_URL = r'https?://(?:www\.)?camwithher\.tv/view_video\.php\?.*viewkey=(?P\w+)' _TESTS = [ { 'url': 'http://camwithher.tv/view_video.php?viewkey=6e9a24e2c0e842e1f177&page=&viewtype=&category=', 'info_dict': { 'id': '5644', - 'ext': 'mp4', + 'ext': 'flv', 'title': 'Periscope Tease', }, 'params': { @@ -23,34 +23,31 @@ class CamWithHerIE(InfoExtractor): 'only_matching': True, }, { - 'url': 'http://camwithher.tv/view_video.php?viewkey=b6c3b5bea9515d1a1fc4&page=&viewtype=&category=mv', - 'info_dict': { - 'id': '758', - 'ext': 'flv', - 'title': 'Gisele in the Bath', - }, - 'params': { - 'skip_download': True, - } + 'url': 'http://camwithher.tv/view_video.php?page=&viewkey=6e9a24e2c0e842e1f177&viewtype=&category=', + 'only_matching': True, }, + { + 'url': 'http://camwithher.tv/view_video.php?viewkey=b6c3b5bea9515d1a1fc4&page=&viewtype=&category=mv', + 'only_matching': True, + } ] def _real_extract(self, url): - url_id = self._match_id(url) + video_id = self._match_id(url) - webpage = self._download_webpage(url, url_id) + webpage = self._download_webpage(url, video_id) - video_id = self._html_search_regex(r' 2010: - rtmp_url = 'rtmp://camwithher.tv/clipshare/mp4:' + video_id + '.mp4' - else: - rtmp_url = 'rtmp://camwithher.tv/clipshare/' + video_id + # The number "2010" was reverse-engineered from cwhplayer.swf. + # It appears that they changed their video codec, and hence the RTMP URL + # scheme at that video's ID. + rtmp_url = 'rtmp://camwithher.tv/clipshare/%s' % (('mp4:%s.mp4' % flv_id) if int(flv_id) > 2010 else flv_id) title = self._html_search_regex(r'
\s+

(.+?)

', webpage, 'title') return { - 'id': video_id, + 'id': flv_id, 'url': rtmp_url, 'no_resume': True, 'ext': 'flv',