Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Process media files (video, audio, images, documents) using Transloadit. Use when asked to encode video to HLS/MP4, generate thumbnails, resize or watermark images, extract audio, concatenate clips, add subtitles, OCR documents, or run any media processing pipeline. Covers 86+ processing robots for file transformation at scale.
.claude/skills/transloadit-media-processing/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-16 | ✗→✓ | ▲ Improved | — | — |
| case-06 | ✗→✓ | ▲ Improved | — | — |
| case-01 | ✗→✓ | ▲ Improved | — | — |
| case-05 | ✗→✓ | ▲ Improved | — | — |
| case-09 | ✗→✓ | ▲ Improved | — | — |
Process, transform, and encode media files using Transloadit's cloud infrastructure. Supports video, audio, images, and documents with 86+ specialized processing robots.
Use this skill when you need to:
Add the Transloadit MCP server to your IDE config. This gives the agent direct access to Transloadit tools (create_template, create_assembly, list_assembly_notifications, etc.).
VS Code / GitHub Copilot (.vscode/mcp.json or user settings):
json{ "servers": { "transloadit": { "command": "npx", "args": ["-y", "@transloadit/mcp-server", "stdio"], "env": { "TRANSLOADIT_KEY": "YOUR_AUTH_KEY", "TRANSLOADIT_SECRET": "YOUR_AUTH_SECRET" } } } }
Get your API credentials at https://transloadit.com/c/-/api-credentials
If you prefer running commands directly:
bashnpx -y @transloadit/node assemblies create \ --steps '{"encoded": {"robot": "/video/encode", "use": ":original", "preset": "hls-1080p"}}' \ --wait \ --input ./my-video.mp4
json{ "steps": { "encoded": { "robot": "/video/encode", "use": ":original", "preset": "hls-1080p" } } }
json{ "steps": { "thumbnails": { "robot": "/video/thumbs", "use": ":original", "count": 8, "width": 320, "height": 240 } } }
json{ "steps": { "resized": { "robot": "/image/resize", "use": ":original", "width": 1200, "height": 800, "resize_strategy": "fit" }, "watermarked": { "robot": "/image/resize", "use": "resized", "watermark_url": "https://example.com/logo.png", "watermark_position": "bottom-right", "watermark_size": "15%" } } }
json{ "steps": { "recognized": { "robot": "/document/ocr", "use": ":original", "provider": "aws", "format": "text" } } }
json{ "steps": { "imported": { "robot": "/http/import", "url": ["https://example.com/clip1.mp3", "https://example.com/clip2.mp3"] }, "concatenated": { "robot": "/audio/concat", "use": "imported", "preset": "mp3" } } }
Steps can be chained using the "use" field. Each step references a previous step's output:
json{ "steps": { "resized": { "robot": "/image/resize", "use": ":original", "width": 1920 }, "optimized": { "robot": "/image/optimize", "use": "resized" }, "exported": { "robot": "/s3/store", "use": "optimized", "bucket": "my-bucket", "path": "processed/${file.name}" } } }
create_assembly (MCP) or assemblies create (CLI).create_template (MCP) or templates create (CLI)./video/encode, /image/resize). See full list at https://transloadit.com/docs/transcoding/:original: Refers to the uploaded input file.--wait with the CLI to block until processing completes.preset values (e.g., "hls-1080p", "mp3", "webp") for common format targets instead of specifying every parameter."use": "step_name" to build multi-step pipelines without intermediate downloads./http/import to pull files from URLs, S3, GCS, Azure, FTP, or Dropbox.${variables} for dynamic values passed at assembly creation time.| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-17 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-18 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-21 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-11 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-03 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-04 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-16 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-15 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-14 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-06 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-01 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-08 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-10 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-20 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-05 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-12 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-19 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-02 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-07 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-09 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-22 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-13 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of +23 percentage points is the difference between those two pass rates over the 22 comparable cases.
The per-case answers from this run were removed by the retention sweep, so the case table below shows the verdicts without the text either arm produced. The counts above were recorded at the time and are unaffected. Answers are now kept for 180 days.
Other measured skills in the registry, with their headline benchmark lift.