diff options
author | coletdev <coletdjnz@protonmail.com> | 2022-04-02 19:11:14 +1300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-04-02 06:11:14 +0000 |
commit | ad210f4fd460574436dc65d3c3cee041c905c46f (patch) | |
tree | 1ee3059a19be50dabf8eb4df5985a902ab7f3a9e | |
parent | c8e856a551730c289d9ef8f0674620753de6c5be (diff) | |
download | hypervideo-pre-ad210f4fd460574436dc65d3c3cee041c905c46f.tar.lz hypervideo-pre-ad210f4fd460574436dc65d3c3cee041c905c46f.tar.xz hypervideo-pre-ad210f4fd460574436dc65d3c3cee041c905c46f.zip |
[youtube:search] Support hashtag entries (#3265)
Authored-by: coletdjnz
-rw-r--r-- | yt_dlp/extractor/youtube.py | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/yt_dlp/extractor/youtube.py b/yt_dlp/extractor/youtube.py index 19b4985f6..4e6a80911 100644 --- a/yt_dlp/extractor/youtube.py +++ b/yt_dlp/extractor/youtube.py @@ -3903,6 +3903,13 @@ class YoutubeTabBaseInfoExtractor(YoutubeBaseInfoExtractor): if video_id: return self._extract_video(video_renderer) + def _hashtag_tile_entry(self, hashtag_tile_renderer): + url = urljoin('https://youtube.com', traverse_obj( + hashtag_tile_renderer, ('onTapCommand', 'commandMetadata', 'webCommandMetadata', 'url'))) + if url: + return self.url_result( + url, ie=YoutubeTabIE.ie_key(), title=self._get_text(hashtag_tile_renderer, 'hashtag')) + def _post_thread_entries(self, post_thread_renderer): post_renderer = try_get( post_thread_renderer, lambda x: x['post']['backstagePostRenderer'], dict) @@ -3991,6 +3998,7 @@ class YoutubeTabBaseInfoExtractor(YoutubeBaseInfoExtractor): 'videoRenderer': lambda x: [self._video_entry(x)], 'playlistRenderer': lambda x: self._grid_entries({'items': [{'playlistRenderer': x}]}), 'channelRenderer': lambda x: self._grid_entries({'items': [{'channelRenderer': x}]}), + 'hashtagTileRenderer': lambda x: [self._hashtag_tile_entry(x)] } for key, renderer in isr_content.items(): if key not in known_renderers: @@ -5520,7 +5528,17 @@ class YoutubeSearchURLIE(YoutubeTabBaseInfoExtractor): 'id': 'python', 'title': 'python', } - + }, { + 'url': 'https://www.youtube.com/results?search_query=%23cats', + 'playlist_mincount': 1, + 'info_dict': { + 'id': '#cats', + 'title': '#cats', + 'entries': [{ + 'url': r're:https://(www\.)?youtube\.com/hashtag/cats', + 'title': '#cats', + }], + }, }, { 'url': 'https://www.youtube.com/results?q=test&sp=EgQIBBgB', 'only_matching': True, |