Photos on Instagram have been generating less reach than videos for some time now. The problem is that videos often take a long time to produce.
Fortunately, artificial intelligence can help you create content quickly and easily. All it takes is the right tools.
So in this tutorial, we're going to show you how to auto-generate a subtitled Instagram video using ChatGPT. We'll be using Make to create a script to make a video like this:
Create an Abyssale template
Start by creating a new video template from your Abyssale dashboard.
Choose the format of your choice. *For our example, we've chosen the Reels format (1080 x 1920), one of the most popular on the network.
For the structure of your video, you can choose between :
- a succession of images
- a "classic" video
- For our example, we'll use a "classic" video for the animation. The video lasts a total of 20 seconds.
All that remains is to add the subtitles.
We choose to add 12 text zones that appear one after the other for 1.5 seconds. We'll name each text box as follows:
- Text1
- Text2
- Text3
- etc
- Make sure we don't exceed 27 characters per text zone.
Here's what our builder looks like once our template is complete :
On the template, take care to select the central alignment of the text in relation to the zone, both vertically and horizontally. Simply select the text zone and change this in the builder's right-hand column.
Your template is ready. Now you need a database to hold all the information that will be used to populate the template.
Create a Google Sheets
This will hold both the inputs and outputs of the scenarios you've created.
Include a column for :
- The subject of the scenario
- The video (if you decide to make a reel with a succession of images, provide as many columns as there are images).
- ChatGPT input (this is the prompt for ChatGPT)
- One column for each text zone in your reels (in our example, 12 columns named Text1, Text2, Text3, ..., Text12).
- The final video
Create and test the ChatGPT prompt
This is the last step before moving on to Make.
You need to create a prompt that works for ChatGPT with a few variables. If you want to know how to create a good prompt for Chat GPT, you can read our article: How to make good prompts for AI tools
For our example, here's what we're asking Chat GPT to do:
Here's his answer:
Our prompt seems to work well for our example, so it's perfect.
If you want to use this base for your prompt, you can copy this prompt and modify it according to the video you want to create:
"You need to write an [text tone (inspiring, funny, intriguing, etc)] text for Instagram. It will serve as a subtitle for a [domain] video. It's aimed at [target] and should make them want to [objective]. The text should not exceed [number of characters] characters. Each time you write 27 characters, you must return to the line. You must write [number of lines desired, i.e. the number of text zones on your Abyssal template] lines. Do not number the lines. At the end of each line, add a "^" sign. This sign is used as a separator to place each line in a different column on Google Sheets. No hashtags or emoji should appear. Your answer must contain only the text requested. Do not start with an explanatory sentence."
Now that we've got our video template, database and ChatGPT prompt up and running, we need to automate video generation.
Create a 1st scenario on Make
We'll need to create a total of 2 scenarios.
The 1st scenario will be used to gather all the information Abyssale needs to generate the video.
The second will be used to retrieve the generated video.
Create a Google Sheets "Watch New Rows" module
This module serves as a trigger. Connect the Google Sheets you created above.
Add an OpenAI "Create a Completion" module
If you haven't already done so, you'll first need to connect your OpenAI account to this module. To do this, you'll need your API key, which you can find by logging into your OpenAI account.
For this module to work, you'll also need to have enough (paid) credits on your OpenAI account.
To view your credits or top up your OpenAI account, click on Personal in the top right-hand corner next to your profile photo.
Then go to Manage Account > Billing > Overview. You'll be able to top up if necessary.
Once you've done this, go back to your Make scenario and fill in the module as follows:
- Select Method → Create a Prompt Completion
- Model → Text-davinci-003
- Prompt → Input ChatGPT (C) (from Google Sheets "Watch New Rows" module)
- Max token → 500 (or more depending on the length of your video)
Here's what it looks like for our example :
Add an Iterator module
For the Array, enter the following function: {{split(2.choices[].text; "^")}}
This divides the text into different entries. The "^" sign is the separator.
Add an Array Agregator module
Fill this module as follows:
- Source Module → Iterator
- Target Structure Type → Custom
- Aggregated fields → Value
Add an Abyssale "Generate Video" module
Select the template and format you wish to generate.
Then fill in the various template elements with the corresponding variables.
For the video, select the column from the "Watch New Rows" Google Sheets module. *In our example, this is Video Background (B).
For text boxes, select the Value from the Array Aggregator module. Then, between "Array[" and "] : value", add the number of the text zone.
This is how it should look:
Once this is done for each text zone, don't forget to click on the OK button.
Add a final Google Sheets module, "Update a Row".
This module will allow you to fill in the columns for the text zones. *As a reminder, in our example we have 12.
After selecting your Google Sheets document, fill it in as follows:
- Row Number → Row Number (from the Google Sheets "Watch New Rows" module)
- Text1 (D) → array[1].value
- Text2 (E) → array[2].value
- Text3 (F) → array[3].value
- etc
The 1ᵉʳ scenario is finished. Remember to save it.
Create a 2ᵈ Make scenario
This scenario will retrieve the video generated by Abyssale in order to exploit it and publish it on Instagram.
Add an Abyssale module "Watch New File Batch"
Create a new Webhook and copy its address.
Then go to your Abyssale dashboard. Click on Settings>Webhooks. Then click on "Create New Webhook ". Paste your URL, check "New Banner Batch " and select your template as Template Filter.
Confirm by clicking on Create Webhook, then return to your Make scenario.
Add an Iterator module
Fill in the Array line as follows: banners[].file.cdn_url
Add a Google Sheets "Add a Row" module
Connect your Google Sheets document and in the last column (column (P) for our example), add the Value variable from the Iterator module.
Your scenario is ready. Save it and test it.
To test it, first fill in your Google Sheet with the url of a video and the prompt for ChatGPT.
Then activate scenario 2. It should run in a vacuum. You should then activate scenario 1.
After a few seconds, you'll see the empty columns fill up on your Google Sheets. Then, after a few minutes, a new line will appear, containing the url of your final video.
Click on the url to open it and check the result. Don't hesitate to modify the Abyssale template or ChatGPT prompt if you notice any imperfections. On the other hand, if you're happy with the result, right-click "save video as..."..
Then all you have to do is post the video to your Instagram account and let the algorithm do its work. Don't forget to add background music and make sure your description is accurate.
If you'd like to discover even more tips for automating visual creation, follow us on Linkedin.