Let's Build a Sora AI Influencer with Zapier β
Let's build with Zapier and AI (100+ videos)π
2025-11-07
Transcript β
[00:00] How do we take sore-l like videos and post them on any social media and done automatically? I'm going to show you step by step how you can create a social media brand that [music] automatically creates content leveraging this Sora API. Welcome back y'all. On today's video, we're going to be leveraging SOAR API so we can automatically create video content. And today's video is sponsored by Zapier. They hit me up and they said, Corbin, we have a cool idea for video. We need to leverage the SOA API. And I'm like, you know what? You're right. Let's do it. Zapier is an automation platform that allows us to connect all these different softwares you're about to see
[00:30] in today's video, such as uploading to YouTube, pushing this data to a Google sheet, and leveraging the actual Sora API itself. So, let's go ahead and get started here. And what I want you to do is actually create a folder. So, we create new folder. I'm going to call this Sora influencer. Save. My objective is simple. How do we automatically create Sora videos? And then you can leverage that and post anywhere on social media. Therefore, create new zap. This first automation we're going to do together is simply going to create the actual video. It's going to put in a request and you're going to notice that it's pending. Therefore, we're going to create a separate automation to listen
[01:01] for this request. So, when it's done, we can do XYZ. So, first things first, what's going to initiate your creation of a new video. This in theory could be maybe you're researching, you find a cool topic and add information here and then Zapier automatically grabs this data and puts it through the pipeline. In today's video, we'll do a simple trigger which is going to be a scheduler schedule. So the logic I want to run in this pipeline is first we're going to do a trigger event of how often we want the pipeline to run. As you can see right here we can set our frequency. So for now I will go and say every hour. We want to put out a new piece of content every single hour. Hit continue. We can
[01:31] select the relevant time. So we'll say every hour at 6:00 7:00 alternatively 6:15 7:15 whether to trigger in the weekends or not. Continue. The specific action we're looking for here is going to be a Sora video generation. By the time you watch this video it probably already exists. As of now, we're just going to do an API request to actually access this endpoint. So, I'm going do API request beta. If that option is still not there by the time you see this, then don't worry. Just follow the same steps I'm doing. Select your account. Continue. Now, this might look a little confusing. Don't worry. For one, I'll put the entire documentation for Sora API in the description down
[02:03] below. For two, simply hit copy page here. Paste it into an AI model chat. Say, "Hey, I want to integrate Sora with Zapier." It will help you out. It will show you step by step. For now though, for us, we're going to do the URL. Because we're sending data to OpenAI, we're going to use the method of post. Think of it like sending mail. You got mail. That situation. The URL is going to be this URL right here. The v1/v videos. This information is outlined here as well. If you're wondering like where's he getting all these URLs from? It's in the docs. Anytime you do a
[02:33] request like this, we're going to have to add an additional header here of content type. This is going to be application JSON. This is essentially how we're sending the data. Don't over complicate this, y'all. If you don't know what's happening up to this point, don't worry. Just talk to an AI model or just paste it in here. All JSON is is another language. If you speak German, it's Deutsch Deutsch. If you speak English, it's English. This is the way that these little bots and software, it communicates with each other. Therefore, JSON in this payload, we need to identify a couple things. First off, the model type. This is actually pretty fundamentally important for you to know. And what I mean by that is you can see
[03:04] the relevant pricing associated with each model here at OpenAI pricing. If I come down here, you can see the Sora 2 model is only 10 cents per second. Alternatively, the Sora 2 Pro is 50 cents when you use these dimensions. So, dive into the documentation a little. See what your use case is. See which model is the best fit. The higher level model will give you higher quality outputs supposedly. Try it out. Maybe you like sore too. Next is the prompt. We all know this. This is essentially telling the model, "Hey, we want this to happen in the video. I'm going to say a cinematic vertical video of a person walking through a neon lit Tokyo street
[03:34] at night rain reflecting the lights. I went to Japan during August. It was extremely hot. Trust me, there's summers. You are going to sweat. Sidetracked. Size 720 x 1280. We want that Tik Tok vertical format. And then how long you want it to be. Right now, we can do 4 seconds, 8 seconds, 12 seconds. For now, I'll do 4 seconds. Hit continue. I'm going to test this step. You'll know it's successful when you type in response here. Or actually, let's just type in Q. You'll notice it's successful when you see status is cued. You run into errors here, you can use Zapier's AI helper, or alternatively,
[04:05] use a chatbot. Now, while that video is cooking, let me show you how you make a dynamic prompt here if you want to kind of just push out content on a very specific niche. We'll do here is something very special that we've done for the past couple years here on this channel. Just add another chat GBT block, but specifically a block that identifies a dynamic variable that we'll use in the next block here when creating the video. That didn't make sense. Don't worry, you'll see what I mean. So, I'm going to choose conversation. I'm going to continue the model. I'll go GBT5. So, I went ahead and cooked up a prompt. We got generate a visually rich cinematic
[04:35] two-s sentence summary of a random event happening somewhere in Japan. First term that is very fundamentally important for you to see, random. This ensures that you get randomness in your output. Eg, one video doesn't match the other video that came out. So, when you're posting on social media, you're good to go cuz it's going to be random. The scene should feel like it's being captured through a camera, including framing or film terms such as wide shot, panning, close-up, soft light, handheld camera. I just want to give a bunch of variety here, y'all. Keep it short, vivid, and realistic as if describing the opening of a movie scene. What's big here?
[05:06] What's your niche? What kind of content do you want to make for your specific profile? Is your niche cooking? Or maybe even niched even further like pasta. Do you really like pasta? I love pasta. Or is your niche sports? Or is your niche fishing? Like you could quite literally make a whole social media profile where in the profile it's different people catching different types of fish. And it's kind of funny because sometimes the fish wilds out cuz it's AI generated. Maybe it's a big bass. Maybe they're catching like a piece of toast. Who knows? But the point being though, the purpose of this is to give us the prompt for the Sora input. Next, we're going to
[05:37] put a memory key here. We say Sora output. This ensures consistent outputs here. So, we're going to go down and this should be good and continue. Test this step. Scroll down. And here's our prompt. Yshot. Dawn missed over the Tokyo fish market as forklifts weave between crates. So on so forth. We'll actually try this as well so we can see what it looks like. I'm going to continue. Continue. And then what we can do is scroll down to original payload. And now we're making it dynamic. I delete this. I add it here. Previous output, the message content text. Click that. But what we just created together is now we have the ability every single
[06:08] hour to shoot off get a random prompt but specific to Japan. And then that prompt is then sent to be created as a Sora video. So the next question here is Corbin, how do we get the Sora video? Where is it? It's in the cloud. But how do we get to the cloud to get it? Let me show you. First off, rename this. We're going to call this Sora Creator. We're going to back out. I'm in my folder, Sora Influencer. We're going to create another zap. So, now that we have a functional pipeline to create sor videos, we now need to know when they're done. So, to do that, we're going to do a web hook. All I want you to think about when you hear web hook is this is our way of listening when the video is done. So, we're going to do catch hook
[06:38] here. Continue. Continue. And this is our URL. Mopy. Because of the fact that this is using OpenAI's API to create the Sora video, we need to go back to our dev portal. This is where you created your API key. You're going to scroll down and select web hooks. If you don't know how I got to this page, you go up to the projects, hit manage projects. Once we're here, we're going to create I'm going to call this zap zap the URL we just received. And to be honest with you all, you're learning another lesson here where essentially you can listen to any of these different things happening and incurring within your specific
[07:09] organization at OpenAI. Now, all we care about is at the very end here, which is video completed and video failed. If you find yourself hitting test trigger and no data showing up, just go back to the other automation flow we created together and just retest step to send another payload through. What you can see here though is that it was completed. Continue selected record. What we want to do next is add a filter block. The purpose of this filter block is going to stop it when it fails. So as you saw with the web hook we created, it's video completed and video failed. Therefore, let's stop the automation early if the video failed. There's no
[07:40] reason to keep going, right? So if type exactly matches video.failed, the automation would have not continued as you see right here. Therefore, we need to make sure it exactly matches completed because it tells us it actually worked. Continue. It's golden. It's green. I love it. So, now that we have that, we need to get the video check GBT. JGBT action event. This is going to be an API request again. Select your account. Continue. And now due to the fact that we need to receive data, grab data. We're going to do a HTTP method of get and based off OpenAI's documentation. The way we do that is we
[08:10] call this URL here v1 videos data ID content. the data ID because it's dynamic. We simply add that add and this will come from the web hook identified as data ID. Once that's clicked in, now we'll have the ability to grab the relevant data of the finished video. I'm going to go ahead and identify how we want to accept it. So I'm going say application octet stream. This is for video files. Continue and test step. And yes, the response is a little crazy. So let me show you a real quick workaround. We're going to be able to push this relevant link here and download the
[08:42] video using Postman. as right now sora files can be quite large. So it's harder to pass it through API. So in order to do this effectively what I want to do is going to be pass this URL to my Google sheet. So I'm going do Google sheet here action event create spreadsheet row. Select your account. I'll choose my specific spreadsheet. Aora influencer worksheet sheet one. Continue. And we'll go ahead and put in that relevant data that we care about. Right? So under download a video come over here. We'll put request URL. Continue and test this step. Here we go. Here is the request URL. I'll zoom out y'all. Now, yes, in
[09:13] theory, we could remove this step right here and just grab the relevant data from here and send it straight to the spreadsheet row. But I wanted to show you this step here. So when you want to integrate it with other platforms like YouTube or X or whatever it may be through API, now you know how to grab it in an automation flow in Zapier. For now though, what is valuable is we have the link to the video that exists. So I can copy this. I'm going to use a platform called Postman. This allows me to download directly within the UI. So what I do is I'll put in that link that we had earlier. I'll paste it right here. I'll do a get method. In authorization,
[09:44] you put in your open API key here. And when you put your API key here, you hit send. And here's our video. And before we play it, let me go ahead and just download it. So, I'm going to hit download here. All right. Here's our video. This is for Tokyo. All right. This is the forklift prompt. Let's check it out. >> True. So, now you know functionally every single hour a new video will pop up here for you to download and publish throughout different platforms. Now, a really cool workflow you could add on top of this would be setting up a Google Drive where every single time you add a
[10:15] new file in that Google Drive, eg the video we just created together, it would automatically upload a YouTube shorts for example. Now, here's the last two things I want to leave you with. The first thing is notice they don't have any sore watermarks here. So, using the API, there's no watermark. Second thing, some of y'all might be like, Corbin, that's way too short of a video. All you need to do is come back to this payload. Instead of four, put eight, put 12. This is where you identify the [clears throat] duration for the video. That just about does today's video. So, make sure you leave a like. It is completely free. And as you already know with these style videos, I'll see you in the next. Zab your plus just makes it so
[10:47] we can just create content, content, content, content. So much content. AI content. I love content. Zapier plus Sora is the best I've ever seen.