mirror of https://github.com/yt-dlp/yt-dlp.git
[extractor/youtube] Handle `consent.youtube`
This commit is contained in:
parent
dad2210c0c
commit
b032ff0f03
|
@ -21,7 +21,8 @@ from .youtube import ( # Youtube is moved to the top to improve performance
|
||||||
YoutubeYtBeIE,
|
YoutubeYtBeIE,
|
||||||
YoutubeYtUserIE,
|
YoutubeYtUserIE,
|
||||||
YoutubeWatchLaterIE,
|
YoutubeWatchLaterIE,
|
||||||
YoutubeShortsAudioPivotIE
|
YoutubeShortsAudioPivotIE,
|
||||||
|
YoutubeConsentRedirectIE,
|
||||||
)
|
)
|
||||||
|
|
||||||
from .abc import (
|
from .abc import (
|
||||||
|
|
|
@ -5139,7 +5139,7 @@ class YoutubeTabIE(YoutubeTabBaseInfoExtractor):
|
||||||
IE_DESC = 'YouTube Tabs'
|
IE_DESC = 'YouTube Tabs'
|
||||||
_VALID_URL = r'''(?x:
|
_VALID_URL = r'''(?x:
|
||||||
https?://
|
https?://
|
||||||
(?:\w+\.)?
|
(?!consent\.)(?:\w+\.)?
|
||||||
(?:
|
(?:
|
||||||
youtube(?:kids)?\.com|
|
youtube(?:kids)?\.com|
|
||||||
%(invidious)s
|
%(invidious)s
|
||||||
|
@ -6949,6 +6949,51 @@ class YoutubeClipIE(YoutubeTabBaseInfoExtractor):
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
class YoutubeConsentRedirectIE(YoutubeBaseInfoExtractor):
|
||||||
|
IE_NAME = 'youtube:consent'
|
||||||
|
IE_DESC = False # Do not list
|
||||||
|
_VALID_URL = r'https?://consent\.youtube\.com/m\?'
|
||||||
|
_TESTS = [{
|
||||||
|
'url': 'https://consent.youtube.com/m?continue=https%3A%2F%2Fwww.youtube.com%2Flive%2FqVv6vCqciTM%3Fcbrd%3D1&gl=NL&m=0&pc=yt&hl=en&src=1',
|
||||||
|
'info_dict': {
|
||||||
|
'id': 'qVv6vCqciTM',
|
||||||
|
'ext': 'mp4',
|
||||||
|
'age_limit': 0,
|
||||||
|
'uploader_id': 'UCIdEIHpS0TdkqRkHL5OkLtA',
|
||||||
|
'comment_count': int,
|
||||||
|
'chapters': 'count:13',
|
||||||
|
'upload_date': '20221223',
|
||||||
|
'thumbnail': 'https://i.ytimg.com/vi/qVv6vCqciTM/maxresdefault.jpg',
|
||||||
|
'channel_url': 'https://www.youtube.com/channel/UCIdEIHpS0TdkqRkHL5OkLtA',
|
||||||
|
'uploader_url': 'http://www.youtube.com/channel/UCIdEIHpS0TdkqRkHL5OkLtA',
|
||||||
|
'like_count': int,
|
||||||
|
'release_date': '20221223',
|
||||||
|
'tags': ['Vtuber', '月ノ美兎', '名取さな', 'にじさんじ', 'クリスマス', '3D配信'],
|
||||||
|
'title': '【 #インターネット女クリスマス 】3Dで歌ってはしゃぐインターネットの女たち【月ノ美兎/名取さな】',
|
||||||
|
'view_count': int,
|
||||||
|
'playable_in_embed': True,
|
||||||
|
'duration': 4438,
|
||||||
|
'availability': 'public',
|
||||||
|
'channel_follower_count': int,
|
||||||
|
'channel_id': 'UCIdEIHpS0TdkqRkHL5OkLtA',
|
||||||
|
'categories': ['Entertainment'],
|
||||||
|
'live_status': 'was_live',
|
||||||
|
'release_timestamp': 1671793345,
|
||||||
|
'channel': 'さなちゃんねる',
|
||||||
|
'description': 'md5:6aebf95cc4a1d731aebc01ad6cc9806d',
|
||||||
|
'uploader': 'さなちゃんねる',
|
||||||
|
},
|
||||||
|
'add_ie': ['Youtube'],
|
||||||
|
'params': {'skip_download': 'Youtube'},
|
||||||
|
}]
|
||||||
|
|
||||||
|
def _real_extract(self, url):
|
||||||
|
redirect_url = url_or_none(parse_qs(url).get('continue', [None])[-1])
|
||||||
|
if not redirect_url:
|
||||||
|
raise ExtractorError('Invalid cookie consent redirect URL', expected=True)
|
||||||
|
return self.url_result(redirect_url)
|
||||||
|
|
||||||
|
|
||||||
class YoutubeTruncatedIDIE(InfoExtractor):
|
class YoutubeTruncatedIDIE(InfoExtractor):
|
||||||
IE_NAME = 'youtube:truncated_id'
|
IE_NAME = 'youtube:truncated_id'
|
||||||
IE_DESC = False # Do not list
|
IE_DESC = False # Do not list
|
||||||
|
|
Loading…
Reference in New Issue