Documentation Index
Fetch the complete documentation index at: https://docs.letmepost.dev/llms.txt
Use this file to discover all available pages before exploring further.
What it checks
After uploading bytes to Pinterest’s presigned S3 endpoint, the publisher polls GET /v5/media/{id} until status reaches a terminal state. failed surfaces with this rule.
Why
Pinterest validates the uploaded video — codec, container, duration ≤ 5 min, aspect ratio. Failures don’t come back from the upload itself (S3 returns 204 either way); they only show up on the status poll. Catching the terminal-failed state as a structured rule lets the dashboard’s Post Log filter on it.
Failure response
{
"error": {
"code": "platform_rejected",
"rule": "pinterest.video.transcode_failed",
"platform": "pinterest",
"message": "pinterest rejected the post.",
"remediation": "Pinterest's video transcode failed. Common causes: codec other than h.264 + AAC, mp4 container errors, video > 5 min. Re-encode and retry.",
"platformResponse": {
"media_id": "vid-…",
"media_type": "video",
"status": "failed"
}
}
}
Re-encode to a known-good profile:
ffmpeg -i input.mov \
-c:v libx264 -profile:v high -pix_fmt yuv420p -crf 23 \
-c:a aac -b:a 128k \
-movflags +faststart \
-t 300 \
output.mp4
If the same file works elsewhere, it’s most often a duration > 5 min that Pinterest rejects.