Pinterest 404 Media Not Found

blueprint (3).json (7.8 KB)

Hi there; I’m having some issues getting Pinterest to post videos from TikTok. I set up the information as it wants me to in the interest module but I keep getting “Media not found.” I think it might be because I haven’t set up stuff with the Pinterest API, but I’m not very knowledgeable about how to get that set up since I don’t have an app to use.

Any help is appreciated thanks

Spencer

Welcome to the Make community!

Please provide the input/output bundles of the modules by running the scenario, then click the bubble on the top-right of each module, save the contents as a bundle.json file, and upload it here into this discussion thread:

Screenshot_2023-08-29_100800

Following these steps will allow others to assist you here. Thanks!

2 Likes

You to upload media first.
https://developers.pinterest.com/docs/content/content-creation/

2 Likes

Hi there,
Thanks again for replying. I’m not sure if I did it correctly, I copy and pasted the bundle below.

[
{
“cover_image_url”: “http://p16-sign-va.tiktokcdn.com/tos-maliva-p-0068/oIbjIIf8YX85YgQPQuC4QfKQgAeACKAzDPnS7D~tplv-noop.image?x-expires=1696603045&x-signature=3vr1Hw0rdJ9jDYVaiYQ8Wko6K6I%3D”,
“create_time”: “2023-09-18T00:55:36.000Z”,
“duration”: 6,
“expire_time”: “2023-10-06T14:37:25.000Z”,
“height”: 710,
“id”: “7279963258696584454”,
“share_url”: “https://www.tiktok.com/@ldr9883/video/7279963258696584454?utm_campaign=tt4d_open_api&utm_source=awsesa43zk03zkv6”,
“video_description”: “”,
“width”: 320
}
]

[
null
]

Hi Loco,

you need to upload the video first to the Pinterest AWS bucket, then you will be able to post a Pin with it. Check out their documentation here on how to do it:

https://developers.pinterest.com/docs/content/content-creation/#Creating%20video%20Pins

Basically make an API call stating intent to upload a video and it will return URL and values for some variables. Then you use them to upload the video and then you can post the pin.

2 Likes

Hi Stoyan,

I ran the API call but it came back stating: "The operation failed with an error. ENOTFOUND: Service is temporarily unavailable. "

We put this in the body:
image

Hi Loco,

is that on the first module where you state the intent to upload?

Here is what mine looks like:

And this is the result I get:

You then use the upload_url and upload_parameters in a generic HTTP request module to upload the video to the AWS bucket. Then the media_id to check the status and make the post.

2 Likes

Hey Stoyan,

I got the Pinterest API working.

For the HTTP request, am I doing something like this?


^ instead of the Video Post ID under key I should just have the parameters in that field?

Also for the media_id, am I making a new HTTP request?

Hi Loco,

you need all of the parameters you get in in body → upload parameters from the initial API call to pinterest mapped in the next HTTP call. Its a total of 8 parameters and 1 video file you need to send. Here are a couple of screenshots to get you started on what it should look like:

The media_id you get as a response from the first API call module to pinterest. After the upload is done you can use it to make the post. I have a delay of 30 seconds between the upload call and the post call just in case.

2 Likes

Hey Stoyan

I inputted the parameters into the HTTP. I am having trouble with the media_id though.

I put this into the Pinterest module.

