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 — 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
| Thumbnail | my-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. |
|---|---|
| Subtitles | my-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.