58 lines
1.6 KiB
Rust
58 lines
1.6 KiB
Rust
use backend::browser::{BrowserModule, BrowserModuleConfig};
|
|
use backend::proxy::ProxyConfig;
|
|
use backend::transcript::{TranscriptConfig, YoutubeTranscriptProvider};
|
|
use backend::usage::DataUsageTracker;
|
|
|
|
#[tokio::main]
|
|
async fn main() -> anyhow::Result<()> {
|
|
let _ = dotenvy::dotenv();
|
|
backend::logs::init();
|
|
let request_id = "diag-transcript";
|
|
|
|
let video_id = std::env::args()
|
|
.nth(1)
|
|
.unwrap_or_else(|| "dQw4w9WgXcQ".into());
|
|
|
|
let proxy = ProxyConfig::from_env(request_id)?;
|
|
let usage = DataUsageTracker::new();
|
|
let browser = BrowserModule::new(
|
|
proxy,
|
|
BrowserModuleConfig {
|
|
no_sandbox: true,
|
|
navigation_timeout_secs: 75,
|
|
min_navigation_delay_ms: 500,
|
|
max_navigation_delay_ms: 1_500,
|
|
..Default::default()
|
|
},
|
|
usage,
|
|
)?;
|
|
|
|
let provider = YoutubeTranscriptProvider::new(
|
|
browser,
|
|
TranscriptConfig {
|
|
max_attempts: 1,
|
|
timeout_secs: 180,
|
|
max_concurrency: 1,
|
|
..Default::default()
|
|
},
|
|
)?;
|
|
|
|
println!("buscando legenda do vídeo {video_id}...");
|
|
match provider.fetch_transcript(request_id, &video_id).await {
|
|
Ok(t) => {
|
|
println!(
|
|
"OK language={} generated={} chars={} preview={:?}",
|
|
t.language_code,
|
|
t.is_generated,
|
|
t.text.len(),
|
|
t.text.chars().take(120).collect::<String>()
|
|
);
|
|
}
|
|
Err(e) => {
|
|
println!("ERRO: {e}");
|
|
std::process::exit(1);
|
|
}
|
|
}
|
|
Ok(())
|
|
}
|