From 34917076ad9844eddfa4ea97656d81a7fefe5d59 Mon Sep 17 00:00:00 2001 From: coletdjnz Date: Sat, 17 Jul 2021 18:20:05 +1200 Subject: [PATCH] [youtube] Fix authentication when using multiple accounts `SESSION_INDEX` in `ytcfg` is the index of the active account and should be sent as `X-Goog-AuthUser` header Closes #518 Authored by @colethedj --- yt_dlp/extractor/youtube.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/yt_dlp/extractor/youtube.py b/yt_dlp/extractor/youtube.py index d0056203f..e7ac41cb1 100644 --- a/yt_dlp/extractor/youtube.py +++ b/yt_dlp/extractor/youtube.py @@ -533,7 +533,9 @@ def _generate_api_headers(self, ytcfg=None, identity_token=None, account_syncid= headers['X-Youtube-Identity-Token'] = identity_token if account_syncid: headers['X-Goog-PageId'] = account_syncid - headers['X-Goog-AuthUser'] = 0 + session_index = try_get(ytcfg, lambda x: x['SESSION_INDEX'], compat_str) + if account_syncid or session_index: + headers['X-Goog-AuthUser'] = session_index or 0 if visitor_data: headers['X-Goog-Visitor-Id'] = visitor_data auth = self._generate_sapisidhash_header(origin)