mirror of
https://github.com/ytdl-org/youtube-dl.git
synced 2024-11-22 02:01:50 +00:00
[YouTube] Fix not finding videos listed under a channel's "shorts" subpage. (#31409)
Resolves #31336 Co-authored-by: Jouni Järvinen <rautamiekka@users.noreply.github.com> Co-authored-by: dirkf <fieldhouse@gmx.net>
This commit is contained in:
parent
98b0cf1cd0
commit
6d829d8119
1 changed files with 25 additions and 2 deletions
|
@ -315,7 +315,8 @@ class YoutubeBaseInfoExtractor(InfoExtractor):
|
||||||
title = try_get(
|
title = try_get(
|
||||||
renderer,
|
renderer,
|
||||||
(lambda x: x['title']['runs'][0]['text'],
|
(lambda x: x['title']['runs'][0]['text'],
|
||||||
lambda x: x['title']['simpleText']), compat_str)
|
lambda x: x['title']['simpleText'],
|
||||||
|
lambda x: x['headline']['simpleText']), compat_str)
|
||||||
description = try_get(
|
description = try_get(
|
||||||
renderer, lambda x: x['descriptionSnippet']['runs'][0]['text'],
|
renderer, lambda x: x['descriptionSnippet']['runs'][0]['text'],
|
||||||
compat_str)
|
compat_str)
|
||||||
|
@ -2207,6 +2208,24 @@ class YoutubeTabIE(YoutubeBaseInfoExtractor):
|
||||||
IE_NAME = 'youtube:tab'
|
IE_NAME = 'youtube:tab'
|
||||||
|
|
||||||
_TESTS = [{
|
_TESTS = [{
|
||||||
|
# Shorts
|
||||||
|
'url': 'https://www.youtube.com/@SuperCooperShorts/shorts',
|
||||||
|
'playlist_mincount': 5,
|
||||||
|
'info_dict': {
|
||||||
|
'description': 'Short clips from Super Cooper Sundays!',
|
||||||
|
'id': 'UCKMA8kHZ8bPYpnMNaUSxfEQ',
|
||||||
|
'title': 'Super Cooper Shorts - Shorts',
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
# Channel that does not have a Shorts tab. Test should just download videos on Home tab instead
|
||||||
|
'url': 'https://www.youtube.com/@emergencyawesome/shorts',
|
||||||
|
'info_dict': {
|
||||||
|
'description': 'md5:592c080c06fef4de3c902c4a8eecd850',
|
||||||
|
'id': 'UCDiFRMQWpcp8_KD4vwIVicw',
|
||||||
|
'title': 'Emergency Awesome - Home',
|
||||||
|
},
|
||||||
|
'playlist_mincount': 5,
|
||||||
|
}, {
|
||||||
# playlists, multipage
|
# playlists, multipage
|
||||||
'url': 'https://www.youtube.com/c/ИгорьКлейнер/playlists?view=1&flow=grid',
|
'url': 'https://www.youtube.com/c/ИгорьКлейнер/playlists?view=1&flow=grid',
|
||||||
'playlist_mincount': 94,
|
'playlist_mincount': 94,
|
||||||
|
@ -2680,7 +2699,11 @@ class YoutubeTabIE(YoutubeBaseInfoExtractor):
|
||||||
|
|
||||||
def _rich_grid_entries(self, contents):
|
def _rich_grid_entries(self, contents):
|
||||||
for content in contents:
|
for content in contents:
|
||||||
video_renderer = try_get(content, lambda x: x['richItemRenderer']['content']['videoRenderer'], dict)
|
video_renderer = try_get(
|
||||||
|
content,
|
||||||
|
(lambda x: x['richItemRenderer']['content']['videoRenderer'],
|
||||||
|
lambda x: x['richItemRenderer']['content']['reelItemRenderer']),
|
||||||
|
dict)
|
||||||
if video_renderer:
|
if video_renderer:
|
||||||
entry = self._video_entry(video_renderer)
|
entry = self._video_entry(video_renderer)
|
||||||
if entry:
|
if entry:
|
||||||
|
|
Loading…
Reference in a new issue