mirror of
https://github.com/github/awesome-copilot.git
synced 2026-02-20 02:15:12 +00:00
Add transloadit-media-processing skill
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>
This commit is contained in:
194
skills/transloadit-media-processing/SKILL.md
Normal file
194
skills/transloadit-media-processing/SKILL.md
Normal file
@@ -0,0 +1,194 @@
|
||||
---
|
||||
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.
|
||||
Reference in New Issue
Block a user