← Social Media Scheduler

Let your files describe themselves

Save a small text file next to a video (same name, different extension) and GrabCast fills in the title, description, tags, thumbnail, subtitles and schedule when you post it — from your storage (Google Drive, uploads) or Smart import.

⬇ JSON template⬇ YAML template⬇ TXT template⬇ CSV manifest

JSON — my-video.json

Every field is optional. Unknown fields are ignored.

{
  "title": "Pumpkin latte is back 🎃",
  "description": "Our autumn favourite returns this week.",
  "captions": { "instagram": "Link in bio 🎃", "tiktok": "POV: autumn is back" },
  "tags": ["coffee", "autumn"],   "hashtags": ["pumpkinspice"],
  "thumbnail": "my-video_thumbnail.jpg",
  "platforms": ["youtube", "instagram", "tiktok"],
  "publish_at": "2026-10-01 09:00",   "timezone": "America/New_York",
  "privacy": "public",   "made_for_kids": false,   "synthetic_media": false,
  "first_comment": "Which flavour next?",   "link": "https://example.com/menu",
  "category": "26",   "language": "en",   "playlist": "Seasonal drinks"
}

YAML or Markdown — my-video.yaml, my-video.md

Same fields as JSON. In a Markdown file, put them in a front-matter block; the text below it becomes the description.

---
title: Pumpkin latte is back 🎃
tags: [coffee, autumn]
publish_at: 2026-10-01 09:00
---
Our autumn favourite returns this week. #pumpkinspice

Plain text — my-video.txt

Line 1 is the title, then a blank line, then the description. #hashtags anywhere become tags. Optional key: value lines at the very top work too.

publish_at: 2026-10-01 09:00
Pumpkin latte is back 🎃

Our autumn favourite returns this week.
#coffee #autumn

Manifest — manifest.csv or manifest.json

One row per file for a whole folder. The file column names the video; other columns use the field names above. Rows with too few or too many cells are reported, not guessed.

file,title,description,tags,publish_at,timezone,platforms
latte.mp4,Pumpkin latte is back,Our autumn favourite.,"coffee,autumn",2026-10-01 09:00,America/New_York,"youtube,instagram"

File name

If a file is named YYYY-MM-DD_HH-mm__Title words__tag1,tag2.mp4, the date, title and tags are read from the name. Example: 2026-10-01_09-00__Pumpkin latte is back__coffee,autumn.mp4. Titles, descriptions and tags saved inside MP4/MOV files are used last.

Thumbnail & subtitles

Thumbnailmy-video.jpg · my-video-thumb.jpg · my-video_thumbnail.png · cover.jpg or thumbnail.jpg in the folder · or "thumbnail" in the sidecar. Used as the YouTube custom thumbnail (verified channels) and the Instagram Reel cover.
Subtitlesmy-video.srt or my-video.vtt; add a language: my-video.en.srt.

Which one wins

Per-file JSON / YAML → manifest row → TXT / Markdown → file name → tags inside the video → AI suggestion (only when you switch it on; always labelled “AI”). Each field shows where it came from, and you can edit anything before posting. Too-long titles or captions (YouTube title 100, description 5,000; TikTok and Instagram captions 2,200; Instagram 5 hashtags) are flagged, and anything missing is marked for review.

Your own conventions

Already name files your own way? In Settings → Storage → File recognition rules, paste an example file name, highlight the title, date or tags, and GrabCast builds a safe pattern for you. You can also map your own sidecar keys (e.g. headline → title), set a title template, default accounts and hashtags, or start from a preset (YouTube folder, CapCut, Canva, simple TXT). Rules are patterns and mappings only — nothing in your files is ever run as code.