aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorpukkandan <pukkandan.ytdlp@gmail.com>2023-03-23 19:09:29 +0530
committerpukkandan <pukkandan.ytdlp@gmail.com>2023-03-23 21:49:44 +0530
commit6994afc030d2a786d8032075ed71a14d7eac5a4f (patch)
tree468b828ff2d0ad3499b3e549263053e9c330e527
parent78bc1868ff3352108ab2911033d1ac67a55f151e (diff)
downloadhypervideo-pre-6994afc030d2a786d8032075ed71a14d7eac5a4f.tar.lz
hypervideo-pre-6994afc030d2a786d8032075ed71a14d7eac5a4f.tar.xz
hypervideo-pre-6994afc030d2a786d8032075ed71a14d7eac5a4f.zip
[extractor/rumble] Fix videos without quality selection
Closes #6612
-rw-r--r--yt_dlp/extractor/rumble.py30
1 files changed, 28 insertions, 2 deletions
diff --git a/yt_dlp/extractor/rumble.py b/yt_dlp/extractor/rumble.py
index 834fe704f..98f660f8b 100644
--- a/yt_dlp/extractor/rumble.py
+++ b/yt_dlp/extractor/rumble.py
@@ -8,8 +8,10 @@ from ..utils import (
UnsupportedError,
clean_html,
determine_ext,
+ format_field,
get_element_by_class,
int_or_none,
+ join_nonempty,
parse_count,
parse_iso8601,
traverse_obj,
@@ -165,7 +167,13 @@ class RumbleEmbedIE(InfoExtractor):
formats = []
for ext, ext_info in (video.get('ua') or {}).items():
- for height, video_info in (ext_info or {}).items():
+ if isinstance(ext_info, dict):
+ for height, video_info in ext_info.items():
+ if not traverse_obj(video_info, ('meta', 'h', {int_or_none})):
+ video_info.setdefault('meta', {})['h'] = height
+ ext_info = ext_info.values()
+
+ for video_info in ext_info:
meta = video_info.get('meta') or {}
if not video_info.get('url'):
continue
@@ -183,7 +191,7 @@ class RumbleEmbedIE(InfoExtractor):
'ext': ext,
'acodec': 'none' if timeline else None,
'url': video_info['url'],
- 'format_id': '%s-%sp' % (ext, height),
+ 'format_id': join_nonempty(ext, format_field(meta, 'h', '%sp')),
'format_note': 'Timeline' if timeline else None,
'fps': None if timeline else video.get('fps'),
**traverse_obj(meta, {
@@ -271,6 +279,24 @@ class RumbleIE(InfoExtractor):
'live_status': 'not_live',
'thumbnail': 'https://sp.rmbl.ws/s8/1/d/x/2/O/dx2Oi.qR4e-small-The-U.S.-CANNOT-hide-this-i.jpg',
},
+ }, {
+ 'url': 'https://rumble.com/v2e7fju-the-covid-twitter-files-drop-protecting-fauci-while-censoring-the-truth-wma.html',
+ 'info_dict': {
+ 'id': 'v2blzyy',
+ 'ext': 'mp4',
+ 'live_status': 'was_live',
+ 'release_timestamp': 1679446804,
+ 'description': 'md5:2ac4908ccfecfb921f8ffa4b30c1e636',
+ 'release_date': '20230322',
+ 'timestamp': 1679445692,
+ 'duration': 4435,
+ 'upload_date': '20230322',
+ 'title': 'The Covid Twitter Files Drop: Protecting Fauci While Censoring The Truth w/Matt Taibbi',
+ 'uploader': 'Kim Iversen',
+ 'channel_url': 'https://rumble.com/c/KimIversen',
+ 'channel': 'Kim Iversen',
+ 'thumbnail': 'https://sp.rmbl.ws/s8/1/6/b/w/O/6bwOi.qR4e-small-The-Covid-Twitter-Files-Dro.jpg',
+ },
}]
_WEBPAGE_TESTS = [{