aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbashonly <88596187+bashonly@users.noreply.github.com>2023-10-28 03:02:13 -0500
committerGitHub <noreply@github.com>2023-10-28 08:02:13 +0000
commitef79d20dc9d27ac002a7196f073b37f2f2721aed (patch)
treea485a64444ac08eba791477be98f49941e09334a
parent39abae23546160fa98ac2b0c91e3d69fa965b573 (diff)
[ie/youtube] Check newly uploaded iOS HLS formats (#8336)
Closes #7747 Authored by: bashonly
-rw-r--r--yt_dlp/YoutubeDL.py2
-rw-r--r--yt_dlp/extractor/youtube.py8
2 files changed, 9 insertions, 1 deletions
diff --git a/yt_dlp/YoutubeDL.py b/yt_dlp/YoutubeDL.py
index d066efdc7..f10167826 100644
--- a/yt_dlp/YoutubeDL.py
+++ b/yt_dlp/YoutubeDL.py
@@ -2338,7 +2338,7 @@ class YoutubeDL:
return
for f in formats:
- if f.get('has_drm'):
+ if f.get('has_drm') or f.get('__needs_testing'):
yield from self._check_formats([f])
else:
yield f
diff --git a/yt_dlp/extractor/youtube.py b/yt_dlp/extractor/youtube.py
index ded0f9150..ddbd614d6 100644
--- a/yt_dlp/extractor/youtube.py
+++ b/yt_dlp/extractor/youtube.py
@@ -4560,6 +4560,14 @@ class YoutubeIE(YoutubeBaseInfoExtractor):
self._parse_time_text(self._get_text(vpir, 'dateText'))) or upload_date
info['upload_date'] = upload_date
+ if upload_date and live_status not in ('is_live', 'post_live', 'is_upcoming'):
+ # Newly uploaded videos' HLS formats are potentially problematic and need to be checked
+ upload_datetime = datetime_from_str(upload_date).replace(tzinfo=datetime.timezone.utc)
+ if upload_datetime >= datetime_from_str('today-1day'):
+ for fmt in info['formats']:
+ if fmt.get('protocol') == 'm3u8_native':
+ fmt['__needs_testing'] = True
+
for s_k, d_k in [('artist', 'creator'), ('track', 'alt_title')]:
v = info.get(s_k)
if v: