fix: validate stream_url and clear stale session on error

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-09-21 10:59:10 -04:00
parent 16812447ef
commit 3e469a931f
2 changed files with 23 additions and 13 deletions

View File

@@ -60,6 +60,10 @@ pub fn resolve(url: &str, cookie_source: &CookieSource) -> Result<VideoMetadata,
.trim() .trim()
.to_string(); .to_string();
if stream_url.is_empty() {
return Err("yt-dlp returned an empty stream URL".to_string());
}
Ok(VideoMetadata { Ok(VideoMetadata {
url: url.to_string(), url: url.to_string(),
title: meta.title, title: meta.title,

View File

@@ -38,19 +38,7 @@ export function setMetadata(meta: VideoMetadata) {
session.thumbnailSpritesheets = []; session.thumbnailSpritesheets = [];
} }
export function setError(msg: string) { function clearMediaFields() {
session.status = 'error';
session.error = msg;
}
export function setResolving() {
session.status = 'resolving';
session.error = null;
}
export function reset() {
session.status = 'idle';
session.error = null;
session.url = ''; session.url = '';
session.title = ''; session.title = '';
session.duration = 0; session.duration = 0;
@@ -65,3 +53,21 @@ export function reset() {
session.waveformPeaks = []; session.waveformPeaks = [];
session.thumbnailSpritesheets = []; session.thumbnailSpritesheets = [];
} }
export function setError(msg: string) {
reset();
session.status = 'error';
session.error = msg;
}
export function setResolving() {
clearMediaFields();
session.status = 'resolving';
session.error = null;
}
export function reset() {
clearMediaFields();
session.status = 'idle';
session.error = null;
}