Skip to content

Commit

Permalink
[youtube] Setup CONSENT cookie when needed (closes #28604)
Browse files Browse the repository at this point in the history
  • Loading branch information
dstftw committed Mar 31, 2021
1 parent b97fb2e commit 14f29f0
Showing 1 changed file with 16 additions and 0 deletions.
16 changes: 16 additions & 0 deletions youtube_dl/extractor/youtube.py
Original file line number Diff line number Diff line change
Expand Up @@ -249,7 +249,23 @@ def warn(message):

return True

def _initialize_consent(self):
cookies = self._get_cookies('https://www.youtube.com/')
if cookies.get('__Secure-3PSID'):
return
consent_id = None
consent = cookies.get('CONSENT')
if consent:
if 'YES' in consent.value:
return
consent_id = self._search_regex(
r'PENDING\+(\d+)', consent.value, 'consent', default=None)
if not consent_id:
consent_id = random.randint(100, 999)
self._set_cookie('.youtube.com', 'CONSENT', 'YES+cb.20210328-17-p0.en+FX+%s' % consent_id)

This comment has been minimized.

Copy link
@glubsy

glubsy Apr 4, 2021

Can anyone shed light on this hardcoded value? I assume the date is when the consent was "given" but what about the rest of it?

This comment has been minimized.

Copy link
@glubsy

glubsy Apr 4, 2021

Upon further investigations, it seems that's just the string set by Youtube, although in my test I only had +F+%s instead of +FX+%s.


def _real_initialize(self):
self._initialize_consent()
if self._downloader is None:
return
if not self._login():
Expand Down

0 comments on commit 14f29f0

Please sign in to comment.