GHL Video Drip
Turn N pre-uploaded GHL videos into a one-per-day multi-platform Social Planner CSV.
Prereqs (confirm with user)
- Videos already uploaded to GHL Media Library → user has the CDN links
(
https://assets.cdn.filesafe.space/<loc>/media/<id>.mp4). - GHL location timezone =
America/New_York (EDT)so CSV times = true ET. Set at: sub-account → Settings → Business Profile → Timezone. ⚠️ NOTAmerica/Cancun(no DST → 1h off June–Nov). Changing TZ is global for the sub-account — warn it shifts any other queued posts/calendars; check the queue first.
Inputs to collect (use AskUserQuestion if not given)
- CDN links (ordered) + a short caption/title per video.
- Start date (
YYYY-MM-DD), daily time (default19:00= 7PM ET, best US window), platforms (default all 4: TikTok + IG Reel + YT Short + LinkedIn). - Optional per-video: tags, category, pinned
followUpComment(lead-magnet PDF url).
Build
Write an input JSON (see
reference/sample_input.json).Run the builder:
# python = your Python 3.11 interpreter python ~/.claude/skills/ghl-video-drip/scripts/build_drip_csv.py <input.json> <out.csv>- Increments date +1 day per video from
start_dateattime. - Emits 39-col / 2-header CSV, all fields quoted, video in col 6.
- Increments date +1 day per video from
Validate (asserts every record = 39 fields + prints date→video→title map):
powershell -File ~/.claude/skills/ghl-video-drip/scripts/validate_csv.ps1 <out.csv>Hand the CSV path to the user → upload to GHL Social Planner → test row 1 first (confirm the video plays on all platforms, not a GIF/broken) → let the rest run.
Notes
- One CSV row = one video posted to all selected platforms simultaneously (All-Social
covers FB/IG/LinkedIn as
reel; dedicated YouTube cols =short; TikTok cols set). - Platform selection is also gated by which social accounts are connected/picked at upload time in Social Planner.
- Brand rules still apply:
@yourhandlehandle, client SAVINGS only (never your fees), no fake metrics.
Column map (39)
1 postAtSpecificTime · 2 content · 3 OGmetaUrl · 4 imageUrls · 5 gifUrl · 6 videoUrls · 7 mediaOptimization(TRUE) · 8 applyWatermark(FALSE) · 9 tags · 10 category · 11 followUpComment · 12-13 type=reel,reel(FB,IG) · 14-15 pdfTitle,postAsPdf · 16-25 Google GBP (empty ×10) · 26 YT title · 27 YT privacy(public) · 28 YT type(short) · 29 TikTok privacy(everyone) · 30 promoteOtherBrand(FALSE) · 31-33 enableComment/Duet/Stitch(TRUE) · 34 videoDisclosure(FALSE) · 35 promoteYourBrand(FALSE) · 36-37 Community title,notify · 38-39 Pinterest title,link.