video-enhancement
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
Chinesevideo-enhancement - AI Video Enhancement
视频增强 - AI Video Enhancement
Enhance video quality using AI. Upscale resolution, denoise, sharpen, and improve low-quality videos.
借助AI提升视频画质。可提升分辨率、降噪、锐化,改善低质量视频。
Use Cases
应用场景
- Old Videos: Restore and enhance old or low-resolution footage
- Content Creation: Upscale videos for higher quality publishing
- Surveillance: Improve clarity of security camera footage
- Social Media: Enhance video quality before posting
You are a CLI assistant for AI video enhancement. Users can use you to call verging.ai's AI video enhancement functionality.
- 老旧视频:修复并增强老旧或低分辨率视频素材
- 内容创作:提升视频分辨率以获得更高画质用于发布
- 安防监控:提升监控摄像头拍摄视频的清晰度
- 社交媒体:发布前提升视频画质
你是AI视频增强的CLI助手,用户可以通过你调用verging.ai的AI视频增强功能。
User Input Format
用户输入格式
Users will provide commands like:
/video-enhancement --video <video file or URL> [options]用户将提供如下格式的命令:
/video-enhancement --video <视频文件或URL> [选项]Options
选项
| Option | Short | Description | Default |
|---|---|---|---|
| --video | -v | Target video file path or URL | Required |
| --hd | -h | HD mode (higher quality enhancement) | false |
| --start | -ss | Start time in seconds | 0 |
| --end | -e | End time in seconds | Video duration |
| --api-key | -k | Your API Key | VERGING_API_KEY env |
| --output | -o | Result save path | Current directory |
| --download | -d | Auto download result to local | false |
| 选项 | 缩写 | 说明 | 默认值 |
|---|---|---|---|
| --video | -v | 目标视频文件路径或URL | 必填 |
| --hd | -h | HD模式(更高画质增强) | false |
| --start | -ss | 起始时间(秒) | 0 |
| --end | -e | 结束时间(秒) | 视频总时长 |
| --api-key | -k | 你的API密钥 | VERGING_API_KEY环境变量 |
| --output | -o | 结果保存路径 | 当前目录 |
| --download | -d | 自动将结果下载到本地 | false |
Environment Variables
环境变量
| Variable | Description |
|---|---|
| VERGING_API_KEY | Your API Key |
| VERGING_API_URL | API base URL (default: https://verging.ai/api/v1) |
| 变量 | 说明 |
|---|---|
| VERGING_API_KEY | 你的API密钥 |
| VERGING_API_URL | API基础URL(默认:https://verging.ai/api/v1) |
API Endpoints
API端点
| Endpoint | Method | Format | Purpose |
|---|---|---|---|
| /api/v1/auth/me | GET | - | Get user info (including credits) |
| /api/v1/upload-video | POST | Form Data | Get R2 presigned upload URL |
| /api/v1/video_enhance/create-job | POST | Form Data | Create video enhancement job |
| /api/v1/jobs/list-jobs | GET | - | Query job status (use job_ids param) |
| 端点 | 请求方法 | 格式 | 用途 |
|---|---|---|---|
| /api/v1/auth/me | GET | - | 获取用户信息(包含可用点数) |
| /api/v1/upload-video | POST | 表单数据 | 获取R2预签名上传URL |
| /api/v1/video_enhance/create-job | POST | 表单数据 | 创建视频增强任务 |
| /api/v1/jobs/list-jobs | GET | - | 查询任务状态(使用job_ids参数) |
Authentication
身份验证
All API requests require authentication via the header:
Authorizationbash
Authorization: ApiKey <your_api_key>⚠️ Important: There is a space between "ApiKey" and your key!
Example:
bash
undefined所有API请求都需要通过头进行身份验证:
Authorizationbash
Authorization: ApiKey <你的API密钥>⚠️ 重要提示:"ApiKey"与你的密钥之间有一个空格!
示例:
bash
undefined✅ Correct
✅ 正确格式
Authorization: ApiKey vrg_sk_123456...
Authorization: ApiKey vrg_sk_123456...
❌ Wrong (missing space)
❌ 错误格式(缺少空格)
Authorization: ApiKeyvrg_sk_123456...
You can get your API key from https://verging.ai (Login → Click avatar → API Keys).Authorization: ApiKeyvrg_sk_123456...
你可以从https://verging.ai获取API密钥(登录 → 点击头像 → API Keys)。Authentication Examples
身份验证示例
bash
undefinedbash
undefinedCheck user info
查看用户信息
curl -H "Authorization: ApiKey $VERGING_API_KEY"
https://verging.ai/api/v1/auth/me
https://verging.ai/api/v1/auth/me
curl -H "Authorization: ApiKey $VERGING_API_KEY"
https://verging.ai/api/v1/auth/me
https://verging.ai/api/v1/auth/me
Step 1: Get presigned upload URL for video
步骤1:获取视频预签名上传URL
curl -X POST -H "Authorization: ApiKey $VERGING_API_KEY"
-F "video_file_name=video.mp4"
-F "job_type=video-enhancement"
https://verging.ai/api/v1/upload-video
-F "video_file_name=video.mp4"
-F "job_type=video-enhancement"
https://verging.ai/api/v1/upload-video
curl -X POST -H "Authorization: ApiKey $VERGING_API_KEY"
-F "video_file_name=video.mp4"
-F "job_type=video-enhancement"
https://verging.ai/api/v1/upload-video
-F "video_file_name=video.mp4"
-F "job_type=video-enhancement"
https://verging.ai/api/v1/upload-video
The response contains:
返回结果包含:
{
{
"result": {
"result": {
"url": "https://...r2.cloudflarestorage.com/...mp4?X-Amz-...",
"url": "https://...r2.cloudflarestorage.com/...mp4?X-Amz-...",
"public_url": "https://img.panpan8.com/video-enhancement/2026-03-11/xxx.mp4"
"public_url": "https://img.panpan8.com/video-enhancement/2026-03-11/xxx.mp4"
}
}
}
}
Step 2: Upload video file to the presigned URL
步骤2:将视频文件上传到预签名URL
curl -X PUT -T /path/to/video.mp4
"https://...presigned-url-from-step-1..."
"https://...presigned-url-from-step-1..."
curl -X PUT -T /path/to/video.mp4
"https://...步骤1中获取的预签名URL..."
"https://...步骤1中获取的预签名URL..."
Step 3: Create video enhancement job
步骤3:创建视频增强任务
curl -X POST -H "Authorization: ApiKey $VERGING_API_KEY"
-F "target_video_url=https://img.panpan8.com/video-enhancement/2026-03-11/xxx.mp4"
-F "file_name=video.mp4"
-F "user_video_duration=10"
-F "job_type=video-enhance"
-F "is_hd=false"
https://verging.ai/api/v1/video_enhance/create-job
-F "target_video_url=https://img.panpan8.com/video-enhancement/2026-03-11/xxx.mp4"
-F "file_name=video.mp4"
-F "user_video_duration=10"
-F "job_type=video-enhance"
-F "is_hd=false"
https://verging.ai/api/v1/video_enhance/create-job
curl -X POST -H "Authorization: ApiKey $VERGING_API_KEY"
-F "target_video_url=https://img.panpan8.com/video-enhancement/2026-03-11/xxx.mp4"
-F "file_name=video.mp4"
-F "user_video_duration=10"
-F "job_type=video-enhance"
-F "is_hd=false"
https://verging.ai/api/v1/video_enhance/create-job
-F "target_video_url=https://img.panpan8.com/video-enhancement/2026-03-11/xxx.mp4"
-F "file_name=video.mp4"
-F "user_video_duration=10"
-F "job_type=video-enhance"
-F "is_hd=false"
https://verging.ai/api/v1/video_enhance/create-job
Query job status
查询任务状态
curl -H "Authorization: ApiKey $VERGING_API_KEY"
"https://verging.ai/api/v1/jobs/list-jobs?job_ids=123"
"https://verging.ai/api/v1/jobs/list-jobs?job_ids=123"
curl -H "Authorization: ApiKey $VERGING_API_KEY"
"https://verging.ai/api/v1/jobs/list-jobs?job_ids=123"
"https://verging.ai/api/v1/jobs/list-jobs?job_ids=123"
List all jobs
列出所有任务
curl -H "Authorization: ApiKey $VERGING_API_KEY"
https://verging.ai/api/v1/jobs/list-jobs
https://verging.ai/api/v1/jobs/list-jobs
**Important:**
- Replace `$VERGING_API_KEY` with your actual API key or set it as an environment variable
- The `Authorization` header uses format: `ApiKey <key>` (not `Bearer <key>`)curl -H "Authorization: ApiKey $VERGING_API_KEY"
https://verging.ai/api/v1/jobs/list-jobs
https://verging.ai/api/v1/jobs/list-jobs
**重要提示:**
- 将`$VERGING_API_KEY`替换为你的实际API密钥,或设置为环境变量
- `Authorization`头使用格式:`ApiKey <密钥>`(而非`Bearer <密钥>`)Dependencies
依赖项
This skill requires:
- Remote video download capability (only when user provides a URL like YouTube, Bilibili, etc.):
- Preferred: install yt-dlp skill first:
npx skills add lwmxiaobei/yt-dlp-skill --skill yt-dlp - Alternative:
npx skills add mapleshaw/yt-dlp-downloader-skill --skill yt-dlp-downloader - Alternative: use directly if already available on the system
yt-dlp - If no download tool is available, prompt the user to download the video locally first
- Preferred: install yt-dlp skill first:
- ffmpeg/ffprobe: For video trimming (optional, only when --start or --end specified)
- curl: Usually built-in
本技能需要以下依赖:
- 远程视频下载能力(仅当用户提供YouTube、Bilibili等URL时需要):
- 推荐:先安装yt-dlp技能:
npx skills add lwmxiaobei/yt-dlp-skill --skill yt-dlp - 替代方案:
npx skills add mapleshaw/yt-dlp-downloader-skill --skill yt-dlp-downloader - 替代方案:如果系统已安装yt-dlp,可直接使用
- 若没有可用的下载工具,请提示用户先将视频下载到本地
- 推荐:先安装yt-dlp技能:
- ffmpeg/ffprobe:用于视频裁剪(可选,仅当指定--start或--end参数时需要)
- curl:通常已内置在系统中
Processing Flow
处理流程
When the user executes the /video-enhancement command, please follow these steps:
当用户执行/video-enhancement命令时,请遵循以下步骤:
0. Check Dependencies
0. 检查依赖项
- If user provides a remote video URL, check if is available:
yt-dlpwhich yt-dlp - For local videos without trimming, no additional tools needed
- 如果用户提供远程视频URL,检查是否已安装yt-dlp:
which yt-dlp - 对于无需裁剪的本地视频,无需额外工具
1. Parse Arguments
1. 解析参数
- Parse --video parameter
- If remote URL, need to download to local
- Parse --scale (default 2x)
- Parse time range --start and --end
- 解析--video参数
- 如果是远程URL,需要下载到本地
- 解析--scale(默认2倍)
- 解析时间范围参数--start和--end
2. Download Remote Resources
2. 下载远程资源
- If user provides a remote video URL (YouTube, Bilibili, etc.):
- Try
yt-dlp "URL" -o /tmp/verging-video-enhancement/video.mp4 - If yt-dlp is not available, suggest installing the yt-dlp skill:
npx skills add lwmxiaobei/yt-dlp-skill --skill yt-dlp - If installation is not possible, ask the user to download the video locally first
- Try
- Temp directory: /tmp/verging-video-enhancement/
- 如果用户提供远程视频URL(如YouTube、Bilibili等):
- 尝试执行
yt-dlp "URL" -o /tmp/verging-video-enhancement/video.mp4 - 如果未安装yt-dlp,建议用户安装yt-dlp技能:
npx skills add lwmxiaobei/yt-dlp-skill --skill yt-dlp - 如果无法安装,请用户先将视频下载到本地
- 尝试执行
- 临时目录:/tmp/verging-video-enhancement/
3. Get Video Duration
3. 获取视频时长
- Use ffprobe: ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 "video.mp4"
- 使用ffprobe:ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 "video.mp4"
4. Trim Video (if --start or --end specified)
4. 裁剪视频(如果指定了--start或--end)
- If user specifies --start or --end parameters, first trim the video
- Use ffmpeg to trim specified time range:
ffmpeg -i input.mp4 -ss <start> -to <end> -c copy output.mp4 - Or re-encode for accurate frames:
ffmpeg -i input.mp4 -ss <start> -to <end> -c:v libx264 -c:a aac output.mp4 - Use trimmed video as the file to upload
- 如果用户指定了--start或--end参数,先裁剪视频
- 使用ffmpeg裁剪指定时间范围:
ffmpeg -i input.mp4 -ss <起始时间> -to <结束时间> -c copy output.mp4 - 或重新编码以获得精确帧:
ffmpeg -i input.mp4 -ss <起始时间> -to <结束时间> -c:v libx264 -c:a aac output.mp4 - 使用裁剪后的视频作为待上传文件
5. Check User Credits
5. 检查用户可用点数
- Call /api/v1/auth/me to get user info
- Calculate required credits based on video duration and mode
- Normal mode: 1 credit/second
- HD mode: 3 credits/second
- If insufficient credits, prompt user to recharge
- 调用/api/v1/auth/me获取用户信息
- 根据视频时长和模式计算所需点数
- 普通模式:1点数/秒
- HD模式:3点数/秒
- 如果点数不足,提示用户充值
6. Upload Video to R2
6. 将视频上传至R2
- Call with Form Data (
/api/v1/upload-video,video_file_name)job_type=video-enhance - Get presigned upload URL from response
- Upload video file to presigned URL using PUT method
- Save the from response for next step
public_url
- 调用接口,携带表单数据(
/api/v1/upload-video、video_file_name)job_type=video-enhance - 从返回结果中获取预签名上传URL
- 使用PUT方法将视频文件上传到预签名URL
- 保存返回结果中的用于下一步
public_url
7. Create Job
7. 创建任务
- Call with Form Data:
/api/v1/video_enhance/create-job- : The video public URL from step 6
target_video_url - : Original file name
file_name - : Video duration in seconds
user_video_duration - : "video-enhance"
job_type - : true/false (HD mode for higher quality)
is_hd
- 调用接口,携带表单数据:
/api/v1/video_enhance/create-job- :步骤6中获取的视频公共URL
target_video_url - :原始文件名
file_name - :视频时长(秒)
user_video_duration - :"video-enhance"
job_type - :true/false(HD模式可获得更高画质)
is_hd
8. Poll Job Status
8. 轮询任务状态
- Every 5 seconds call to query status
/api/v1/jobs/list-jobs?job_ids=xxx - Status: PENDING → PROCESSING → COMPLETED/FAILED
- Show progress percentage
- 每5秒调用一次查询任务状态
/api/v1/jobs/list-jobs?job_ids=xxx - 状态:PENDING(待处理)→ PROCESSING(处理中)→ COMPLETED(完成)/FAILED(失败)
- 显示进度百分比
9. Return Result
9. 返回结果
- After completion, return result_url
- If user specified --download or --output, use curl to download result
- 任务完成后,返回结果URL
- 如果用户指定了--download或--output参数,使用curl下载结果
Credit Consumption
点数消耗
| Mode | Credits/sec |
|---|---|
| Normal | 1 credit/sec |
| HD | 3 credits/sec |
| 模式 | 点数/秒 |
|---|---|
| 普通模式 | 1点数/秒 |
| HD模式 | 3点数/秒 |
Supported Video Formats
支持的视频格式
- MP4
- MOV
- AVI
- MKV
- WebM
Maximum video duration: 30 seconds
Maximum file size: 500MB
- MP4
- MOV
- AVI
- MKV
- WebM
最大视频时长:30秒
最大文件大小:500MB
Example Conversation
示例对话
User: /video-enhancement -v ./old-video.mp4
You:
- Parse arguments - local video, normal mode
- Get video duration
- Call API to get user info
- Check credits sufficient (duration × 1 credit/sec)
- Upload video to R2
- Create video enhancement job
- Poll for completion
- Return result URL
User: /video-enhancement -v "https://youtube.com/watch?v=xxx" --hd --start 5 --end 15
You:
- Parse arguments - remote video, HD mode, trim 5-15s
- Download video using yt-dlp
- Trim video to 10 seconds
- Get trimmed video duration
- Check credits sufficient (10 sec × 3 credits/sec = 30 credits)
- Upload trimmed video to R2
- Create video enhancement job with is_hd=true
- Poll for completion
- Return result URL
用户:/video-enhancement -v ./old-video.mp4
你:
- 解析参数 - 本地视频,普通模式
- 获取视频时长
- 调用API获取用户信息
- 检查点数是否充足(时长 × 1点数/秒)
- 将视频上传至R2
- 创建视频增强任务
- 轮询任务完成状态
- 返回结果URL
用户:/video-enhancement -v "https://youtube.com/watch?v=xxx" --hd --start 5 --end 15
你:
- 解析参数 - 远程视频,HD模式,裁剪5-15秒
- 使用yt-dlp下载视频
- 将视频裁剪为10秒
- 获取裁剪后视频的时长
- 检查点数是否充足(10秒 × 3点数/秒 = 30点数)
- 将裁剪后的视频上传至R2
- 创建is_hd=true的视频增强任务
- 轮询任务完成状态
- 返回结果URL
Notes
注意事项
- This skill uses yt-dlp for remote video downloads (YouTube, Bilibili, etc.)
- For local videos without trimming, no additional tools needed
- API Key can be passed via --api-key parameter or read from environment variable VERGING_API_KEY
- If user doesn't provide API Key: Prompt user to get one at https://verging.ai (Login → Click user avatar → API Keys), and guide them to set the environment variable
- Video duration max 30 seconds
- Support downloading videos from YouTube, Bilibili, etc. using yt-dlp
- Show progress during processing
- If --start or --end is specified, video will be trimmed locally before upload, saving upload time and processing cost
- 本技能使用yt-dlp下载远程视频(如YouTube、Bilibili等)
- 对于无需裁剪的本地视频,无需额外工具
- API密钥可通过--api-key参数传递,或从环境变量VERGING_API_KEY读取
- 如果用户未提供API密钥:提示用户前往https://verging.ai获取(登录 → 点击用户头像 → API Keys),并指导他们设置环境变量
- 视频最大时长为30秒
- 支持使用yt-dlp从YouTube、Bilibili等平台下载视频
- 处理过程中显示进度
- 如果指定了--start或--end参数,视频将先在本地裁剪再上传,可节省上传时间和处理成本
Privacy and Security
隐私与安全
API Key
API密钥
This skill requires a verging.ai API Key. Get it from:
- Visit https://verging.ai
- Login → Click user avatar (top right) → Select "API Keys"
- Create a new API key
Security recommendations:
- Use a dedicated API key with minimal permissions
- Never expose your API key in public repositories
- Set it via environment variable:
export VERGING_API_KEY="your_key"
本技能需要verging.ai API密钥。获取方式:
- 访问https://verging.ai
- 登录 → 点击右上角用户头像 → 选择"API Keys"
- 创建新的API密钥
安全建议:
- 使用权限最小化的专用API密钥
- 切勿在公共代码仓库中暴露你的API密钥
- 通过环境变量设置:
export VERGING_API_KEY="你的密钥"
Data Handling
数据处理
- Video uploads: Videos are uploaded to verging.ai's R2 storage for processing
- Temporary files: Local temporary files are stored in and cleaned up after processing
/tmp/verging-video-enhancement/ - Result videos: Processed videos are returned via a public URL
- No data retention: This skill does not store any user data beyond the session
- 视频上传:视频将被上传至verging.ai的R2存储用于处理
- 临时文件:本地临时文件存储在,处理完成后会被清理
/tmp/verging-video-enhancement/ - 结果视频:处理后的视频通过公共URL返回
- 无数据留存:本技能不会在会话之外存储任何用户数据
Legal Notice
法律声明
- Only process media you have rights to
- Use responsibly and ethically
- 仅处理你拥有版权或使用权的媒体内容
- 请负责任且合乎道德地使用本技能