diff options
| -rw-r--r-- | youtube_dl/extractor/__init__.py | 1 | ||||
| -rw-r--r-- | youtube_dl/extractor/chaturbate.py | 24 | 
2 files changed, 25 insertions, 0 deletions
| diff --git a/youtube_dl/extractor/__init__.py b/youtube_dl/extractor/__init__.py index 3ace1cc2c..75720843c 100644 --- a/youtube_dl/extractor/__init__.py +++ b/youtube_dl/extractor/__init__.py @@ -76,6 +76,7 @@ from .cbssports import CBSSportsIE  from .ccc import CCCIE  from .ceskatelevize import CeskaTelevizeIE  from .channel9 import Channel9IE +from .chaturbate import ChaturbateIE  from .chilloutzone import ChilloutzoneIE  from .chirbit import (      ChirbitIE, diff --git a/youtube_dl/extractor/chaturbate.py b/youtube_dl/extractor/chaturbate.py new file mode 100644 index 000000000..5e24e1e4f --- /dev/null +++ b/youtube_dl/extractor/chaturbate.py @@ -0,0 +1,24 @@ +# encoding: utf-8 + +from .common import InfoExtractor + + +class ChaturbateIE(InfoExtractor): +    _VALID_URL = r'https?://(?:www\.)?chaturbate\.com/(?P<id>[^/]+)/?$' + +    def _real_extract(self, url): +        video_id = self._match_id(url) +        webpage = self._download_webpage(url, video_id) + +        m3u8_url = self._search_regex(r"'(https?://.*?\.m3u8)'", webpage, 'playlist') + +        formats = self._extract_m3u8_formats(m3u8_url, video_id, ext='mp4') + +        return { +            'id': video_id, +            'title': self._live_title(video_id), +            'description': self._html_search_meta('description', webpage, 'description'), +            'is_live': True, +            'thumbnail': 'https://cdn-s.highwebmedia.com/uHK3McUtGCG3SMFcd4ZJsRv8/roomimage/%s.jpg' % (video_id,), +            'formats': formats, +        } | 
