>>106952210
yt-dlp doesn't take that long (not on a a real OS anyway). and you and your malware are not special. literally anything based on rustypipe does this already. e.g.
https://github.com/siriusmart/youtube-tui
# code below
% ./target/release/test-rustypipe evA33uW8jq8
done in 0.78057575s
Mp4 | Avc1 | 49564 | 144p | url_len=1142
Mp4 | Avc1 | 168133 | 360p | url_len=1141
Mp4 | Avc1 | 541926 | 720p | url_len=1135
Mp4 | Avc1 | 2986969 | 1080p | url_len=1144
M4a | Mp4a | 49815 | url_len=1143
M4a | Mp4a | 130281 | url_len=1135
Webm | Opus | 125347 | url_len=1144
use rustypipe::{client::RustyPipe, model::traits::YtStream};
use std::time::Instant;
async fn main_(id: &str) {
let rp = RustyPipe::new();
let inst = Instant::now();
let player = rp.query().player(id).await.unwrap();
eprintln!("done in {}s", inst.elapsed().as_secs_f64());
player.video_only_streams.iter().for_each(|vs| {
println!("{:?} | {:?} | {} | {} | url_len={}", vs.format, vs.codec, vs.bitrate, vs.quality, vs.url().len());
});
player.audio_streams.iter().for_each(|as_| {
println!("{:?} | {:?} | {} | url_len={}", as_.format, as_.codec, as_.bitrate, as_.url().len());
});
}
fn main() {
let id = std::env::args().nth(1).unwrap();
let rt = tokio::runtime::Runtime::new().unwrap();
rt.block_on(main_(&id));
}
stick to threads where only retards lurk.