In this video, I demonstrate how to automatically translate YouTube video titles and descriptions using Make, OpenAI (ChatGPT), and the YouTube API. 🌎 By integrating these tools, you can easily expand your video’s reach to global audiences without the hassle of manual translations!
I’ll guide you step-by-step through setting up a workflow in Make.com that automates the translation process. We’ll use OpenAI’s ChatGPT for generating accurate translations and the YouTube API to update titles and descriptions directly on your channel, saving you time and maximizing your content’s visibility! 🚀
What You’ll Learn:
• ⚙️ How to integrate Make.com with OpenAI and YouTube API.
• 🌐 Automating translations for multilingual YouTube videos.
• 💻 Using ChatGPT for accurate and fast translations.
• 🔄 Updating YouTube video titles and descriptions automatically.
• ⏱️ Streamlining your workflow to reach new audiences globally.
This tutorial is perfect for YouTube creators looking to connect with viewers across different languages and save time on content management!
Links (I might get a commission if you sign up using these links):
Sign up with Make.com - https://www.make.com/en/register?pc=jsautomates
Download blueprint here - https://jsautomates.gumroad.com/l/YTvideotranslator
Instructions with sample JSON and Redirect URI are here - https://docs.google.com/document/d/1RCOdkDFhKOkWzxmDVDQqlq0QT2hBMX7Z97XQBRVii_s/edit?usp=sharing
Show More Show Less View Video Transcript
0:00
hey everyone my name is Janis and in today's video I'm going to show you how you can automatically translate YouTube
0:06
video titles and descriptions the tools that you will need is make.com I will
0:12
have a link in the description uh so you can sign up with make.com also you will
0:18
need your open AI API key that's for chat GPT that handles the translations
0:25
so this is the automation that translates the video titles and descriptions for YouTube so basically
0:32
what it does it gets all my YouTube videos from my channel uh then it checks a spreadsheet
0:39
where I list the languages that I want to translate uh to which to whom I want
0:47
to translate to uh after that uh when I get the video ID I can request the video
0:57
title and description that's written in English for me it can be any other language but for me originally I write
1:04
in English and then I translate to other languages uh I translate using CH GPT um
1:12
I pass him the English version of the title and English version of the
1:17
description and then it translates to the languages I specified in this Google
1:23
sheet after that I aggregate everything into Json and then I send this Json via
1:29
AP I call to YouTube to update the video details so in this video I'm going to
1:36
show you how you can build this from scratch also we're going to do some testing and I will also show you how you
1:43
can um do this uh for a certain video if you don't want to translate all your
1:49
videos just one I will show you also how to do that so we're going to create a
1:54
new scenario by clicking here first we're going to set up h HTTP
2:00
module that's going to list all our videos in our channel so we're going to
2:06
use this HTTP module make a request so the URL uh that we need to Target is
2:13
this one Google app is YouTube V3 search and
2:20
here we need to have our API key Channel ID and how many results we want to
2:26
return so I leave 60 but um for the for this video I made another
2:33
Channel just to Showcase you I have one video in this channel so but anyways I'm
2:38
going to leave uh 60 here so so we need Channel ID to get the channel ID head to
2:45
your YouTube channel and this is the channel ID right here I'm going to copy it and head to
2:53
make and paste it here so we need an API key to get an API key you need to head
3:00
to Google and access Google Cloud uh Cloud console to get our API
3:08
key and our O2 credentials to get O2 credentials I have a more detailed video
3:14
up here uh you can watch it uh to get full understanding about O2
3:21
credentials and how to obtain them but in this video I'm going to quickly show
3:26
how can we do that as well so we're going to access Google Cloud platform
3:32
console here then we're going to click on console and I have some projects here
3:39
but you will probably have this one empty so click here and click new project so this will create us a new
3:47
project it's uh YouTube uh
3:53
translation Okay click create and now it's creating the the
4:00
project for me once the project has been created
4:06
we're going to select the project as you can see we are in this project we're going to click on this burger menu uh
4:13
apis and services and going to click on enabled apis and
4:21
services so we're going to search for YouTube API and we're going to enable it
4:28
we need this YouTube data API V3 and we're going to click
4:35
enable so yeah the API has been enabled and now we're going to head to
4:41
credentials uh and uh we're going to create credentials and we're going to click on API key so it's going to create
4:47
us an API key that we can use for our request so and we're going to copy this one
4:54
don't worry I'm going to delete this one after I've I've finish the video so I
5:02
don't need to cover it up so let's head back to make and paste our API here so
5:09
now we got the full link which consist of the base URL API key and our Channel
5:16
ID and also how many results we want to get in the response we're going to click
5:21
on par response here yes and we're going to click on okay and let's make a test
5:26
run to see if we get any results so the status code is 200 which is always
5:32
good and under the items you can see I have one video and I
5:40
have my video ID that I will use in the automation now the next step that we're
5:46
going to do is we're going to add Google sheet module that's going to get us range
5:52
values I'm going to choose my YouTube video languages um sheet
6:04
sheet so where is it it's
6:09
here sheet one and the range will be A2 because the first language is first
6:18
language uh um is stated here and till
6:24
A7 if you have more languages so for example you have 20 languages is here
6:30
you're going to be having um a A2 to a21
6:35
but I'm going to be having A2 to A7 so let's going to choose it do it like
6:43
this A7 so basically this module will get all these language variables for
6:51
us next one we're going to add array
6:57
aggregator let's delete this one and we're going to use Source model as
7:03
get range Val uh sorry make a request and what we need here is
7:11
a um a column from this uh Google Sheets module and also we need data from this
7:19
one so we're going to click okay let's test this
7:26
out so now we have
7:32
French language FR uh D for German
7:38
language and as you can see it's attached all the information from what we receive
7:44
from this uh HTTP request so the next module will be iterator that's going to
7:51
iterate through all the languages that we have in this array so it's going to
7:57
iterate every collection that we have here and we're going to
8:04
select array okay now the next module is going to be
8:12
another HTTP module that we're going to use to make a request for uh the English
8:19
version of my video as you can see here under the
8:25
subtitles I have only English uh
8:31
English uh title and English description so we're going to use
8:36
HTTP make a request and we're going to make a request to this URL which is YouTube Google appies YouTube V3 videos
8:45
it's slightly different than this one because this one had search and again so
8:52
what we need here here we need our API I key which
9:00
we're going to copy from this
9:07
module and here we need the video ID so to get the video ID we're going to click
9:14
on items ID and video ID and here we're
9:19
going to always have number one in between these brace
9:25
braces or brackets or whatever they called so basically CES data items one
9:32
ID video ID so okay and let's make a test run to see if
9:38
everything is working so we got six responses for every language we get one
9:45
response so data and this is uh this the title of
9:53
the video and this is the description of the video so now we're going to add a
9:59
GPT model so we can translate this English title to the language we want to
10:06
translate it to so open
10:11
AI create a
10:17
completion by the way I will be having all these links in description so it's going to be easier for you to build the
10:23
automation also I will have the blueprint in the description so you can download it it and upload it to your
10:31
make.com account add your API keys and uh start translating your
10:38
videos so so okay we need now to set up the chbt
10:45
module uh it's going to be 40 mini This
10:51
One Max tokens I'm going to set to 4,000
10:57
let's say 10,000 and add message so it's going to be
11:03
easier if I copy my messages from this one because it's quite a long
11:10
one um so basically what the first one is a system message you are a translator
11:17
you rewrite YouTube video title and YouTube video description rewrite the whole description you make the title and
11:24
description grammatically correct and logical for titles you don't like exceed 90 characters and for descriptions you
11:32
always uh rewrite the full text make it logical you respond in Json you provide
11:39
a valid Json the Json consists of a title in translated language and
11:44
description make sure title never exceeds 90 characters for the title you
11:50
respond only with valid Jason don't add your comments you will never add these little thingies Jason at the start of
11:57
your response and you never add these little three thingies at the end of your response if
12:03
translations has have um these double brackets and please uh Escape them with
12:11
the proper syntax this one so it doesn't break the Json that's for a system prompt now
12:18
we're going to add user prompt I'm going to again copy it from
12:26
here so the video title in English
12:31
is uh we're going to get it from
12:37
items from items ID no where we going to get it oh I
12:45
see we I forgot to have a parse response here so we're going to click you must
12:52
have parse response let's unlink this let's run once you're going to get the
12:57
same D data here only in par uh
13:02
format now let's connect it so now we can the video title in
13:08
English is item under items snippet um title it's going to be always
13:17
one and the description is just right here and it's always going to be one so
13:23
you need to insert one in between these two uh variable parts and
13:30
uh in translations never use these thingies meaning don't add this thing is
13:37
to any words don't add your own comment rewrite the following uh rewrite to the
13:42
following language the language we going to select um is this one from
13:50
iterator and create Json reference to sample Jason in assistant message don't
13:55
translate hashtags so okay we're gonna add another message which is
14:02
assistant and I'm again I'm going to copy it from here it's just a sample how the response should be uh made from the
14:10
chat GPT okay and now let's test this out and see
14:15
what CH gbt gives us so basically it should give because we have six
14:21
languages here this module will run six times the same as this one so if you
14:26
have 30 languages here this uh each module will run 30 times so as you can
14:32
see here this is for fin finish Finnish
14:38
language this is for Swedish
14:45
language this is for Spanish language this is
14:51
for German language and this is for French language so basically also I need
14:58
to mention when you you you have to do all uh languages that you want to
15:04
translate in one API call because if you don't do that then um if you send only
15:10
one language via API call the rest of the languages will be deleted so that
15:17
thing I learned myself uh by doing some testing okay so we proceed to the next
15:23
step we going to add a Json module that's going to parse the Json from
15:30
jpt okay and here we're going to click on
15:36
result let's um test it out run this module only okay as you can
15:45
see we get two variables one is for title and one is description so we can use it in the
15:51
automation so after this we're going to add array aggregator module
15:59
that will aggregate start that will so use
16:06
the source model the iterator so it's going to stop the iteration process going further and we're going to need
16:13
Title description okay
16:18
um let's run this again run once and just so we can get data in all our
16:24
modules so again it's going to run six times and here here I have everything
16:30
aggregated into one array so now we're going to add Json
16:35
module that's going to aggregate everything into one Json that we can
16:40
send to um YouTube for our description
16:45
and title so Source module is going to be array
16:51
aggregator and here for the data structure this is very important we're going to click on ADD and this is going
16:57
to be Js automates uh Str
17:03
structure we're going to click on generate and here I have made this so
17:11
basically what is this so this is adjacent that consist of ID and
17:16
localizations so ID is going to be your video ID and here you must have your all
17:23
languages so for example if I want to add another language what I do I
17:29
head here to the first one I copy this going to paste it here and just change
17:36
this language variable to let's say what what other languages we do
17:41
have let's say for L and we're going to LV so this way the Json is correct uh
17:49
correctly structured and it's going to be correctly sent to
17:55
YouTube if you need more languages you just repeat the step and then add um the
18:01
same uh part just with the different language um variable and um as you can
18:08
see it's French German um Spanish Swedish spnish English as the same order
18:15
I have in my sheets so this should have the same uh order as well so where is it
18:22
I'm going to copy it and I'm going to paste it here and I'm going to click on generate and what is does is give me
18:30
fields that I can populate with um variables so for ID we're going to
18:38
have ID from this first array aggregator which is items ID
18:47
and video ID for the title we're going to have
18:54
title for French we're going to Title One and description
19:01
one for German we're going to title two and description
19:07
two sorry like this because it's this is the first language second third fourth
19:13
fifth and sixth for Spanish title
19:19
three description three what else Swedish is title four
19:29
and description is four finished title is five description
19:36
is five and the last one is I think English
19:42
but it's it you should have English because if you don't have English it's going to delete the original one so
19:50
description six okay so this will aggregate everything
19:56
into one Json in proper format because this is the proper format that YouTube
20:03
requires the data to be sent so let's run again by the way I'm sorry if this video
20:10
is too long I try to take everything step by step and to show you all the process uh so you can learn how you can
20:18
do it your on your own so as you can see the Json has been
20:24
made and everything is good except I don't
20:30
these hard brackets shouldn't be here so what I'm going to do now is I'm going to
20:36
have a tool set variable and it's going to be YouTube
20:46
Json and the variable value will be uh repl replace replace and I just
20:54
copied it from this because it's easier if I have already written it
20:59
so and we're going to use this from here the response from this
21:06
module we're going to use in here so we're going to replace um these two
21:13
things at the start and at the end with nothing so okay and we're going to I'm
21:19
just going to copy this response and
21:25
check uh is it everything is correct so so as you can see now it's a proper Json
21:32
as it should be so the next one is the most interesting part and the most
21:37
complicated part so we're going to have HTTP module
21:43
but it's going to be make all all2 request module and here we need to add a
21:54
connection so basically we need to fill out all these these details so first
22:00
we're going to head to back to the console and we're going to click on all
22:05
out consent screen it's going to be external create uh it's going to be
22:13
YouTube uh update my
22:20
email authorize domain is
22:26
make.com and also integram
22:31
mod.com and the developer email is my email is JS
22:37
automate gmail.com if you need to contact me please reach out to my email
22:42
address I will respond to you so now I'm going to click on Save and
22:49
continue now we need to add the Scopes we're going to click on add or remove Scopes and we're going to search for
22:55
Scopes Here YouTube and this gives us all available YouTube Scopes we're going to select all
23:03
rows and we're going to click on update so what this does it gives us all these
23:09
Scopes we're going to click save and continue and we need to add a test
23:16
user so the test user is myself JS automates at
23:23
gmail.com we're going to click on ADD and we're going to click on Save and
23:30
continue so once this is done we're going to click back to the dashboard and
23:35
then we going to head to credentials create credentials and create all out client ID so application
23:43
type is web application name is
23:50
YouTube translation and we need to add our
23:55
authorized redirect URLs which I have here I'm going to copy and paste them
24:02
here but um I also going to have them in video description so you can easily copy
24:08
them from there I'm going to fast forward until I finish all this so
24:15
that's about it what we need to do here we're going to click on Create and now we're going to have our
24:22
client ID credentials and also client secret credentials uh so we're going to head
24:28
back I'm going to copy this one head back to make we're going to paste here the
24:34
client ID and copy this one and paste here client secret
24:40
ID so we need to add the authorized URL I have this here as well this is this
24:47
one going to paste it here token URL
24:54
is this one and we need to add a scope the scope will be um Google Alt
25:05
YouTube uh we're going to click on show advanced settings here and it's going to we need to change this to
25:12
space and for authorized parameters we need to add
25:17
key which is redirect Ur and the URL will be this
25:26
one okay and now this is uh Js
25:33
automite YouTube
25:39
translation we're going to click save okay so this is my
25:47
account I'm going to click continue continue
25:54
here and let's see yeah this has authorized it
26:00
so now we need URL and our request so the request will be raw Json and the
26:09
request content will be the one from this module so we're just going to have
26:14
this variable here we're going to pause the response and we need the URL so the
26:20
URL is this one Google app is YouTube V3
26:26
videos part localization so we are only targeting the localization part so we're
26:32
going to click okay and now let's head to my channel as you can see now I have
26:39
um only one language which is English language this is uh the one okay so
26:47
let's test this out so it now pulls all the languages
26:54
that I have set here it's going to now translate all the
26:59
um titles and descriptions par them from par the CH
27:06
GPT responses and it's sent to already to YouTube
27:13
so oh okay so we need not method get we
27:18
need method put so okay and let's run this again okay the scenario has
27:25
finished and um we get get the status code 200 which means the localization
27:33
has been done let's head to YouTube now
27:38
let's head to subtitles and as you can see I have seven languages for my video
27:45
now uh Finnish French German Spanish Swedish
27:50
so uh I click if I click here I can see here is the original English language
27:57
and here is the trans translated language and now if I head to the front of
28:03
YouTube I'm going to change my language to finish or Swedish Swedish let's TCH
28:11
Swedish where is Swedish Sansa
28:17
okay and as you can see I have fully automatically translated the video title
28:25
and video description you can play with the promp to get more accurate results for for
28:33
the translation uh but all in all this is very good to get International traffic
28:40
to your videos uh let me just quickly show you how you can do this uh if you
28:46
need to do this only for one video so basically you go to your YouTube channel back end uh you go
28:55
to content click this icon and here is the video ID that you can use so copy
29:02
this head back to make uh unlink this
29:07
one switch this clock to the Google Sheets module select the range from A2
29:16
to B7 now okay array aggregator we're going to
29:21
select um we're going to run this module only to get data and and now this is uh Source model
29:31
is Google Sheets and here we're going to be having AB data we don't need
29:41
okay because again if you have disconnected it's going to translate all
29:47
the videos you have on your channel but if you need one you do it this way so
29:52
now the next thing that we need to do is HTTP okay
30:00
the ID video ID is now we need to delete this one and
30:06
select from b b is the video ID
30:11
okay and nothing else changes except in the aggregate Json the video ID we get
30:21
from uh B again B1
30:28
okay and let's um let's add another
30:36
language let's add Latvian language it's going to be LV we're going to have this one we need
30:43
to extend uh the range to
30:48
B8 so basically what's going to happen now is going to rerun all the languages and also it's going to add a Latvian
30:55
language so let's test it out as you can see now it's has translated to seven
31:00
languages what's the response response is 200 and here is all the location
31:08
localizations ah okay it didn't translate to lavian because I don't have
31:15
um the Lan here so I can
31:22
edit and
31:29
I need to add an
31:35
item the name is
31:41
LV uh like this the name will be
31:50
title will be text and add item the name will be
31:57
description and it's going to be text okay let's
32:10
save okay now we should get yeah now we have
32:15
the LV so for lb it's going to be array title number seven and for description it's going to
32:23
be description number seven so again this is how you add um more languages to
32:29
the Json if you want to do it afterwards you you submitted your uh data structure
32:38
so this I now added the laian language to this Json so let's rerun this
32:45
again and now it should give us the Lan
32:52
language here under the subtitles as well so seven languages have been been
32:59
translated and the request has been sent so data localizations and yeah we have here
33:05
Latvian language and now I'm going to head to
33:11
here refresh and as you can see I have lvan here I'm
33:18
just going to switch my YouTube to to lavian language
33:30
where is lvan here as you can see now it's in
33:36
lvan so yeah this is how you translate your YouTube video titles and descriptions automatically uh using some
33:43
AI tools and automation from make.com if you have any questions just leave a
33:49
comment and um if you like the video subscribe to the channel leave a like
33:55
and I hope to see you in the next video thank you thank you for watching bye-bye
#Business & Industrial
