 Okay, last time when we left off we were retrieving a podcast mp3 URL from the RSS feed and logging it out in this function here. And now what we want to do is be able to go retrieve that mp3 file from the URL, download it to our file system and transcribe it, then delete the file from the file system. So a few things we need to do first. One is when we were loading the app, we were just going ahead and testing this out on a temporary file in our file system. I've deleted those files from the file system, but now I need to delete all the code that calls that. So we still want that function that test open AI config because that's going to be helpful later in actually creating our transcription, but let's go ahead and just delete that endpoint and then back down here. So this is a potentially very long podcast episode. We don't want to keep testing a bunch of times on an long podcast. So I went to rss.com and just uploaded a very short audio file. It's about three minutes long. And I'm calling it a podcast. And anyway, they provide this rss feed here, and if I go to that rss feed URL, I can search for the mp3. So for now, let's grab from a static mp3 URL, and we'll call this tempurl. And then I'm just pasting that link. So for now, while we do our tests, we're just going to work with something that's about three minutes long. It'll give us a sense of latency, and it'll allow us to handle loaders or asynchronous calls and things like that pretty realistically. But we're not going to be constantly pinging the open AI transcription API with a hour-long podcast. So now I wrote a function at a time. This took me a while to figure out, called get audio from URL. And I'll explain how that works, but let's go ahead and call that tempurl. And it's going to return a file path on our local file system. And it's in a synchronous function, so we're just going to wait for its response, and then let's go ahead and log that file path. All right. So up here in this function, we're taking the URL, and we're using the HTTPS MPM module, which we'll need to install. We're getting that URL, waiting for a response. And that response is going to come back in chunks. And with those chunks, we are going to push them to an array. And we're going to assemble that array into a buffer. Write that buffer to our file system as the compiled MP3. And then we're going to return the place on our file system where that MP3 lives. And we're just going back a directory here to log it outside of our server directory. So a few things we need to do, we need to install those modules. GitHub Copilot realizes that we need those. And actually, this is the module I normally use to assign just a random ID as a file name to prevent file name conflicts. But I know that this does not work with the require syntax. So I'm going to use a different one, which is uuid, so dv4. So here I'm just importing that v4 as the name uuidv4. Don't need nano ID. Let's just see what happens here. Matter what we put in here, because we're not using this podcast for now. It gave us a file path. We have the MP3 file. And let's make sure, because this has been a problem in the past, that this actually plays. It does. We know we've got a working file. Once we have that file, we need to actually create our transcription, await, transcribe audio, file path, log that transcription. This function does not exist because we called it test open AI config, but we're going to change it to transcribe audio. It's going to now accept a file path instead of just specifying this static one here. Turn the response.data to the transcription. Let's try that out. It's American Life. Yes, we know. It goes to Bobby Dunbar. Look at our server here. Across our fingers. Something's happening. And we got our transcription. So everything is wired up to now work with files from a URL, assuming that is a valid MP3 that's coming back from the podcast index API. And I will say that I have gotten a number of MP3 URLs from those RSS feeds that are not linking to actual valid MP3s. So I know we didn't cover a ton here, but I'm going to stop this tutorial because in the next one, I want people to be able to jump in right to the meat of what this whole thing is about, which is how to do all the AI stuff, be able to turn this transcript that we got into something that we can ask questions about to an AI and it can provide answers on. So we'll jump into that in the next one.