It would come back: [400] {“code”:1,“message”:“Invalid request: {‘link’: ‘https://www.pinterest.ca/loco69771/’, ‘title’: ‘test’, ‘board_id’: ‘1075797498427785569’, ‘description’: ‘test’, ‘media_source’: {‘media_id’: ‘https://pinterest-media-upload.s3-accelerate.amazonaws.com/’, ‘is_standard’: False, ‘source_type’: ‘video_id’, ‘cover_image_url’: ‘http://p16-sign-va.tiktokcdn.com/tos-maliva-p-0068/o0kh6ooKECHCkwgAXHNztg1IBOAfAB9oUizyID~tplv-noop.image?x-expires=1697780051&x-signature=Md3Do0YTj8%2BoXanc07lOLhOaGaY%3D’}} (‘https://pinterest-media-upload.s3-accelerate.amazonaws.com/’ does not match ‘^\\d+$’)”}

It seems to be associated with the cover URL but I’m not sure what i need to replace it with.

For reference, this is the layout currently for the automation currently.

Hi Loco,

this is a strange error you are getting. The media_id inside the error is actually the upload url for some reason. Can you check the previous modules and see what their output is?

2 Likes

Hey Stoyan,
I am now getting a different error than I was getting before, might have sent the wrong picture. Same inputs in that module.

Regardless here are the outputs

Module 1:
[
{
“cover_image_url”: “http://p16-sign-va.tiktokcdn.com/tos-maliva-p-0068/o0kh6ooKECHCkwgAXHNztg1IBOAfAB9oUizyID~tplv-noop.image?x-expires=1697941340&x-signature=yx6kIIPht3jtcxiUjFL85DSBIkY%3D”,
“create_time”: “2023-09-18T00:58:12.000Z”,
“duration”: 259,
“expire_time”: “2023-10-22T02:22:20.000Z”,
“height”: 1024,
“id”: “7279963933555870981”,
“share_url”: “https://www.tiktok.com/@ldr9883/video/7279963933555870981?utm_campaign=tt4d_open_api&utm_source=awsesa43zk03zkv6”,
“video_description”: “”,
“width”: 576
}
]
Module 2:
[
{
“body”: {
“media_id”: “5326649345100013552”,
“media_type”: “video”,
“upload_url”: “https://pinterest-media-upload.s3-accelerate.amazonaws.com/”,
“upload_parameters”: {
“x-amz-date”: “20231021T201801Z”,
“x-amz-signature”: “87e673986eda7e35db69e2a5190373e2b1cd221010a5a06411227883219ba584”,
“x-amz-security-token”: “IQoJb3JpZ2luX2VjENz//////////wEaCXVzLWVhc3QtMSJIMEYCIQClKtRgtoUshgGjrohc+GYiJcCYJDE3J6xM1Zi1RQOPEQIhAMkzwmbrpASwyxZZU5gnz9Foc44QTMGqIrnIOEuhpUP7KrkFCPT//////////wEQABoMOTk4MTMxMDMyOTkwIgzJun0QdXraw1aFtN8qjQUo1r50rvd9I7Zw7xEcOMfedZ1/N8gzGqAJ5PlL4n2FPthFa8/Ft60D471KFPcXtqzHDgI0zPd70JfHarNwZoYLCsx83DsVKOMjbPITGQn6yn+ZT91os98QLQ8vi/Y4MyL7jrcCvNtwyCzEs9nEortXVYZ5cOfA3BW1/6Dd2pYnLbxWpmBfv5zbm5TOqV3fIHApoBaazIfxZeT+GvlxmVyZpocKXhtJhi8fj7cLAh5Rnj8jCfToaYuW5VLSZGmtKY2YXXzZTAOCI4h8R6AGnhs2m8C6KmI9AZEQlmtxE2EKvxgiyyXUvE5YsrqNqa3TM754vKD1TpG6rdHulXrvxhC65JZjyeyOmy1i/DKaUXM18/6t+2+N0zJrgmVJzmzaQ1mQn+fSY8jvTZObJboFgfn/9PftnhYNh+I7tbYIuD/RWK0/QRPHc3tEjIZVFwtktEHDhpknl9qKAJwi7UWI3T0hXQtuQ45S8hi0kXiuQCjyxFGUC4icv7CWA0qraU2ncLeVNG7OzYofYKw2Q/Ah/3BG6e4SDpHCHN+pIMG2ZexoZ+K1ToE1DJVoXX7HSFeuXeRggmfkk3wMiCq2HuJJjyJY/HuqfnfbXucGaVoDaqWAhn5g76a1qUwPTSNm0cFNukE02XQJf7pl7YlzbOSleIuCaidYKrxnfThYZYW/MSV37CQ3JK0PXLWWpUK7l/o8thAIxvqUlUPXnuz/3cpBjSoXF+EjW5yaR6jExuHwSVaYrGmoJRn+5HHDHFu4Aekq1dHfV5b5z4oXMC/Oak6piiRxobsv+CXU2wW/86tQsZuuLkE66bZrv55zxiV84ODuevUlQNaj+Zb06rDOHIwAvLTDB7GX4b+5NbTVYoalUzDbxdCpBjqwAVKtq4aFrNbsqUyapvhLhvBgg4ojxx2QwmlXZl0BPCKfGt180lm5qs7OTZ7ZeTeqXoHJyoOtWryh/Ji7+hB66ZRzd6oeRBKuDIRarpFIfjXQ0mzoxVPtPh0FYASH/HOrv07Ue1QWoX1pAoq7XwTv+7I36vbhDFw8UmvsspB73TWAs5Cez0F8YQYGIsg+f/X6co5AYhCtiS38TcjrATm9iRcu6vu+KhfjU5Qyi94cehT6”,
“x-amz-algorithm”: “AWS4-HMAC-SHA256”,
“key”: “uploads/cb/97/0e/2:video:1075797567146731962:5326649345100013552”,
“policy”: “eyJleHBpcmF0aW9uIjoiMjAyMy0xMC0yM1QyMDoxODowMS4wMDBaIiwiY29uZGl0aW9ucyI6W3siYnVja2V0IjoicGludGVyZXN0LW1lZGlhLXVwbG9hZCJ9LFsic3RhcnRzLXdpdGgiLCIka2V5IiwidXBsb2Fkcy9jYi85Ny8wZSJdLHsieC1hbXotY3JlZGVudGlhbCI6IkFTSUE2UVpKNjRPUExUNlQ3V01YLzIwMjMxMDIxL3VzLWVhc3QtMS9zMy9hd3M0X3JlcXVlc3QifSx7IngtYW16LWFsZ29yaXRobSI6IkFXUzQtSE1BQy1TSEEyNTYifSx7IngtYW16LWRhdGUiOiIyMDIzMTAyMVQyMDE4MDFaIn0sWyJjb250ZW50LWxlbmd0aC1yYW5nZSIsMCw1MzY4NzA5MTIwXSxbImVxIiwiJENvbnRlbnQtVHlwZSIsIm11bHRpcGFydC9mb3JtLWRhdGEiXSx7IngtYW16LXNlY3VyaXR5LXRva2VuIjoiSVFvSmIzSnBaMmx1WDJWakVOei8vLy8vLy8vLy93RWFDWFZ6TFdWaGMzUXRNU0pJTUVZQ0lRQ2xLdFJndG9Vc2hnR2pyb2hjK0dZaUpjQ1lKREUzSjZ4TTFaaTFSUU9QRVFJaEFNa3p3bWJycEFTd3l4WlpVNWduejlGb2M0NFFUTUdxSXJuSU9FdWhwVVA3S3JrRkNQVC8vLy8vLy8vLy93RVFBQm9NT1RrNE1UTXhNRE15T1Rrd0lnekp1bjBRZFhyYXcxYUZ0TjhxalFVbzFyNTBydmQ5STdadzd4RWNPTWZlZFoxL044Z3pHcUFKNVBsTDRuMkZQdGhGYTgvRnQ2MEQ0NzFLRlBjWHRxekhEZ0kwelBkNzBKZkhhck53Wm9ZTENzeDgzRHNWS09NamJQSVRHUW42eW4rWlQ5MW9zOThRTFE4dmkvWTRNeUw3anJjQ3ZOdHd5Q3pFczluRW9ydFhWWVo1Y09mQTNCVzEvNkRkMnBZbkxieFdwbUJmdjV6Ym01VE9xVjNmSUhBcG9CYWF6SWZ4WmVUK0d2bHhtVnlacG9jS1hodEpoaThmajdjTEFoNVJuajhqQ2ZUb2FZdVc1VkxTWkdtdEtZMllYWHpaVEFPQ0k0aDhSNkFHbmhzMm04QzZLbUk5QVpFUWxtdHhFMkVLdnhnaXl5WFV2RTVZc3JxTnFhM1RNNzU0dktEMVRwRzZyZEh1bFhydnhoQzY1SlpqeWV5T215MWkvREthVVhNMTgvNnQrMitOMHpKcmdtVkp6bXphUTFtUW4rZlNZOGp2VFpPYkpib0ZnZm4vOVBmdG5oWU5oK0k3dGJZSXVEL1JXSzAvUVJQSGMzdEVqSVpWRnd0a3RFSERocGtubDlxS0FKd2k3VVdJM1QwaFhRdHVRNDVTOGhpMGtYaXVRQ2p5eEZHVUM0aWN2N0NXQTBxcmFVMm5jTGVWTkc3T3pZb2ZZS3cyUS9BaC8zQkc2ZTRTRHBIQ0hOK3BJTUcyWmV4b1orSzFUb0UxREpWb1hYN0hTRmV1WGVSZ2dtZmtrM3dNaUNxMkh1SkpqeUpZL0h1cWZuZmJYdWNHYVZvRGFxV0FobjVnNzZhMXFVd1BUU05tMGNGTnVrRTAyWFFKZjdwbDdZbHpiT1NsZUl1Q2FpZFlLcnhuZlRoWVpZVy9NU1YzN0NRM0pLMFBYTFdXcFVLN2wvbzh0aEFJeHZxVWxVUFhudXovM2NwQmpTb1hGK0VqVzV5YVI2akV4dUh3U1ZhWXJHbW9KUm4rNUhIREhGdTRBZWtxMWRIZlY1YjV6NG9YTUMvT2FrNnBpaVJ4b2JzditDWFUyd1cvODZ0UXNadXVMa0U2NmJacnY1NXp4aVY4NE9EdWV2VWxRTmFqK1piMDZyRE9ISXdBdkxUREI3R1g0Yis1TmJUVllvYWxVekRieGRDcEJqcXdBVkt0cTRhRnJOYnNxVXlhcHZoTGh2QmdnNG9qeHgyUXdtbFhabDBCUENLZkd0MTgwbG01cXM3T1RaN1plVGVxWG9ISnlvT3RXcnloL0ppNytoQjY2WlJ6ZDZvZVJCS3VESVJhcnBGSWZqWFEwbXpveFZQdFBoMEZZQVNIL0hPcnYwN1VlMVFXb1gxcEFvcTdYd1R2KzdJMzZ2YmhERnc4VW12c3NwQjczVFdBczVDZXowRjhZUVlHSXNnK2YvWDZjbzVBWWhDdGlTMzhUY2pyQVRtOWlSY3U2dnUrS2hmalU1UXlpOTRjZWhUNiJ9XX0=”,
“x-amz-credential”: “ASIA6QZJ64OPLT6T7WMX/20231021/us-east-1/s3/aws4_request”,
“Content-Type”: “multipart/form-data”
}
},
“headers”: {
“connection”: “close”,
“content-length”: “4151”,
“content-type”: “application/json”,
“pinterest-version”: “ac6419c”,
“x-content-type-options”: “nosniff”,
“x-frame-options”: “DENY”,
“access-control-allow-credentials”: “true”,
“p3p”: “CP="Pinterest does not have a P3P policy. You can find our privacy policy at https://www.pinterest.com/_/_/policy/privacy-policy.\”",
“x-envoy-upstream-service-time”: “301”,
“x-ratelimit-limit”: “100, 100;w=1, 100;w=60”,
“x-ratelimit-remaining”: “99”,
“x-ratelimit-reset”: “1”,
“cache-control”: “no-cache, no-store, must-revalidate”,
“age”: “0”,
“set-cookie”: [
“_ir=0; Max-Age=1800; HttpOnly; Path=/; Secure”
],
“x-pinterest-rid”: “1647875705898308”,
“date”: “Sat, 21 Oct 2023 20:18:01 GMT”,
“vary”: “Accept-Encoding”,
“x-cdn”: “fastly”,
“alt-svc”: “h3=":443";ma=600”,
“pinterest-generated-by”: “tpp-api-prod-0a030acb”
},
“statusCode”: 201
}
]
Module 3:
[
{
“statusCode”: 400,
“headers”: [
{
“name”: “content-type”,
“value”: “application/xml”
},
{
“name”: “transfer-encoding”,
“value”: “chunked”
},
{
“name”: “connection”,
“value”: “close”
},
{
“name”: “x-amz-request-id”,
“value”: “SMCEZFT8DCZ2PHAH”
},
{
“name”: “x-amz-id-2”,
“value”: “SC4ScyxibvvGm4Cpi1D/Jo0mFkKb8zjLTEEyBWHX0IjU5Fr7te9eCSa+BWD4KBYpH28SQmD99Ys=”
},
{
“name”: “date”,
“value”: “Sat, 21 Oct 2023 20:18:01 GMT”
},
{
“name”: “server”,
“value”: “AmazonS3”
},
{
“name”: “x-cache”,
“value”: “Error from cloudfront”
},
{
“name”: “via”,
“value”: “1.1 063f496e2a2a07219bf3fbec39d54de4.cloudfront.net (CloudFront)”
},
{
“name”: “x-amz-cf-pop”,
“value”: “IAD66-C1”
},
{
“name”: “x-amz-cf-id”,
“value”: “FrndDCctxVVLUPGvmXiImKaZOO9S-d2-jS-RUCzT66Q-Ya_pLXFX6w==”
}
],
“cookieHeaders”: ,
“data”: “<?xml version=\"1.0\" encoding=\"UTF-8\"?>\nInvalidArgumentPOST requires exactly one file upload per request.file0SMCEZFT8DCZ2PHAHSC4ScyxibvvGm4Cpi1D/Jo0mFkKb8zjLTEEyBWHX0IjU5Fr7te9eCSa+BWD4KBYpH28SQmD99Ys=”,
“fileSize”: 348
}
]

Hi Loco,

you can do this to check the status of the video:

Also after the video upload module I have added a sleep 30 secs module to give it some time to process the upload request. See if this helps.

2 Likes

Hey Loco,
Did you find the solution? I get the message that I am not allowed to save pins.

Hey Stoyan,

Sorry, I haven’t responded in a while.

Do you know how to retrieve the video from tiktok, I ended up doing a strange method with the help of a colleague. We are aware this does not work in the long run but we ended up hard coding an mp4 into the HTTP request. Would I need to use a tiktok api call module?