use youtube_captions::DigestScraper;
use youtube_captions::language_tags::LanguageTag;

pub async fn get_transcript(video_id: &str, language: &LanguageTag) -> Vec<String> {
    let scraper = DigestScraper::new(reqwest::Client::new());
    let digest = scraper.fetch(video_id, None).await.unwrap();
    let captions_parser = digest.captions.into_iter().find(|cap| language.matches(&cap.lang_tag)).unwrap();
    let transcript = captions_parser.fetch_srv1().await.unwrap();
    let result = transcript.segments.iter().map(|s|s.value.clone()).collect();
    result
}

pub async fn get_languages(video_id: &str) -> Vec<String> {
    let scraper = DigestScraper::new(reqwest::Client::new());
    let digest = scraper.fetch(video_id, None).await.unwrap();
    let result = digest.captions.into_iter().map(|cap|cap.lang_tag.into_string()).collect();
    result
}

Изменить пасту