[ie/patreon] Fix referer header used for embeds

Fix e0d6c0822930f6e63f574d46d946a58b73ecd10c

Authored by: bashonly
This commit is contained in:
bashonly 2025-05-23 04:45:42 -05:00
parent e0d6c08229
commit 23052029a0
No known key found for this signature in database
GPG Key ID: 783F096F253D15B0

View File

@ -16,6 +16,7 @@ from ..utils import (
parse_iso8601,
smuggle_url,
str_or_none,
update_url,
url_or_none,
urljoin,
)
@ -340,8 +341,9 @@ class PatreonIE(PatreonBaseIE):
'channel_follower_count': ('attributes', 'patron_count', {int_or_none}),
}))
# all-lowercase 'referer' so we can smuggle it to Generic, SproutVideo, Vimeo
headers = {'referer': url}
# Must be all-lowercase 'referer' so we can smuggle it to Generic, SproutVideo, and Vimeo.
# patreon.com URLs redirect to www.patreon.com; this matters when requesting mux.com m3u8s
headers = {'referer': update_url(url, netloc='www.patreon.com')}
# handle Vimeo embeds
if traverse_obj(attributes, ('embed', 'provider')) == 'Vimeo':
@ -352,7 +354,7 @@ class PatreonIE(PatreonBaseIE):
v_url, video_id, 'Checking Vimeo embed URL', headers=headers,
fatal=False, errnote=False, expected_status=429): # 429 is TLS fingerprint rejection
entries.append(self.url_result(
VimeoIE._smuggle_referrer(v_url, 'https://patreon.com/'),
VimeoIE._smuggle_referrer(v_url, headers['referer']),
VimeoIE, url_transparent=True))
embed_url = traverse_obj(attributes, ('embed', 'url', {url_or_none}))