2 from __future__
import unicode_literals
6 from .common
import InfoExtractor
7 from ..compat
import compat_urlparse
14 class NJPWWorldIE(InfoExtractor
):
15 _VALID_URL
= r
'https?://(front\.)?njpwworld\.com/p/(?P<id>[a-z0-9_]+)'
16 IE_DESC
= '新日本プロレスワールド'
17 _NETRC_MACHINE
= 'njpwworld'
20 'url': 'http://njpwworld.com/p/s_series_00155_1_9/',
22 'id': 's_series_00155_1_9',
24 'title': '闘強導夢2000 2000年1月4日 東京ドーム 第9試合 ランディ・サベージ VS リック・スタイナー',
28 'skip_download': True, # AES-encrypted m3u8
30 'skip': 'Requires login',
32 'url': 'https://front.njpwworld.com/p/s_series_00563_16_bs',
34 'id': 's_series_00563_16_bs',
36 'title': 'WORLD TAG LEAGUE 2020 & BEST OF THE SUPER Jr.27 2020年12月6日 福岡・福岡国際センター バックステージコメント(字幕あり)',
37 'tags': ["福岡・福岡国際センター", "バックステージコメント", "2020", "20年代"],
40 'skip_download': True,
44 _LOGIN_URL
= 'https://front.njpwworld.com/auth/login'
46 def _real_initialize(self
):
50 username
, password
= self
._get
_login
_info
()
51 # No authentication to be performed
55 # Setup session (will set necessary cookies)
56 self
._request
_webpage
(
57 'https://njpwworld.com/', None, note
='Setting up session')
59 webpage
, urlh
= self
._download
_webpage
_handle
(
60 self
._LOGIN
_URL
, None,
61 note
='Logging in', errnote
='Unable to login',
62 data
=urlencode_postdata({'login_id': username, 'pw': password}
),
63 headers
={'Referer': 'https://front.njpwworld.com/auth'}
)
64 # /auth/login will return 302 for successful logins
65 if urlh
.geturl() == self
._LOGIN
_URL
:
66 self
.report_warning('unable to login')
71 def _real_extract(self
, url
):
72 video_id
= self
._match
_id
(url
)
74 webpage
= self
._download
_webpage
(url
, video_id
)
77 for kind
, vid
in re
.findall(r
'if\s+\(\s*imageQualityType\s*==\s*\'([^
\']+)\'\s
*\
)\s
*{\s
*video_id\s
*=\s
*"(\d+)"', webpage):
78 player_path = '/intent?
id=%s&type=url
' % vid
79 player_url = compat_urlparse.urljoin(url, player_path)
80 formats += self._extract_m3u8_formats(
81 player_url, video_id, 'mp4
', 'm3u8_native
', m3u8_id=kind, fatal=False, quality=int(kind == 'high
'))
83 self._sort_formats(formats)
85 tag_block = get_element_by_class('tag
-block
', webpage)
87 r'<a
[^
>]+class="tag-[^"]+"[^>]*>([^<]+)</a>', tag_block
88 ) if tag_block else None
92 'title': get_element_by_class('article-title', webpage) or self._og_search_title(webpage),