This commit is contained in:
2026-03-01 14:53:34 +01:00
parent cb272b9cd9
commit f273c60f35
2 changed files with 51 additions and 19 deletions
+27 -10
View File
@@ -1,5 +1,3 @@
use core::ops::Deref;
use futures::StreamExt;
use postcard::from_bytes;
use types::jobs::Job;
@@ -11,12 +9,14 @@ async fn main() {
let nats_client = async_nats::connect("nats://localhost:4222")
.await
.expect("Error creating nats client");
let mut subscriber = nats_client
.queue_subscribe("corro-dj.*", "download".to_string())
.await
.unwrap();
let libraries = Libraries::new(which("yt-dlp").unwrap(), which("ffmpeg").unwrap());
let downloader = Downloader::builder(libraries, "output")
.build()
.await
@@ -25,23 +25,40 @@ async fn main() {
// Receive and process messages
while let Some(message) = subscriber.next().await {
println!("Received message {:?}", message);
let result: Job = from_bytes(message.payload.deref()).unwrap();
let result: Job = from_bytes(&message.payload).unwrap();
println!("{:?}", result);
let video = downloader
.fetch_video_infos(result.inner.str)
.await
.unwrap();
let video = match downloader.fetch_video_infos(result.inner.str).await {
Ok(video) => video,
Err(why) => {
println!("{:?}", why);
continue;
}
};
let audio_path = downloader
let audio_path = match downloader
.download_audio_stream_with_quality(
&video,
format!("{}.opus", video.id),
yt_dlp::model::AudioQuality::Best,
yt_dlp::model::AudioCodecPreference::Opus,
)
.await;
.await
{
Ok(path) => path,
Err(why) => {
println!("{:?}", why);
continue;
}
};
println!("{:?}", audio_path);
println!("reply: {:?}", audio_path);
if let Some(reply) = message.reply {
nats_client
.publish(reply, format!("{:?}", audio_path).into())
.await
.unwrap();
}
}
}