]> jfr.im git - yt-dlp.git/blame - yt_dlp/extractor/toypics.py
[cleanup] Remove dead extractors (#8604)
[yt-dlp.git] / yt_dlp / extractor / toypics.py
CommitLineData
74af99fc 1from .common import InfoExtractor
74af99fc 2import re
3
231f76b5 4
74af99fc 5class ToypicsIE(InfoExtractor):
9751a457 6 _WORKING = False
2ca29f1a
S
7 IE_DESC = 'Toypics video'
8 _VALID_URL = r'https?://videos\.toypics\.net/view/(?P<id>[0-9]+)'
74af99fc 9 _TEST = {
10 'url': 'http://videos.toypics.net/view/514/chancebulged,-2-1/',
231f76b5 11 'md5': '16e806ad6d6f58079d210fe30985e08b',
74af99fc 12 'info_dict': {
13 'id': '514',
14 'ext': 'mp4',
2ca29f1a 15 'title': "Chance-Bulge'd, 2",
231f76b5
PH
16 'age_limit': 18,
17 'uploader': 'kidsune',
74af99fc 18 }
19 }
74af99fc 20
21 def _real_extract(self, url):
2ca29f1a
S
22 video_id = self._match_id(url)
23
24 webpage = self._download_webpage(url, video_id)
25
26 formats = self._parse_html5_media_entries(
27 url, webpage, video_id)[0]['formats']
77d682da 28 title = self._html_search_regex([
29 r'<h1[^>]+class=["\']view-video-title[^>]+>([^<]+)</h',
30 r'<title>([^<]+) - Toypics</title>',
2ca29f1a
S
31 ], webpage, 'title')
32
33 uploader = self._html_search_regex(
34 r'More videos from <strong>([^<]+)</strong>', webpage, 'uploader',
35 fatal=False)
36
74af99fc 37 return {
38 'id': video_id,
77d682da 39 'formats': formats,
74af99fc 40 'title': title,
2ca29f1a 41 'uploader': uploader,
231f76b5
PH
42 'age_limit': 18,
43 }
44
45
46class ToypicsUserIE(InfoExtractor):
9751a457 47 _WORKING = False
231f76b5 48 IE_DESC = 'Toypics user profile'
2ca29f1a 49 _VALID_URL = r'https?://videos\.toypics\.net/(?!view)(?P<id>[^/?#&]+)'
22a6f150
PH
50 _TEST = {
51 'url': 'http://videos.toypics.net/Mikey',
52 'info_dict': {
53 'id': 'Mikey',
54 },
feec0f56 55 'playlist_mincount': 19,
22a6f150 56 }
231f76b5
PH
57
58 def _real_extract(self, url):
2ca29f1a 59 username = self._match_id(url)
231f76b5
PH
60
61 profile_page = self._download_webpage(
62 url, username, note='Retrieving profile page')
63
64 video_count = int(self._search_regex(
65 r'public/">Public Videos \(([0-9]+)\)</a></li>', profile_page,
66 'video count'))
67
68 PAGE_SIZE = 8
69 urls = []
70 page_count = (video_count + PAGE_SIZE + 1) // PAGE_SIZE
71 for n in range(1, page_count + 1):
72 lpage_url = url + '/public/%d' % n
73 lpage = self._download_webpage(
74 lpage_url, username,
75 note='Downloading page %d/%d' % (n, page_count))
76 urls.extend(
77 re.findall(
2ca29f1a 78 r'<div[^>]+class=["\']preview[^>]+>\s*<a[^>]+href="(https?://videos\.toypics\.net/view/[^"]+)"',
231f76b5
PH
79 lpage))
80
81 return {
82 '_type': 'playlist',
83 'id': username,
84 'entries': [{
85 '_type': 'url',
56dd5572 86 'url': eurl,
231f76b5 87 'ie_key': 'Toypics',
56dd5572 88 } for eurl in urls]
74af99fc 89 }