Compare commits

...

3 Commits

Author SHA1 Message Date
rcombs
67c757b1b4
Merge bab2e67113 into 4b5eec0aaa 2024-11-25 08:32:59 +05:30
Jakob Kruse
4b5eec0aaa
[ie/chaturbate] Fix support for non-public streams (#11624)
Fix bug in 720b3dc453

Closes #11623
Authored by: jkruse
2024-11-24 22:20:30 +00:00
rcombs
bab2e67113
[cookies] Fix --cookies-from-browser=safari with unusual field order
These fields can be specified in any order. `DataParser` doesn't support skipping backwards, so I make a temporary copy for each.
2024-05-03 17:42:02 -07:00
2 changed files with 16 additions and 14 deletions

View File

@ -677,14 +677,17 @@ def _parse_safari_cookies_record(data, jar, logger):
_creation_date = _mac_absolute_time_to_posix(p.read_double()) # noqa: F841
try:
p.skip_to(domain_offset)
domain = p.read_cstring()
temp = DataParser(data, logger)
temp.skip_to(domain_offset)
domain = temp.read_cstring()
p.skip_to(name_offset)
name = p.read_cstring()
temp = DataParser(data, logger)
temp.skip_to(name_offset)
name = temp.read_cstring()
p.skip_to(path_offset)
path = p.read_cstring()
temp = DataParser(data, logger)
temp.skip_to(path_offset)
path = temp.read_cstring()
p.skip_to(value_offset)
value = p.read_cstring()

View File

@ -59,16 +59,15 @@ def _extract_from_api(self, video_id, tld):
'Accept': 'application/json',
}, fatal=False, impersonate=True) or {}
status = response.get('room_status')
if status != 'public':
if error := self._ERROR_MAP.get(status):
raise ExtractorError(error, expected=True)
self.report_warning('Falling back to webpage extraction')
return None
m3u8_url = response.get('url')
if not m3u8_url:
status = response.get('room_status')
if error := self._ERROR_MAP.get(status):
raise ExtractorError(error, expected=True)
if status == 'public':
self.raise_geo_restricted()
self.report_warning(f'Got status "{status}" from API; falling back to webpage extraction')
return None
return {
'id': video_id,