Skillshub transloadit-media-processing
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.
git clone https://github.com/ComeOnOliver/skillshub
T=$(mktemp -d) && git clone --depth=1 https://github.com/ComeOnOliver/skillshub "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/github/awesome-copilot/transloadit-media-processing" ~/.claude/skills/comeonoliver-skillshub-transloadit-media-processing && rm -rf "$T"
skills/github/awesome-copilot/transloadit-media-processing/SKILL.mdTransloadit Media Processing
Process, transform, and encode media files using Transloadit's cloud infrastructure. Supports video, audio, images, and documents with 86+ specialized processing robots.
When to Use This Skill
Use this skill when you need to:
- Encode video to HLS, MP4, WebM, or other formats
- Generate thumbnails or animated GIFs from video
- Resize, crop, watermark, or optimize images
- Convert between image formats (JPEG, PNG, WebP, AVIF, HEIF)
- Extract or transcode audio (MP3, AAC, FLAC, WAV)
- Concatenate video or audio clips
- Add subtitles or overlay text on video
- OCR documents (PDF, scanned images)
- Run speech-to-text or text-to-speech
- Apply AI-based content moderation or object detection
- Build multi-step media pipelines that chain operations together
Setup
Option A: MCP Server (recommended for Copilot)
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):
{ "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
Option B: CLI
If you prefer running commands directly:
npx -y @transloadit/node assemblies create \ --steps '{"encoded": {"robot": "/video/encode", "use": ":original", "preset": "hls-1080p"}}' \ --wait \ --input ./my-video.mp4
Core Workflows
Encode Video to HLS (Adaptive Streaming)
{ "steps": { "encoded": { "robot": "/video/encode", "use": ":original", "preset": "hls-1080p" } } }
Generate Thumbnails from Video
{ "steps": { "thumbnails": { "robot": "/video/thumbs", "use": ":original", "count": 8, "width": 320, "height": 240 } } }
Resize and Watermark Images
{ "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%" } } }
OCR a Document
{ "steps": { "recognized": { "robot": "/document/ocr", "use": ":original", "provider": "aws", "format": "text" } } }
Concatenate Audio Clips
{ "steps": { "imported": { "robot": "/http/import", "url": ["https://example.com/clip1.mp3", "https://example.com/clip2.mp3"] }, "concatenated": { "robot": "/audio/concat", "use": "imported", "preset": "mp3" } } }
Multi-Step Pipelines
Steps can be chained using the
"use" field. Each step references a previous step's output:
{ "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}" } } }
Key Concepts
- Assembly: A single processing job. Created via
(MCP) orcreate_assembly
(CLI).assemblies create - Template: A reusable set of steps stored on Transloadit. Created via
(MCP) orcreate_template
(CLI).templates create - Robot: A processing unit (e.g.,
,/video/encode
). See full list at https://transloadit.com/docs/transcoding//image/resize - Steps: JSON object defining the pipeline. Each key is a step name, each value configures a robot.
: Refers to the uploaded input file.:original
Tips
- Use
with the CLI to block until processing completes.--wait - Use
values (e.g.,preset
,"hls-1080p"
,"mp3"
) for common format targets instead of specifying every parameter."webp" - Chain
to build multi-step pipelines without intermediate downloads."use": "step_name" - For batch processing, use
to pull files from URLs, S3, GCS, Azure, FTP, or Dropbox./http/import - Templates can include
for dynamic values passed at assembly creation time.${variables}