1
1
mirror of https://github.com/ytdl-org/youtube-dl synced 2024-11-05 21:27:04 +01:00

[chaturbate] Improve error extraction (Closes #7989)

This commit is contained in:
Sergey M․ 2015-12-24 20:09:48 +06:00
parent 96db61ffb8
commit 8a609c32fd

View File

@ -23,6 +23,8 @@ class ChaturbateIE(InfoExtractor):
'only_matching': True, 'only_matching': True,
}] }]
_ROOM_OFFLINE = 'Room is currently offline'
def _real_extract(self, url): def _real_extract(self, url):
video_id = self._match_id(url) video_id = self._match_id(url)
@ -34,9 +36,16 @@ class ChaturbateIE(InfoExtractor):
if not m3u8_url: if not m3u8_url:
error = self._search_regex( error = self._search_regex(
r'<span[^>]+class=(["\'])desc_span\1[^>]*>(?P<error>[^<]+)</span>', [r'<span[^>]+class=(["\'])desc_span\1[^>]*>(?P<error>[^<]+)</span>',
webpage, 'error', group='error') r'<div[^>]+id=(["\'])defchat\1[^>]*>\s*<p><strong>(?P<error>[^<]+)<'],
raise ExtractorError(error, expected=True) webpage, 'error', group='error', default=None)
if not error:
if any(p not in webpage for p in (
self._ROOM_OFFLINE, 'offline_tipping', 'tip_offline')):
error = self._ROOM_OFFLINE
if error:
raise ExtractorError(error, expected=True)
raise ExtractorError('Unable to find stream URL')
formats = self._extract_m3u8_formats(m3u8_url, video_id, ext='mp4') formats = self._extract_m3u8_formats(m3u8_url, video_id, ext='mp4')