Hi , Im new her any help how can i apply ShotStack with Google Script . thank You !
You can use the UrlFetchApp class. This allows you to send POST requests.
The below uses the templates/render endpoint.
const url = "https://api.shotstack.io/v1/templates/render";
const payload = {
id: "be86bfc2-a19b-4ab6-aa6c-f70242a388fc",
merge: [
{
find: "name",
replace: "Noure"
}
]
};
const options = {
"method": "post",
"headers": {
"Content-Type": "application/json",
"x-api-key": "YOUR_API_KEY"
},
"payload": JSON.stringify(payload)
};
function render() {
const response = UrlFetchApp.fetch(url, options);
console.log(response.getContentText());
}
Thank You Sir ! *
i tried the same Script But i get This Error response : I tried [Create Template method]
Exception: Request failed for https://api.shotstack.io returned code 403. Truncated server response: {“message”:“Forbidden”} (use muteHttpExceptions option to examine full response)
note *: i Change the key api and the ID but i get Error
What url are you using? Normally 403 error have to do with using the wrong url or API key.
i used same method you Posted But i get same message Error .
this is what i Want the same Work like this Refrence :
but: [i Like to apply with Google Script ] .
Thank you very Much for Your help
[Your App must Be on the Top 1]
Could you share your code? Just make sure to obscure your API key.
Yes !
here is My Api Key : XXXXXXXXXXXXXXXXXXXXXXXXXX
Please don’t share your API key publicly. This may lead to it being abused and you losing your credits.
Can you share the code you’re using with Google Script? I can take a look at what may be the issue. Just make sure to not include your API key.
Fist Im trying to Update Template after updating i go to the next step and i make render to that specific template .
Summary
const link = "https://api.shotstack.io/V1/templates/36158755-b022-4f63-b438-d2a123160dae";
const updateTemp = {
"timeline": {
"soundtrack": {
"src": "https://feeds.soundcloud.com/stream/1029352582-unminus-neuron-parking.mp3",
"effect": "fadeOut"
},
"fonts": [
{
"src": "https://templates.shotstack.io/basic/asset/font/barlow-extrabold.ttf"
},
{
"src": "https://templates.shotstack.io/basic/asset/font/barlow-regular.ttf"
}
],
"background": "#000000",
"tracks": [
{
"clips": [
{
"asset": {
"type": "image",
"src": "https://shotstack-assets.s3.ap-southeast-2.amazonaws.com/logos/contemporary-color-white.png"
},
"start": 0,
"length": 3,
"fit": "none",
"scale": 0.8,
"offset": {
"y": 0.16
},
"transition": {
"in": "slideDown",
"out": "fade"
}
}
]
},
{
"clips": [
{
"asset": {
"type": "html",
"html": "<p>February at The Aviary</p>",
"css": "p { font-family:'Barlow ExtraBold'; color: #FFFFFF; font-size: 68px; text-align: center; }",
"width": 800,
"height": 140
},
"start": 0.8,
"length": 2.2,
"offset": {
"y": -0.13
},
"transition": {
"in": "slideUp",
"out": "fade"
}
}
]
},
{
"clips": [
{
"asset": {
"type": "luma",
"src": "https://templates.shotstack.io/basic/asset/video/luma/circles/circle-expand-right.mp4"
},
"start": 3,
"length": 2
},
{
"asset": {
"type": "image",
"src": "https://images.pexels.com/photos/326279/pexels-photo-326279.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=750&w=1260"
},
"start": 0,
"length": 4,
"effect": "zoomIn"
}
]
},
{
"clips": [
{
"asset": {
"type": "html",
"html": "<p>Lunch Menu</p>",
"css": "p { font-family: 'Barlow ExtraBold'; color: #FFFFFFFF; font-size: 80px; text-align: left; }",
"width": 600,
"height": 100
},
"start": 3.4,
"length": 3.1,
"position": "topLeft",
"offset": {
"x": 0.02,
"y": -0.15
},
"transition": {
"in": "slideUp",
"out": "fade"
}
}
]
},
{
"clips": [
{
"asset": {
"type": "html",
"html": "<p> </p>",
"width": 650,
"height": 120,
"background": "#FF0000"
},
"start": 3,
"length": 3,
"position": "left",
"offset": {
"y": 0.3
},
"transition": {
"in": "slideLeft",
"out": "slideLeft"
}
}
]
},
{
"clips": [
{
"asset": {
"type": "image",
"src": "https://images.pexels.com/photos/3434523/pexels-photo-3434523.jpeg?cs=srgb&dl=pexels-mister-mister-3434523.jpg&fm=jpg",
"crop": {
"left": 0,
"right": 0
}
},
"start": 3,
"length": 3.5,
"fit": "contain",
"position": "left",
"transition": {
"out": "fade"
}
}
]
},
{
"clips": [
{
"asset": {
"type": "html",
"html": "<p>Shrimp Grill</p><br><div>Grilled shrimp with teriyaki sauce</div><br><br><p>Spring Roll</p><br><div>Spring roll filled with meat and vegetables</div><br><br><p>7ami Hrissa</p><br><div>Sushi roll different flavors</div><br><br><p>Niguiri</p><br><div>Rice balls with seaweed</div>",
"css": "p { font-family: 'Barlow ExtraBold'; color: #FF1a1a1a; font-size: 50px; text-align: left; line-height: 80%;} div { font-family: 'Barlow Regular'; color: #FF1a1a1a; font-size: 40px; text-align: left; line-height: 80%;} br { line-height: 50%}",
"width": 600,
"height": 850
},
"start": 3.5,
"length": 3,
"offset": {
"x": 0.1
},
"transition": {
"in": "slideLeft",
"out": "fade"
}
},
{
"asset": {
"type": "html",
"html": "<p>$20.60</p><br><br><br><br><br><br><br><br><p>$20.90</p><br><br><br><br><br><br><br><p>$12.20</p><br><br><br><br><br><br><br><p>$12.20</p><br><br>",
"css": "p { font-family: 'Barlow ExtraBold'; color: #ff6600; font-size: 50px; text-align: left ;line-height: 80%;} br { line-height: 100%} ",
"width": 180,
"height": 850
},
"start": 3.5,
"length": 3,
"position": "right",
"offset": {
"x": -0.1
},
"transition": {
"in": "slideLeft",
"out": "fade"
}
}
]
},
{
"clips": [
{
"asset": {
"type": "html",
"html": "<p> </p>",
"width": 900,
"height": 900,
"background": "#FFFFFF"
},
"start": 3,
"length": 3.5,
"position": "right",
"offset": {
"x": -0.1
},
"transition": {
"out": "slideLeft"
}
}
]
},
{
"clips": [
{
"asset": {
"type": "luma",
"src": "https://templates.shotstack.io/basic/asset/video/luma/circles/circle-expand-left.mp4"
},
"start": 6,
"length": 2
},
{
"asset": {
"type": "image",
"src": "https://shotstack-assets.s3.ap-southeast-2.amazonaws.com/backgrounds/bg-aviary-1.jpg"
},
"start": 3,
"length": 4,
"effect": "zoomIn"
}
]
},
{
"clips": [
{
"asset": {
"type": "html",
"html": "<p>Award Winning Chef Won Chaw</p><br><span>Specials of the month</span>",
"css": "p { font-family: 'Barlow ExtraBold'; color: #FFFFFF; font-size: 80px; text-align: center; line-height: 80%;} span { font-family: 'Barlow Regular'; color: #FFFFFF; font-size: 60px; text-align: center; line-height: 80%;}",
"width": 700,
"height": 250
},
"start": 6.8,
"length": 2.2,
"offset": {
"x": 0.2,
"y": 0.25
},
"transition": {
"in": "slideUp",
"out": "fade"
}
}
]
},
{
"clips": [
{
"asset": {
"type": "html",
"html": "<p> </p>",
"width": 60,
"height": 300,
"background": "#ff6600"
},
"start": 6,
"length": 3,
"position": "left",
"offset": {
"y": 0.25
},
"transition": {
"in": "slideLeft",
"out": "slideLeft"
}
}
]
},
{
"clips": [
{
"asset": {
"type": "html",
"html": "<p> </p>",
"width": 60,
"height": 300,
"background": "#ff6600"
},
"start": 6,
"length": 3,
"position": "right",
"offset": {
"y": 0.25
},
"transition": {
"in": "slideRight",
"out": "slideRight"
}
}
]
},
{
"clips": [
{
"asset": {
"type": "luma",
"src": "https://templates.shotstack.io/basic/asset/video/luma/circles/circle-expand-right.mp4"
},
"start": 9,
"length": 2
},
{
"asset": {
"type": "image",
"src": "https://images.pexels.com/photos/3873973/pexels-photo-3873973.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=750&w=1260"
},
"start": 6,
"length": 4,
"effect": "zoomIn"
}
]
},
{
"clips": [
{
"asset": {
"type": "image",
"src": "https://shotstack-assets.s3.ap-southeast-2.amazonaws.com/images/dish3.png"
},
"start": 9,
"length": 3.5,
"fit": "contain",
"scale": 0.35,
"effect": "zoomIn",
"offset": {
"x": -0.25
},
"transition": {
"in": "slideUp",
"out": "fade"
}
}
]
},
{
"clips": [
{
"asset": {
"type": "html",
"html": "<p>Grill</p>",
"css": "p { font-family: 'Barlow ExtraBold'; color: #11000000; font-size: 260px; text-align: left; }",
"width": 500,
"height": 300
},
"start": 9.4,
"length": 3.1,
"position": "topLeft",
"offset": {
"x": 0.05
},
"transition": {
"in": "slideUp",
"out": "fade"
}
}
]
},
{
"clips": [
{
"asset": {
"type": "html",
"html": "<p>Grilled Banderilles</p>",
"css": "p { font-family: 'Barlow ExtraBold'; color: #FFff6600; font-size: 140px; text-align: left; line-height: 70%; }",
"width": 800,
"height": 280
},
"start": 9.5,
"length": 3,
"offset": {
"x": 0.16,
"y": 0.25
},
"transition": {
"in": "slideLeft",
"out": "fade"
}
},
{
"asset": {
"type": "html",
"html": "<p>Sweet and sour pork with peppers, onions and pineapple bathed in barbecue sauce.</p>",
"css": "p { font-family: 'Barlow Regular'; color: #FF1a1a1a; font-size: 50px; text-align: left; line-height: 100%;}",
"width": 800,
"height": 300
},
"start": 9.5,
"length": 3.1,
"offset": {
"x": 0.16,
"y": -0.05
},
"transition": {
"in": "slideLeft",
"out": "fade"
}
},
{
"asset": {
"type": "html",
"html": "<p>$18.90</p>",
"css": "p { font-family: 'Barlow ExtraBold'; color: #FFFF0000; font-size: 90px; text-align: left; line-height: 100%;}",
"width": 800,
"height": 100
},
"start": 9.5,
"length": 3.1,
"offset": {
"x": 0.16,
"y": -0.25
},
"transition": {
"in": "slideUp",
"out": "fade"
}
}
]
},
{
"clips": [
{
"asset": {
"type": "html",
"html": "<p> </p>",
"width": 450,
"height": 450,
"background": "#FF0000"
},
"start": 9,
"length": 3,
"position": "bottom",
"offset": {
"x": -0.25
},
"transition": {
"in": "slideUp",
"out": "fade"
}
}
]
},
{
"clips": [
{
"asset": {
"type": "html",
"html": "<p> </p>",
"width": 900,
"height": 800,
"background": "#FFFFFF"
},
"start": 9,
"length": 3.5,
"position": "right",
"offset": {
"x": -0.1
},
"transition": {
"out": "slideUp"
}
}
]
},
{
"clips": [
{
"asset": {
"type": "luma",
"src": "https://templates.shotstack.io/basic/asset/video/luma/circles/circle-expand-left.mp4"
},
"start": 12,
"length": 2
},
{
"asset": {
"type": "image",
"src": "https://shotstack-assets.s3.ap-southeast-2.amazonaws.com/backgrounds/bg-aviary-1.jpg"
},
"start": 9,
"length": 4,
"effect": "zoomIn"
}
]
},
{
"clips": [
{
"asset": {
"type": "image",
"src": "https://shotstack-assets.s3.ap-southeast-2.amazonaws.com/images/dish4.png"
},
"start": 12,
"length": 3.5,
"fit": "contain",
"scale": 0.35,
"effect": "zoomIn",
"offset": {
"x": 0.25
},
"transition": {
"in": "slideUp",
"out": "fade"
}
}
]
},
{
"clips": [
{
"asset": {
"type": "html",
"html": "<p>Toast</p>",
"css": "p { font-family: 'Barlow ExtraBold'; color: #11000000; font-size: 260px; text-align: left; }",
"width": 800,
"height": 300
},
"start": 12.4,
"length": 3.1,
"position": "topRight",
"offset": {
"x": -0.05
},
"transition": {
"in": "slideUp",
"out": "fade"
}
}
]
},
{
"clips": [
{
"asset": {
"type": "html",
"html": "<p>Smashed Avo Toast</p>",
"css": "p { font-family: 'Barlow ExtraBold'; color: #ff6600; font-size: 140px; text-align: left; line-height: 70%; }",
"width": 800,
"height": 280
},
"start": 12.5,
"length": 3,
"offset": {
"x": -0.16,
"y": 0.25
},
"transition": {
"in": "slideLeft",
"out": "fade"
}
},
{
"asset": {
"type": "html",
"html": "<p>Slice of toasted bread with avocado, house dressing, egg to taste and watercress leaves.</p>",
"css": "p { font-family: 'Barlow Regular'; color: #FF1a1a1a; font-size: 50px; text-align: left; line-height: 100%;}",
"width": 800,
"height": 300
},
"start": 12.5,
"length": 3.1,
"offset": {
"x": -0.16,
"y": -0.05
},
"transition": {
"in": "slideLeft",
"out": "fade"
}
},
{
"asset": {
"type": "html",
"html": "<p>$18.90</p>",
"css": "p { font-family: 'Barlow ExtraBold'; color: #FFFF0000; font-size: 90px; text-align: left; line-height: 100%;}",
"width": 800,
"height": 100
},
"start": 12.5,
"length": 3.1,
"offset": {
"x": -0.16,
"y": -0.25
},
"transition": {
"in": "slideUp",
"out": "fade"
}
}
]
},
{
"clips": [
{
"asset": {
"type": "html",
"html": "<p> </p>",
"width": 450,
"height": 450,
"background": "#FF0000"
},
"start": 12,
"length": 3,
"position": "bottom",
"offset": {
"x": 0.25
},
"transition": {
"in": "slideUp",
"out": "fade"
}
}
]
},
{
"clips": [
{
"asset": {
"type": "html",
"html": "<p> </p>",
"width": 900,
"height": 800,
"background": "#FFFFFF"
},
"start": 12,
"length": 3.5,
"position": "left",
"offset": {
"x": 0.1
},
"transition": {
"in": "slideUp",
"out": "fade"
}
}
]
},
{
"clips": [
{
"asset": {
"type": "luma",
"src": "https://templates.shotstack.io/basic/asset/video/luma/circles/circle-expand.mp4"
},
"start": 15,
"length": 2
},
{
"asset": {
"type": "image",
"src": "https://shotstack-assets.s3.ap-southeast-2.amazonaws.com/backgrounds/bg-aviary-1.jpg "
},
"start": 12,
"length": 4,
"effect": "zoomIn"
}
]
},
{
"clips": [
{
"asset": {
"type": "image",
"src": "https://shotstack-assets.s3.ap-southeast-2.amazonaws.com/logos/contemporary-color-black.png"
},
"start": 15,
"length": 4,
"fit": "none",
"scale": 0.8,
"offset": {
"y": 0.1
},
"transition": {
"in": "slideUp"
}
}
]
},
{
"clips": [
{
"asset": {
"type": "html",
"html": "<span>736 Brockton Avenue, Abington, MA 2351</span><br><span>548-500-5223</span>",
"css": "p { font-family: 'Barlow ExtraBold'; color: #FF1a1a1a; font-size: 50px; text-align: center;} span { font-family: 'Barlow Regular'; color: #FF1a1a1a; font-size: 50px; text-align: center;}",
"width": 600,
"height": 300
},
"start": 15.8,
"length": 3.2,
"offset": {
"y": -0.2
},
"transition": {
"in": "slideUp"
}
}
]
},
{
"clips": [
{
"asset": {
"type": "image",
"src": "https://shotstack-assets.s3.ap-southeast-2.amazonaws.com/backgrounds/bg-aviary-1.jpg "
},
"start": 15,
"length": 4,
"effect": "zoomIn"
}
]
}
]
},
"output": {
"format": "mp4",
"resolution": "1080"
}
};
const opt = {
"method": "PUT",
"headers": {
'Content-Type':'application/json',
'Accept':'application/json',
'x-api-key':'**********************************'
},
"payload": JSON.stringify(updateTemp)
};
function uPdateTemplate() {
const res = UrlFetchApp.fetch(link, opt);
console.log(res.getContentText());
}
--------------------
const url = "https://api.shotstack.io/v1/templates/render";
const payload = {
id: "36158755-b022-4f63-b438-d2a123160dae",
merge: [
{
find: "name",
replace: "RestaurentPost"
}
]
};
const options = {
"method": "post",
"headers": {
"Content-Type": "application/json",
"x-api-key": "XXXXXXXXXXXXXXXXXXXXXXX"
},
"payload": JSON.stringify(payload)
};
function render() {
const response = UrlFetchApp.fetch(url, options);
console.log(response.getContentText());
}
Re-Hi Any idéa how to solve this Problem .
thank You
Thanks for the bump I completely missed your last reply.
I checked your code and template and you appear to want to replace a {{name}}
variable in the template.
const payload = {
id: "36158755-b022-4f63-b438-d2a123160dae",
merge: [
{
find: "name",
replace: "RestaurentPost"
}
]
};
However your variable doesn’t contain a merge variable. If you wanted to declare that variable in your template you could add it as follows:
{
"clips": [{
"asset": {
"type": "html",
"html": "<p>{{name}}</p>",
"css": "p { font-family:'Barlow ExtraBold'; color: #FFFFFF; font-size: 68px; text-align: center; }",
"width": 800,
"height": 140
},
"start": 0.8,
"length": 2.2,
"offset": {
"y": -0.13
},
"transition": {
"in": "slideUp",
"out": "fade"
}
}]
}
This will allow you to run the code you’re using and replace the {{name}}
variable with the contents of the replace
property; in this case RestaurentPost
.