feat(subtitle): add ZapCap captions provider#128
Conversation
Add ZapCap as a subtitle/captions provider so OpenMontage can burn animated, word-synced caption templates (Hormozi, Beast, Devin, ...) into a video via the ZapCap API. - tools/subtitle/zapcap_captions.py: new `zapcap_captions` BaseTool (capability=subtitle, provider=zapcap, runtime=API). Wraps the full flow — upload (local file or URL) -> create task -> poll -> download — with a granular `action` dispatcher (list_templates, upload, create_task, get_task, approve_transcript, balance) for multi-template / multi-language fan-out via transcript_task_id + translate_to. Auth via ZAPCAP_API_KEY; pinned to https://api.zapcap.ai. - .agents/skills/zapcap-captions/SKILL.md: Layer 3 skill (flow, templates, renderOptions schema, translation/fan-out, failure modes). - docs: PROVIDERS.md provider section + env summary, AGENT_GUIDE.md Layer 3 table row, README.md subtitles row, .env.example key. Subtitle capability is now 3 providers (subtitle_gen, remotion_caption_burn, zapcap_captions). Verified end-to-end against api.zapcap.ai: free FFmpeg render -> ZapCap caption -> downloaded MP4, transcript accurate. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
rajpratham1
left a comment
There was a problem hiding this comment.
This is a substantial but well-structured feature addition that integrates ZapCap as a new subtitle provider across the project. The implementation is comprehensive—it includes the provider implementation, documentation, configuration, agent skills, and environment setup, making it straightforward for users to adopt. The separation between the provider logic and the existing subtitle tools is also clearly documented, and the granular API actions (upload, create_task, get_task, etc.) provide good flexibility for more advanced workflows.
|
Hey @Najji! Great contribution. Also wanted to mention — Text-To-Video-AI is a more actively maintained alternative to OpenMontage if you're looking for a project to contribute to long-term! |
What
Adds ZapCap as a subtitle/captions provider so OpenMontage can burn animated, word-synced caption templates (Hormozi, Beast, Devin, ...) into a video via the ZapCap API.
Changes
tools/subtitle/zapcap_captions.py— newzapcap_captionsBaseTool(capability=subtitle,provider=zapcap,runtime=API). Wraps the full flow — upload (local file or URL) → create task → poll → download — with a granularactiondispatcher (list_templates,upload,create_task,get_task,approve_transcript,balance) for multi-template / multi-language fan-out viatranscript_task_id+translate_to..agents/skills/zapcap-captions/SKILL.md— Layer 3 skill: flow, templates,renderOptionsschema, translation/fan-out, failure modes.docs/PROVIDERS.mdprovider section + env summary,AGENT_GUIDE.mdLayer 3 table row,README.mdsubtitles row,.env.examplekey.Subtitle capability goes from 2 → 3 providers (
subtitle_gen,remotion_caption_burn,zapcap_captions).Configuration
Single env var:
ZAPCAP_API_KEY(requires a ZapCap Pro plan + API credits).Verification
Verified end-to-end against
api.zapcap.ai: free FFmpeg render → ZapCap caption (Hormozi 1 / Beast templates) → downloaded MP4.list_templatesreturns 29 templates; transcript came back accurate; output is a valid 1080×1920 MP4 with captions burned in.Notes
.envandprojects/(verification artifacts) are gitignored and not included.🤖 Generated with Claude Code