youtube_captions/
lib.rs

1mod error;
2pub mod format;
3mod scraper;
4
5#[doc(inline)]
6pub use error::{Error, Result};
7
8pub use scraper::*;
9
10pub mod language_tags {
11  pub use language_tags::{LanguageTag, ParseError, ValidationError};
12}
13
14#[cfg(test)]
15mod tests {
16  use language_tags::LanguageTag;
17
18  use crate::scraper::DigestScraper;
19
20  type Result<T, E = Box<dyn std::error::Error>> = std::result::Result<T, E>;
21
22  #[tokio::test]
23  async fn it_works() -> Result<()> {
24    let video_id = "JRMOIE_wAFk";
25    let scraper = DigestScraper::new(reqwest::Client::new());
26    let digest = scraper.fetch(video_id, None).await?;
27    let en = LanguageTag::parse("en")?;
28    let en_caption = digest.captions.into_iter().find(|cap| en.matches(&cap.lang_tag)).unwrap();
29    dbg!(en_caption);
30
31    Ok(())
32  }
33}