0
0
Fork 0
mirror of https://github.com/yt-dlp/yt-dlp.git synced 2024-10-30 22:52:40 +00:00

[ie/duboku] Fix m3u8 formats extraction (#9161)

Closes #9159
Authored by: DmitryScaletta
This commit is contained in:
DmitryScaletta 2024-03-09 18:46:11 +03:00 committed by GitHub
parent c8c9039e64
commit d3d4187da9
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -1,4 +1,6 @@
import base64
import re import re
import urllib.parse
from .common import InfoExtractor from .common import InfoExtractor
from ..compat import compat_urlparse from ..compat import compat_urlparse
@ -129,11 +131,15 @@ def _real_extract(self, url):
data_url = player_data.get('url') data_url = player_data.get('url')
if not data_url: if not data_url:
raise ExtractorError('Cannot find url in player_data') 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 # if it is an embedded iframe, maybe it's an external source
headers = {'Referer': webpage_url} headers = {'Referer': webpage_url}
if data_from == 'iframe': if player_data.get('from') == 'iframe':
# use _type url_transparent to retain the meaningful details # use _type url_transparent to retain the meaningful details
# of the video. # of the video.
return { return {