aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitryScaletta <DmitryScaletta@users.noreply.github.com>2024-03-09 18:46:11 +0300
committerGitHub <noreply@github.com>2024-03-09 15:46:11 +0000
commitd3d4187da90a6b85f4ebae4bb07693cc9b412d75 (patch)
treee93aac6dcedef3f7be11760c08c7198b0b2dbc12
parentc8c9039e640495700f76a13496e3418bdd4382ba (diff)
[ie/duboku] Fix m3u8 formats extraction (#9161)
Closes #9159 Authored by: DmitryScaletta
-rw-r--r--yt_dlp/extractor/duboku.py10
1 files changed, 8 insertions, 2 deletions
diff --git a/yt_dlp/extractor/duboku.py b/yt_dlp/extractor/duboku.py
index fc9564cef..626e577e7 100644
--- a/yt_dlp/extractor/duboku.py
+++ b/yt_dlp/extractor/duboku.py
@@ -1,4 +1,6 @@
+import base64
import re
+import urllib.parse
from .common import InfoExtractor
from ..compat import compat_urlparse
@@ -129,11 +131,15 @@ class DubokuIE(InfoExtractor):
data_url = player_data.get('url')
if not data_url:
raise ExtractorError('Cannot find url in player_data')
- data_from = player_data.get('from')
+ player_encrypt = player_data.get('encrypt')
+ if player_encrypt == 1:
+ data_url = urllib.parse.unquote(data_url)
+ elif player_encrypt == 2:
+ data_url = urllib.parse.unquote(base64.b64decode(data_url).decode('ascii'))
# if it is an embedded iframe, maybe it's an external source
headers = {'Referer': webpage_url}
- if data_from == 'iframe':
+ if player_data.get('from') == 'iframe':
# use _type url_transparent to retain the meaningful details
# of the video.
return {