aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--yt_dlp/downloader/niconico.py1
-rw-r--r--yt_dlp/extractor/niconico.py8
2 files changed, 9 insertions, 0 deletions
diff --git a/yt_dlp/downloader/niconico.py b/yt_dlp/downloader/niconico.py
index 462c6e2d6..310144e7d 100644
--- a/yt_dlp/downloader/niconico.py
+++ b/yt_dlp/downloader/niconico.py
@@ -85,6 +85,7 @@ class NiconicoLiveFD(FileDownloader):
'quality': live_quality,
'protocol': 'hls+fmp4',
'latency': live_latency,
+ 'accessRightMethod': 'single_cookie',
'chasePlay': False,
},
'room': {
diff --git a/yt_dlp/extractor/niconico.py b/yt_dlp/extractor/niconico.py
index 62dd0ab9c..5e66aebeb 100644
--- a/yt_dlp/extractor/niconico.py
+++ b/yt_dlp/extractor/niconico.py
@@ -27,6 +27,7 @@ from ..utils import (
traverse_obj,
try_get,
unescapeHTML,
+ unified_timestamp,
update_url_query,
url_basename,
url_or_none,
@@ -985,6 +986,7 @@ class NiconicoLiveIE(InfoExtractor):
'quality': 'abr',
'protocol': 'hls+fmp4',
'latency': latency,
+ 'accessRightMethod': 'single_cookie',
'chasePlay': False,
},
'room': {
@@ -1005,6 +1007,7 @@ class NiconicoLiveIE(InfoExtractor):
if data.get('type') == 'stream':
m3u8_url = data['data']['uri']
qualities = data['data']['availableQualities']
+ cookies = data['data']['cookies']
break
elif data.get('type') == 'disconnect':
self.write_debug(recv)
@@ -1043,6 +1046,11 @@ class NiconicoLiveIE(InfoExtractor):
**res,
})
+ for cookie in cookies:
+ self._set_cookie(
+ cookie['domain'], cookie['name'], cookie['value'],
+ expire_time=unified_timestamp(cookie['expires']), path=cookie['path'], secure=cookie['secure'])
+
formats = self._extract_m3u8_formats(m3u8_url, video_id, ext='mp4', live=True)
for fmt, q in zip(formats, reversed(qualities[1:])):
fmt.update({