From 765de0f39c951582119f3ef98efa8a8a08141502 Mon Sep 17 00:00:00 2001 From: mars67857 Date: Sun, 15 Oct 2017 15:53:51 -0700 Subject: [PATCH] Remove unneeded positional arguments. Add comment explaining why overriding User-Agent is needed. --- youtube_dl/extractor/cammodels.py | 59 +++++++++++++++++++------------ 1 file changed, 37 insertions(+), 22 deletions(-) diff --git a/youtube_dl/extractor/cammodels.py b/youtube_dl/extractor/cammodels.py index 94fba700a..5521ad4ff 100644 --- a/youtube_dl/extractor/cammodels.py +++ b/youtube_dl/extractor/cammodels.py @@ -9,59 +9,74 @@ class CamModelsIE(InfoExtractor): _VALID_URL = r'https?://(?:www\.)?cammodels\.com/cam/(?P\w+)' _HEADERS = { 'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36' + # Needed because server doesn't return links to video URLs if a browser-like User-Agent is not used } def _real_extract(self, url): video_id = self._match_id(url) - webpage = self._download_webpage(url_or_request=url, video_id=video_id, headers=self._HEADERS) - manifest_url = self._get_manifest_url_from_webpage(video_id=video_id, webpage=webpage) - manifest = self._get_manifest_from_manifest_url(manifest_url=manifest_url, video_id=video_id, webpage=webpage) - formats = self._get_formats_from_manifest(manifest=manifest, video_id=video_id) + webpage = self._download_webpage( + url, + video_id, + headers=self._HEADERS) + manifest_url = self._get_manifest_url_from_webpage( + webpage, + video_id) + manifest = self._get_manifest_from_manifest_url( + manifest_url, + video_id, + webpage) + formats = self._get_formats_from_manifest( + manifest, + video_id) return { 'id': video_id, 'title': self._live_title(video_id), 'formats': formats } - def _get_manifest_url_from_webpage(self, video_id, webpage): + def _get_manifest_url_from_webpage(self, webpage, video_id): manifest_url_root = self._html_search_regex( - pattern=r'manifestUrlRoot=(?Phttps?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*))', - string=webpage, - name='manifest', + r'manifestUrlRoot=(?Phttps?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*))', + webpage, + 'manifest', fatal=False) if not manifest_url_root: offline = self._html_search_regex( - pattern=r'(?PI\'m offline, but let\'s stay connected!)', - string=webpage, - name='offline indicator', + r'(?PI\'m offline, but let\'s stay connected!)', + webpage, + 'offline indicator', fatal=False) if offline: raise ExtractorError( - msg='This user is currently offline, so nothing can be downloaded.', + 'This user is currently offline, so nothing can be downloaded.', expected=True, video_id=video_id) private = self._html_search_regex( - pattern=r'(?PI’m in a private show right now)', - string=webpage, - name='private show indicator', + r'(?PI’m in a private show right now)', + webpage, + 'private show indicator', fatal=False) if private: raise ExtractorError( - msg='This user is doing a private show, which requires payment. This extractor currently does not support private streams.', + 'This user is doing a private show, which requires payment. This extractor currently does not support private streams.', expected=True, video_id=video_id) raise ExtractorError( - msg='Unable to find link to stream info on webpage. Room is not offline, so something else is wrong.', + 'Unable to find link to stream info on webpage. Room is not offline, so something else is wrong.', expected=False, video_id=video_id) manifest_url = manifest_url_root + video_id + '.json' return manifest_url def _get_manifest_from_manifest_url(self, manifest_url, video_id, webpage): - manifest = self._download_json(url_or_request=manifest_url, video_id=video_id, headers=self._HEADERS, fatal=False) + manifest = self._download_json( + manifest_url, + video_id, + headers=self._HEADERS, + fatal=False) if not manifest: raise ExtractorError( - msg='Link to stream URLs was found, but we couldn\'t access it.', + 'Link to stream URLs was found, but we couldn\'t access it.', expected=False, video_id=video_id) return manifest @@ -84,11 +99,11 @@ class CamModelsIE(InfoExtractor): except: manifest_json = json.dumps(manifest) manifest_links = re.finditer( - pattern=r'(?Prtmp?:\/\/[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#&//=]*))', - string=manifest_json) + r'(?Prtmp?:\/\/[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#&//=]*))', + manifest_json) if not manifest_links: raise ExtractorError( - msg='Link to stream info was found, but we couldn\'t read the response. This is probably a bug.', + 'Link to stream info was found, but we couldn\'t read the response. This is probably a bug.', expected=False, video_id=video_id) formats = []