▶

AutoPublish Studio Pro

Bulk upload • AI content • Scheduled Facebook publishing — Mother Admin • v3.2 (encrypted page tokens, real transcription, resumable upload, site-managed AI settings, model switch / fallback)

Login

First account ever created becomes Mother Admin (Admin). Later accounts are clients — each client has its own isolated workspace (own videos, pages, schedule, AI settings) and never sees another profile's data. Admin creates clients from Admin > Users. No keys are stored in this page — the Worker holds all secrets.

If email confirmation is ON in Supabase, signup will ask you to confirm by email first, then login.

Dashboard

Numbers below come from /analytics (real database rows). Until the Worker answers they show —, never fake numbers.

—
Total Videos
—
Published
—
Scheduled (approved)
—
Failed
—
AI Completed
—
Connected Pages
—
Success rate
—
Last heartbeat

Recent errors

—

Upload Videos

Bulk upload: select up to 1000 files. Uploads run 3 at a time (change in Settings). Per-file + overall progress shown. Same file (same name + size + modified time) for the same user is detected as a duplicate and reused — no second Drive upload. Videos go to the website once; the Worker saves them to the single shared Drive automatically.

Overall progress: 0% (0/0)

FileSizeProgressStatus

All Videos

File / TitleStatusAIScheduledFB postError

AI Content Studio — Pipeline monitor

Automatic: after upload, the Worker Cron transcribes and generates content for each video — no video ID paste needed. This page is a monitor + optional edit view. The Transcribe / Generate buttons below are per-video Retry only, not the normal path. SRT timing: Whisper SRT uses real segment timestamps; Gemini SRT uses estimated sentence timing over the video duration (labelled “estimated” in the list).

Model switch status: load the pipeline to see selected models, last successful model, and last failures (selected only — never shown as available).

Selected video — review / edit (optional)

No transcript yet — the automatic pipeline fills this after upload, or click a video above.

All generated content

Publishing Queue

Approved videos waiting for their scheduled time, plus the server-side queue rows (status, attempts, next retry). Publishing itself runs on the Worker Cron — not in this browser.

Approve once (Mother Admin)

Select videos from All Videos by ID (comma-separated), or approve everything currently pending/ready. New videos are appended AFTER the last scheduled time — earlier times are never moved.

Scheduler

Server-side only. The Worker Cron ticks hourly; a video publishes when its scheduled_at arrives. Pause stops publishing (heartbeat keeps running).

Facebook Pages

Official Graph API only. Page tokens are stored server-side and NEVER shown back by any GET endpoint. Adding a page is Mother Admin only; uploaders inherit it.

Add Page (Admin)

Token source: Meta App → Page connection flow. If Meta requires App Review / Advanced Access for a permission, that is a documented blocker in the README — the Worker will surface the Graph error instead of claiming success.

Google Drive

Single shared Drive, set once by Mother Admin. Service-account uploads to a personal My Drive fail with 403 quota — the working route is Mother Admin OAuth (refresh token in Worker secrets).

OAuth callback shows the refresh token ONCE on the Worker page. Paste it only into the Worker secret GOOGLE_OAUTH_REFRESH_TOKEN — never in chat or screenshots. Folder: FB Queue (or DRIVE_FOLDER_ID if set).

AI Settings

Each profile has its own AI settings. Clients edit only their own profile here. Admin can also set the Global default (fallback for profiles that have not set their own) with the Scope selector below. Gemini and OpenAI can each be set here: Base URL (API root, without a trailing /v1 or /v1beta), Model, and API Key. Keys are sent to the Worker only, stored encrypted in Supabase (same TOKEN_KEY AES-GCM scheme as Facebook page tokens), and are NEVER shown back by any endpoint — leave a key field blank to keep the existing key. Worker secrets (GEMINI_API_KEY / OPENAI_API_KEY / AI_PROVIDER / AI_MODEL) remain as fallback when no site setting exists for a provider. For OpenAI, Model is the generation/chat model; transcription still uses whisper-1 unless OPENAI_TRANSCRIPTION_MODEL is set on the Worker.

Gemini

Suggested models (suggestions only — availability depends on your API key/account, never shown as available). Select All, or tick one by one. Only selected models will be tried, in suggested order first, then custom models. If one fails, the next selected model is tried after 3.5 seconds.

OpenAI

Suggested models (suggestions only — availability depends on your API key/account, never shown as available). Select All, or tick one by one. Only selected models will be tried, in suggested order first, then custom models. If one fails, the next selected model is tried after 3.5 seconds.

After saving, click Check AI status: it must show configured: yes for a provider with a key. No key is ever prefilled or returned here.

Admin > Users

Admin only. Create client accounts here — the client is confirmed immediately and can log in right away (no email-confirmation wait). The temporary password is sent only to this endpoint and is never shown back or logged. Deactivating a client blocks all of that profile's Worker data calls (it does not revoke an already-issued Auth token at the Auth server — for a full ban use Supabase Dashboard > Authentication > Users). Admin accounts and your own account cannot be deactivated here. Client data is NEVER merged: to view a profile, click Manage — that profile alone is shown until you click "Back to my workspace".

Create client account

Publishing History

Permanent history kept in Supabase even after the Drive file is auto-deleted on success.

Analytics

All figures are computed from real database rows via /analytics. No demo numbers.

Settings

Mother Admin only for writes. Other keys/secrets are managed in the Cloudflare Worker dashboard; AI keys (Gemini/OpenAI) can also be set in AI Settings (encrypted at rest, never shown back).

Deployment & blockers

See README.md in the project folder for the full deploy guide and the exact remaining user-only blockers (Drive OAuth refresh token, Facebook test-page token, Pages + Worker redeploys). Gemini/OpenAI keys can now also be set in AI Settings; other secrets still need the owner's dashboards.