Тижнева черга на кілька мереж
Раз на тиждень у вас є папка готових відео й список слотів — скажімо, понеділок, середа і пʼятниця о 18:00, — і кожен файл має піти в кожну мережу. Цей рецепт перетворює папку на тиждень queued постів одним скриптом проти REST API. Кожен файл завантажується один раз і згадується за своїм mediaId у стількох постах, скільки потрібно.
Що знадобиться
Section titled “Що знадобиться”- Платний тариф (API починається з Creator) і ключ API зі
write— Налаштування → Ключі API. - Підключені акаунти або група, що їх містить — Групи й кроспостинг.
curlіjqабо будь-який HTTP-клієнт. Тіла нижче — те, що надсилає будь-яка мова.
- Перелічити цілі один раз:
GET /groupsдля id групи абоGET /accountsдля id акаунтів. - Для кожного файлу:
POST /media/uploads→PUTбайтів →GET /media/{id}, доки неready. - Для кожного файлу і його слота:
POST /posts/plan, перевірити, що кожен рядокok, потімPOST /postsізconfirm: true. - Перевірити:
GET /posts?status=queued&from=…&to=…перелічує тиждень.
export KEY="ds_live_xxxxxxxxxxxxxxxxxxxx"export API="https://api.dropslate.top/v1"AUTH="Authorization: Bearer $KEY"
# 1) The group every post goes to (created once on Accounts -> Groups)GROUP_ID=$(curl -s "$API/groups" -H "$AUTH" | jq -r '.groups[] | select(.name=="Weekly") | .id')
# 2) Upload one file and wait until it is readyupload() { local file="$1" local size; size=$(stat -c%s "$file") local ticket; ticket=$(curl -s -X POST "$API/media/uploads" -H "$AUTH" -H "Content-Type: application/json" \ -d "{\"filename\":\"$(basename "$file")\",\"mime\":\"video/mp4\",\"size\":$size}") local id; id=$(echo "$ticket" | jq -r .mediaId) curl -s -X PUT "$(echo "$ticket" | jq -r .uploadUrl)" -H "Content-Type: video/mp4" --data-binary @"$file" > /dev/null until [ "$(curl -s "$API/media/$id" -H "$AUTH" | jq -r .status)" = "ready" ]; do sleep 5; done echo "$id"}
# 3) Plan, then create, one post per slotschedule() { local media="$1" when="$2" text="$3" local body; body=$(jq -n --arg g "$GROUP_ID" --arg m "$media" --arg w "$when" --arg t "$text" \ '{targets:{groupId:$g}, mediaIds:[$m], text:$t, title:($t|.[0:100]), when:{publishAt:$w, timezone:"Europe/Kiev"}}') local plan; plan=$(curl -s -X POST "$API/posts/plan" -H "$AUTH" -H "Content-Type: application/json" -d "$body") if [ "$(echo "$plan" | jq -r .ok)" != "true" ]; then echo "$plan" | jq -r .table; return 1; fi curl -s -X POST "$API/posts" -H "$AUTH" -H "Content-Type: application/json" \ -d "$(echo "$body" | jq '. + {confirm:true}')" | jq -r '.posts[].statusLine'}
M1=$(upload ./week/monday.mp4)M2=$(upload ./week/wednesday.mp4)M3=$(upload ./week/friday.mp4)schedule "$M1" "2026-09-28T18:00" "Monday: what we shipped this week."schedule "$M2" "2026-09-30T18:00" "Wednesday: one question, answered."schedule "$M3" "2026-10-02T18:00" "Friday: behind the scenes."when — локальний час плюс часовий пояс IANA, у якому він записаний — {"publishAt":"2026-09-28T18:00","timezone":"Europe/Kiev"} — або рядок "now" чи "draft"; запланований час має бути щонайменше за 2 хвилини наперед. title використовують YouTube (там обовʼязково) і відео Facebook; інші мережі його ігнорують. Опис YouTube понад 5 000 байтів або текст Threads понад 500 символів зʼявляється рядком ok: false у плані, і функція друкує таблицю плану замість того, щоб щось створити.
Перевірка
Section titled “Перевірка”curl -s "$API/posts?status=queued&from=2026-09-28T00:00:00%2B03:00&to=2026-10-05T00:00:00%2B03:00" -H "$AUTH" | jq -r '.posts[].statusLine'Кожен рядок читається Queued. YouTube · What We Made · 28 Sep, 18:00 (Kyiv). Ті самі пости є в Календарі; кожен можна скасувати чи перепланувати там окремо. Коли слоти минуть, GET /posts?status=failed — та перевірка, на яку варто глянути.
Варіації
Section titled “Варіації”- Різний текст на мережу. Додайте
overrides:{"overrides":{"threads":{"text":"Short version with one idea."},"youtube":{"title":"Full title for YouTube"}}}. Базовийtextусе одно йде решті. - Instagram як Reel з кадром обкладинки.
"perPlatform":{"instagram":{"contentType":"reel","coverMs":4500}}. - Чернетки замість розкладу.
"when":"draft"створює чернетки, які ви розставите з Календаря пізніше. - n8n. Ті самі три виклики як вузли HTTP Request; рецепт Черга з таблиці контенту показує розкладку вузлів.
Повʼязане
Section titled “Повʼязане”- Огляд автоматизації — послідовність за кожним рецептом.
- Робочий приклад — ті самі виклики в curl, Node і Python з кожною відповіддю.
- Ліміти публікації — 60
POST /postsна годину на workspace; група з пʼяти акаунтів — один запит.