mirror of
https://github.com/github/awesome-copilot.git
synced 2026-02-20 02:15:12 +00:00
Media processing skill using Transloadit's 86+ robots for video encoding, image manipulation, audio transcoding, OCR, and multi-step pipelines. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
195 lines
5.0 KiB
Markdown
195 lines
5.0 KiB
Markdown
---
|
|
name: transloadit-media-processing
|
|
description: '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.'
|
|
license: MIT
|
|
compatibility: Requires a free Transloadit account (https://transloadit.com/signup). Uses the @transloadit/mcp-server MCP server or the @transloadit/node CLI.
|
|
---
|
|
|
|
# Transloadit 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):
|
|
|
|
```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
|
|
|
|
### Option B: CLI
|
|
|
|
If you prefer running commands directly:
|
|
|
|
```bash
|
|
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)
|
|
|
|
```json
|
|
{
|
|
"steps": {
|
|
"encoded": {
|
|
"robot": "/video/encode",
|
|
"use": ":original",
|
|
"preset": "hls-1080p"
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
### Generate Thumbnails from Video
|
|
|
|
```json
|
|
{
|
|
"steps": {
|
|
"thumbnails": {
|
|
"robot": "/video/thumbs",
|
|
"use": ":original",
|
|
"count": 8,
|
|
"width": 320,
|
|
"height": 240
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
### Resize and Watermark Images
|
|
|
|
```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%"
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
### OCR a Document
|
|
|
|
```json
|
|
{
|
|
"steps": {
|
|
"recognized": {
|
|
"robot": "/document/ocr",
|
|
"use": ":original",
|
|
"provider": "aws",
|
|
"format": "text"
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
### Concatenate Audio Clips
|
|
|
|
```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"
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
## Multi-Step Pipelines
|
|
|
|
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}"
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
## Key Concepts
|
|
|
|
- **Assembly**: A single processing job. Created via `create_assembly` (MCP) or `assemblies create` (CLI).
|
|
- **Template**: A reusable set of steps stored on Transloadit. Created via `create_template` (MCP) or `templates create` (CLI).
|
|
- **Robot**: A processing unit (e.g., `/video/encode`, `/image/resize`). See full list at https://transloadit.com/docs/transcoding/
|
|
- **Steps**: JSON object defining the pipeline. Each key is a step name, each value configures a robot.
|
|
- **`:original`**: Refers to the uploaded input file.
|
|
|
|
## Tips
|
|
|
|
- Use `--wait` with the CLI to block until processing completes.
|
|
- Use `preset` values (e.g., `"hls-1080p"`, `"mp3"`, `"webp"`) for common format targets instead of specifying every parameter.
|
|
- Chain `"use": "step_name"` to build multi-step pipelines without intermediate downloads.
|
|
- For batch processing, use `/http/import` to pull files from URLs, S3, GCS, Azure, FTP, or Dropbox.
|
|
- Templates can include `${variables}` for dynamic values passed at assembly creation time.
|