// Throwaway live diagnostic (playback-outage triage). Not shipped. use std::sync::Arc; use strawcore_core::downloader::ReqwestDownloader; use strawcore_core::youtube::stream_extractor::{stream_info_with, ExtractOptions}; use strawcore_core::NewPipe; fn client_of(url: &str) -> String { url.split('&') .find_map(|kv| kv.strip_prefix("c=")) .unwrap_or("?") .to_string() } fn report(label: &str, vid: &str, visionos: bool) { let opts = ExtractOptions { fetch_visionos_client: visionos, ..Default::default() }; match stream_info_with(vid, opts) { Ok(i) => { let a = i.audio_streams.first().map(|s| client_of(&s.url)); let v = i .video_streams .first() .or_else(|| i.video_only_streams.first()) .map(|s| client_of(&s.url)); println!( "[{label}] OK audio={} video={} video_only={} dash={} hls={} | first audio c={:?} first video c={:?}", i.audio_streams.len(), i.video_streams.len(), i.video_only_streams.len(), i.dash_manifest_url.is_some(), i.hls_manifest_url.is_some(), a, v, ); } Err(e) => println!("[{label}] ERR {e:?}"), } } fn main() { let dl = Arc::new(ReqwestDownloader::new().expect("downloader")); NewPipe::init(dl); let vid = std::env::args() .nth(1) .unwrap_or_else(|| "dQw4w9WgXcQ".into()); report("visionOS ON (shipped)", &vid, true); report("visionOS OFF (like 91) ", &vid, false); }