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: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: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: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: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: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