fix: handle player returning no adaptive stream URLs

This commit is contained in:
ThetaDev 2025-03-24 01:28:07 +01:00
parent 4ce6746be5
commit 07db7b1166
No known key found for this signature in database
GPG key ID: E319D3C5148D65B6

View file

@ -383,6 +383,20 @@ impl MapResponse<VideoPlayer> for response::Player {
video_details.video_id, ctx.id
)));
}
// Sometimes YouTube Desktop does not output any URLs for adaptive streams.
// Since this is currently rare, it is best to retry the request in this case.
if !is_live
&& !streaming_data.adaptive_formats.c.is_empty()
&& streaming_data
.adaptive_formats
.c
.iter()
.all(|f| f.url.is_none() && f.signature_cipher.is_none())
{
return Err(ExtractionError::InvalidData(
"no adaptive stream URLs".into(),
));
}
let video_info = VideoPlayerDetails {
id: video_details.video_id,