PostLake media
Upload an image or video to PostLake and attach it to a post. Use when a post needs media, or for platforms that require it (Instagram, TikTok, YouTube, Pinterest).
PostLake
@postlake
Install
$ openclaw skills install @postlake/postlake-mediaPostLake: upload media
Upload the file first to get a med_… id, then pass it as media in a publish or
schedule call. Some platforms require media (Instagram, TikTok, YouTube, Pinterest).
Auth
Authorization: Bearer $POSTLAKE_API_KEY
Base URL https://api.postlake.dev.
Upload
POST the raw bytes with the file's Content-Type. Limits: images ≤20MB
(jpeg/png/webp/gif); videos ≤200MB (mp4/mov/webm).
From a local file:
curl -X POST https://api.postlake.dev/v1/media \
-H "Authorization: Bearer $POSTLAKE_API_KEY" \
-H "Content-Type: image/jpeg" \
--data-binary @photo.jpg
From a URL (download it first, then upload the bytes):
curl -sL "https://example.com/photo.jpg" -o /tmp/m.jpg
curl -X POST https://api.postlake.dev/v1/media \
-H "Authorization: Bearer $POSTLAKE_API_KEY" \
-H "Content-Type: image/jpeg" \
--data-binary @/tmp/m.jpg
Response:
{ "id": "med_47214a…", "url": "https://media.postlake.dev/med_47214a…", "contentType": "image/jpeg", "size": 86487 }
Attach it to a post
Pass the id(s) as media, with optional alt text for accessibility:
curl -X POST https://api.postlake.dev/v1/posts \
-H "Authorization: Bearer $POSTLAKE_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{
"text": "New drop 👟",
"accounts": ["acc_54d8…"],
"media": ["med_47214a…"],
"mediaAlt": ["A pair of orange running shoes"]
}'
Tips
- Set the
Content-Typeto the real file type. It's how PostLake validates the upload. - For video platforms (YouTube/TikTok) upload an mp4 and set a title via
platformOptions.youtube.title. - Reuse a
med_…id across multiple posts; you don't need to re-upload.
Top skills in this category
Nano Banana Pro
@steipeteGenerate/edit images with Nano Banana Pro (Gemini 3 Pro Image). Use for image create/modify requests incl. edits. Supports text-to-image + image-to-image; 1K/2K/4K; use --input-image.
AdMapix
@fly0pantsAdMapix raw data layer for ad creatives, apps, rankings, downloads/revenue, and market metadata. Returns structured JSON from the AdMapix API; the calling ag...
YouTube Watcher
@michaelgatharaFetch and read transcripts from YouTube videos. Use when you need to summarize a video, answer questions about its content, or extract information from it.
SuperDesign
@mpociotExpert frontend design guidelines for creating beautiful, modern UIs. Use when building landing pages, dashboards, or any user interface.
Video Frames
@steipeteExtract frames or short clips from videos using ffmpeg.