aboutsummaryrefslogtreecommitdiffstats
path: root/yt_dlp/extractor/afreecatv.py
diff options
context:
space:
mode:
authorJesús <heckyel@hyperbola.info>2022-02-12 21:05:27 -0500
committerJesús <heckyel@hyperbola.info>2022-02-12 21:05:27 -0500
commitaf4847e22e81d05177f92c712983ab3f2f20184b (patch)
tree6b749333494ffe379df3e1a060660e4b1afcdf85 /yt_dlp/extractor/afreecatv.py
parentc4b763b19f54ed5dfc2fd408adb9ed74126f6740 (diff)
parent29448350808619262d6a9ddd393a2c28df1720fe (diff)
downloadhypervideo-pre-af4847e22e81d05177f92c712983ab3f2f20184b.tar.lz
hypervideo-pre-af4847e22e81d05177f92c712983ab3f2f20184b.tar.xz
hypervideo-pre-af4847e22e81d05177f92c712983ab3f2f20184b.zip
updated from upstream | 12/02/2022 at 21:05
Diffstat (limited to 'yt_dlp/extractor/afreecatv.py')
-rw-r--r--yt_dlp/extractor/afreecatv.py21
1 files changed, 15 insertions, 6 deletions
diff --git a/yt_dlp/extractor/afreecatv.py b/yt_dlp/extractor/afreecatv.py
index 80853487e..f25fc47fa 100644
--- a/yt_dlp/extractor/afreecatv.py
+++ b/yt_dlp/extractor/afreecatv.py
@@ -416,26 +416,35 @@ class AfreecaTVLiveIE(AfreecaTVIE):
def _real_extract(self, url):
broadcaster_id, broadcast_no = self._match_valid_url(url).group('id', 'bno')
+ password = self.get_param('videopassword')
info = self._download_json(self._LIVE_API_URL, broadcaster_id, fatal=False,
data=urlencode_postdata({'bid': broadcaster_id})) or {}
channel_info = info.get('CHANNEL') or {}
broadcaster_id = channel_info.get('BJID') or broadcaster_id
broadcast_no = channel_info.get('BNO') or broadcast_no
+ password_protected = channel_info.get('BPWD')
if not broadcast_no:
raise ExtractorError(f'Unable to extract broadcast number ({broadcaster_id} may not be live)', expected=True)
+ if password_protected == 'Y' and password is None:
+ raise ExtractorError(
+ 'This livestream is protected by a password, use the --video-password option',
+ expected=True)
formats = []
quality_key = qualities(self._QUALITIES)
for quality_str in self._QUALITIES:
+ params = {
+ 'bno': broadcast_no,
+ 'stream_type': 'common',
+ 'type': 'aid',
+ 'quality': quality_str,
+ }
+ if password is not None:
+ params['pwd'] = password
aid_response = self._download_json(
self._LIVE_API_URL, broadcast_no, fatal=False,
- data=urlencode_postdata({
- 'bno': broadcast_no,
- 'stream_type': 'common',
- 'type': 'aid',
- 'quality': quality_str,
- }),
+ data=urlencode_postdata(params),
note=f'Downloading access token for {quality_str} stream',
errnote=f'Unable to download access token for {quality_str} stream')
aid = traverse_obj(aid_response, ('CHANNEL', 'AID'))