recycleactor commited on
Commit
a90bd19
·
verified ·
1 Parent(s): 7353786

Upload main.rs

Browse files
Files changed (1) hide show
  1. src/main.rs +17 -0
src/main.rs CHANGED
@@ -840,6 +840,22 @@ async fn stream(
840
  };
841
  let mut decrypt_id = target_id;
842
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
843
  for attempt in 0..2u8 {
844
  if url.is_some() { break; }
845
 
@@ -872,6 +888,7 @@ async fn stream(
872
  }
873
  }
874
 
 
875
  let url = match url {
876
  Some(u) => u,
877
  None => {
 
840
  };
841
  let mut decrypt_id = target_id;
842
 
843
+ // Try DZMEDIA_UPSTREAM first — gives highest available quality (FLAC/320)
844
+ // We already have correct decrypt_id from ARL above, so decryption will be correct
845
+ if url.is_none() {
846
+ if let Ok(text) = upstream_get_url_text(&formats, &vec![target_id]).await {
847
+ if let Ok(v) = serde_json::from_str::<serde_json::Value>(&text) {
848
+ let format_strings: Vec<String> = formats.iter().map(|f| format!("{:?}", f)).collect();
849
+ let format_strs: Vec<&str> = format_strings.iter().map(|s| s.as_str()).collect();
850
+ let (u, _, _) = extract_media_url_and_format(&v, &format_strs);
851
+ if !u.is_empty() {
852
+ url = Some(u);
853
+ }
854
+ }
855
+ }
856
+ }
857
+
858
+ // Fallback: use ARL to get CDN URL via Deezer API (quality limited by account tier)
859
  for attempt in 0..2u8 {
860
  if url.is_some() { break; }
861
 
 
888
  }
889
  }
890
 
891
+
892
  let url = match url {
893
  Some(u) => u,
894
  None => {