1
0
Fork 0
mirror of https://github.com/ytdl-org/youtube-dl.git synced 2024-11-28 13:11:49 +00:00
youtube-dl/youtube_dl/extractor/recurbate.py
2023-02-03 01:45:06 +00:00

46 lines
1.7 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# coding: utf-8
from __future__ import unicode_literals
from ..utils import (
ExtractorError,
merge_dicts,
update_url_query,
)
from .common import InfoExtractor
class RecurbateIE(InfoExtractor):
_VALID_URL = r'https?:\/\/(?:www\.)?recurbate\.com\/play\.php\?video=(?P<id>[0-9]+)'
_TEST = {
'url': 'https://recurbate.com/play.php?video=39161415',
'info_dict': {
'id': '39161415',
'ext': 'mp4',
'title': 'Performer zsnicole33 show on 2022-10-25 20_23, Chaturbate Archive Recurbate'
},
'skip': 'Free videos are available for a limited amount of time and for a single session.',
}
@staticmethod
def raise_login_required(msg='Login required: use --cookies to pass your browser's login cookie, or try again later'):
raise ExtractorError(msg, expected=True)
def _real_extract(self, url):
video_id = self._match_id(url)
webpage = self._download_webpage(url, video_id)
title = self._html_search_regex(r'<title>(.+?)</title>', webpage, 'title')
token = self._html_search_regex(r'data-token=(.+?")', webpage, 'play_button').strip('"')
get_url = update_url_query('https://recurbate.com/api/get.php', {'video': video_id, 'token': token})
video_webpage = self._download_webpage(get_url, video_id)
if 'shall_signin' in video_webpage[:20]:
self.raise_login_required()
entries = self._parse_html5_media_entries(get_url, video_webpage, video_id)
if not entries:
raise ExtractorError('No media links found')
return merge_dicts({
'id': video_id,
'title': title,
'description': self._og_search_description(webpage),
}, entries[0])