francozanardi/tscaps/tscaps-api
Claude Code and agent skill by francozanardi/tscaps
- community
- ext:[{"type":"template","description":"Custom templates for code generation"}]
Checking that the SKILL.md file is still in the repository.
Generate videos with burned-in animated subtitles using the Tscaps Automation API. Use when programmatically creating captioned videos, uploading video files via presigned S3/R2 URLs, tracking job status, receiving webhooks, or handling subtitle rendering errors.
Install
npx vskill@latest install francozanardi/tscaps/tscaps-apiSemi-extensibleMentions customization, but needs skill-specific knowledge. Read the extensible skills standard
SKILL.md
Tscaps Automation API Skill
Use the Tscaps Automation API to programmatically generate videos with burned-in animated subtitles, word-level highlights, and typography styles.
- Base URL:
https://api.tscaps.io - Authentication: Bearer token in the
Authorizationheader (Authorization: Bearer <API_KEY>) - Developer Portal: Manage keys, templates, and minute balance at
https://tscaps.io/app/developers - Documentation:
https://tscaps.io/docs/api(or single-file reference athttps://tscaps.io/docs/llms-full.txt)
3-Step Integration Workflow
Code Examples
JavaScript / TypeScript (Node.js)
Python
Templates (templateId)
The templateId parameter in POST /v1/automation-jobs specifies the typography, layout, animation, and highlighting style of the subtitles. It accepts either a built-in template name or a custom template ID saved to your account.
- Recommended built-in templates (most popular):
mira(default choice): Clean modern sans-serif with subtle outline and shadow. Versatile for any content.enzo: Heavy sans-serif with italic Garamond accents on emphasized words.loki: Comic book uppercase with thick black outline and elastic scale bounce.nova: Dual-line layout with larger yellow headline and white body text.naya: High-impact condensed uppercase with contextual emojis by default.lewis: Single-word rapid pop display with cyan/neon accents and emojis by default.elio: Tall condensed uppercase with dynamic vertical rise on speech.vera: Clean business style with dark backing strip and vibrant blue active pill.sara: Historic literary serif with gentle fade-in and scale accents.
For the full catalog of built-in templates, each with a description of its look and what it suits, consult references/templates.md.
Custom Templates (Creating or Modifying a Style)
The API does not accept inline CSS or styling overrides in the JSON request body. When a user asks to modify a style (custom brand colors, typography, margins, animations) or create a new template:
- Open the editor: Go to
https://tscaps.io/app/projectsand upload a video (or open an existing project). - Customize the template: In the Templates tab, select a base style and tune colors, fonts, margins, animations, or write custom CSS directly in the Code tab.
- Save the template: Save it as a new custom template to your account.
- Copy the Template ID: Go to
https://tscaps.io/app/developers/templates. Your saved templates appear under "Your templates" with their unique IDs. - Use in API jobs: Pass that ID as
templateIdinPOST /v1/automation-jobs. It can be reused across all future API renders.
Direct File Uploads (When No Public URL Exists)
If the video is on local disk or behind authentication, upload it directly via presigned S3/R2 PUT URL:
- Request Upload URL:
POST /v1/automation-jobs/uploads Body: { "fileName": "video.mp4", "sizeBytes": 14205000 } Response: { "uploadId": "uuid", "uploadUrl": "https://...", "contentType": "video/mp4" }
- Upload Raw Binary (PUT):
Send HTTP PUT directly to uploadUrl with the raw file bytes:
Content-Lengthheader must matchsizeBytesexactly.Content-Typeheader should match the returnedcontentType.- Do NOT send an
Authorizationheader or API key touploadUrl. - Do NOT use
multipart/form-data(FormData); stream raw binary bytes.
``bash curl -X PUT "$UPLOAD_URL" \ -H "Content-Type: video/mp4" \ -H "Content-Length: 14205000" \ --data-binary @video.mp4 ``
- Queue Job with uploadId:
POST /v1/automation-jobs with { "uploadId": "...", "templateId": "mira" }.
Webhooks & Signature Verification
Pass webhookUrl in POST /v1/automation-jobs to receive an instant HTTP callback upon completion.
Headers sent with each webhook delivery:
webhook-id: Unique message ID (msg_...).webhook-timestamp: Unix epoch seconds timestamp.webhook-signature: Space-delimited signatures formatted asv1,<base64-hmac>.
Verification (Node.js):
Failure Codes Reference
When a job fails, the response contains failureCode:
failureCode | Meaning | Retryable? | Resolution | |
|---|---|---|---|---|
source-unreachable | Video URL returned HTTP 4xx/5xx or timed out. | Yes | Verify URL is public and unauthenticated. | |
source-unreadable | Downloaded file could not be parsed as video. | No | Ensure file is encoded MP4/WebM/MOV. | |
source-too-long | Exceeds plan maximum (3 min Free, 5 min Starter, 10 min Pro). | No | Shorten video or upgrade subscription. | |
output-larger-than-source | Requested resolution exceeds source video dimensions. | No | Tscaps does not upscale. Omit resolution or request smaller. | |
automation-minutes-exhausted | Account has insufficient automation minutes. | No | Buy more minutes in developer dashboard. | |
ingest-failed | Audio extraction or metadata probe failed. | Yes | Check video codec compatibility or retry. | |
transcription-failed | Speech recognition error. | Yes | Retry; specify language if non-English. | |
render-failed | Subtitle frame composition error. | Yes | Transient error; retry. | |
timed-out | Exceeded execution deadline. | Yes | Retry job; reduce video duration if persistent. | |
internal | Unexpected server error. | Yes | Transient error; safe to retry. |
Billing Guarantee: Failed and cancelled jobs never consume automation minutes. Reserved minutes are refunded immediately.
Security
- Security scanPassed, 95 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/tscaps-api/SKILL.md
Popularity
- Repository stars
- 71
- Repository forks
- 10
- 7-day trend score
- 21
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Extension points
templateCustom templates for code generation
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/francozanardi/tscaps/tscaps-api)