]>
jfr.im git - yt-dlp.git/blob - yt_dlp/extractor/pinkbike.py
3 from .common
import InfoExtractor
13 class PinkbikeIE(InfoExtractor
):
14 _VALID_URL
= r
'https?://(?:(?:www\.)?pinkbike\.com/video/|es\.pinkbike\.org/i/kvid/kvid-y5\.swf\?id=)(?P<id>[0-9]+)'
16 'url': 'http://www.pinkbike.com/video/402811/',
17 'md5': '4814b8ca7651034cd87e3361d5c2155a',
21 'title': 'Brandon Semenuk - RAW 100',
22 'description': 'Official release: www.redbull.ca/rupertwalker',
23 'thumbnail': r
're:^https?://.*\.jpg$',
25 'upload_date': '20150406',
26 'uploader': 'revelco',
27 'location': 'Victoria, British Columbia, Canada',
32 'url': 'http://es.pinkbike.org/i/kvid/kvid-y5.swf?id=406629',
33 'only_matching': True,
36 def _real_extract(self
, url
):
37 video_id
= self
._match
_id
(url
)
39 webpage
= self
._download
_webpage
(
40 'http://www.pinkbike.com/video/%s' % video_id
, video_id
)
43 for _
, format_id
, src
in re
.findall(
44 r
'data-quality=((?:\\)?["\'])(.+?
)\
1[^
>]+src
=\
1(.+?
)\
1', webpage):
45 height = int_or_none(self._search_regex(
46 r'^
(\d
+)[pP
]$
', format_id, 'height
', default=None))
49 'format_id
': format_id,
52 self._sort_formats(formats)
54 title = remove_end(self._og_search_title(webpage), ' Video
- Pinkbike
')
55 description = self._html_search_regex(
56 r'(?s
)id="media-description"[^
>]*>(.+?
)<',
57 webpage, 'description
', default=None) or remove_start(
58 self._og_search_description(webpage), title + '. ')
59 thumbnail = self._og_search_thumbnail(webpage)
60 duration = int_or_none(self._html_search_meta(
61 'video
:duration
', webpage, 'duration
'))
63 uploader = self._search_regex(
64 r'<a
[^
>]+\brel
=["\']author[^>]+>([^<]+)', webpage,
65 'uploader', fatal=False)
66 upload_date = unified_strdate(self._search_regex(
67 r'class="fullTime
"[^>]+title="([^
"]+)"',
68 webpage, 'upload date
', fatal=False))
70 location = self._html_search_regex(
71 r'(?s
)<dt
>Location
</dt
>\s
*<dd
>(.+?
)<',
72 webpage, 'location
', fatal=False)
74 def extract_count(webpage, label):
75 return str_to_int(self._search_regex(
76 r'<span
[^
>]+class="stat-num"[^
>]*>([\d
,.]+)</span
>\s
*<span
[^
>]+class="stat-label"[^
>]*>%s' % label,
77 webpage, label, fatal=False))
79 view_count = extract_count(webpage, 'Views
')
80 comment_count = extract_count(webpage, 'Comments
')
85 'description
': description,
86 'thumbnail
': thumbnail,
88 'upload_date
': upload_date,
91 'view_count
': view_count,
92 'comment_count
': comment_count,