diff --git a/src/main.rs b/src/main.rs index d406b36..c5463f7 100644 --- a/src/main.rs +++ b/src/main.rs @@ -195,11 +195,10 @@ async fn async_main() { eprintln!("Failed to get video data: {:?}", err); waited = true; if let structs::Error::YoutubeDL(ref err) = err { - if err.output.contains("429") - || err - .output - .to_lowercase() - .contains("too many request") + let output = err.output.to_lowercase(); + if output.contains("429") + || output.contains("too many request") + || output.contains("technical difficult") { sleep(Duration::from_secs(i * 60 * 60)).await; i += 1; diff --git a/src/utils.rs b/src/utils.rs index 6767435..a66499c 100644 --- a/src/utils.rs +++ b/src/utils.rs @@ -170,8 +170,10 @@ pub async fn get_video_retry( Err(err) => { eprintln!("Failed to get video data: {:?}", err); if let Error::YoutubeDL(ref err) = err { - if err.output.contains("429") - || err.output.to_lowercase().contains("too many requests") + let output = err.output.to_lowercase(); + if output.contains("429") + || output.contains("too many requests") + || output.contains("technical difficult") { sleep(Duration::from_secs(i * 60 * 60)).await; continue;