mcpField
V
video-enhancement

video-enhancement

github.com/verging-aiCreative & media046 installsUpdated 20w ago
Repository

About video-enhancement

video-enhancement uses verging.ai to upscale and enhance video. It accepts local files or YouTube and Bilibili URLs, with options to trim clips and request HD output.

Key features

  1. 01Enhances video through verging.ai
  2. 02Accepts files and video URLs
  3. 03Trims clips to a selected range of up to 30 seconds
  4. 04Offers HD output and optional auto-download

Use cases

  1. 01Improve the quality of a short video
  2. 02Enhance a clip from YouTube or Bilibili

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/verging-ai/agent-skills --skill video-enhancement

After installing, type/video-enhancementin Claude Code to confirm it loaded.

Bundled filesREADME.md

Details

From the project README

video-enhancement - AI Video Enhancement

Upscale and enhance video quality using AI via verging.ai.

Command Format

/video-enhancement --video <video file or URL> [options]

Options

OptionShortDescriptionDefault
--video-vVideo file path or URL (YouTube/Bilibili)Required
--start-sStart time in seconds0
--end-eEnd time in secondsVideo end (max 30s)
--hdHD upscaling (5 credits/sec)false (3 credits/sec)
--api-key-kAPI Key$VERGING_API_KEY
--output-oSave path for resultCurrent directory
--download-dAuto download resultfalse

Authentication

Recommended: Authorization: ApiKey <your_key>

# ✅ Recommended (canonical form)
curl -H "Authorization: ApiKey vrg_sk_your_key_here" https://verging.ai/api/v1/auth/me

# ✅ Also works (Bearer with API key is supported)
curl -H "Authorization: Bearer vrg_sk_your_key_here" https://verging.ai/api/v1/auth/me

Get your API key: https://verging.ai → Login → Avatar → API Keys

API Reference (Exact Formats)

1. Check Credits
curl -H "Authorization: ApiKey $VERGING_API_KEY" \
  https://verging.ai/api/v1/auth/me

Response: {"email":"...","name":"...","credits":100}

2. Get Upload URL (Form Data - NOT JSON)
# ⚠️ MUST use -F (multipart form-data)
curl -X POST https://verging.ai/api/v1/upload-video \
  -H "Authorization: ApiKey $VERGING_API_KEY" \
  -F "video_file_name=video.mp4" \
  -F "job_type=video-enhance"

Response:

{
  "code": 100000,
  "result": {
    "url": "https://...presigned-url...",
    "public_url": "https://img.panpan8.com/video-enhance/..."
  }
}
3. Upload Video to R2
curl -X PUT -T /tmp/verging-video-enhancement/trimmed.mp4 \
  -H "Content-Type: video/mp4" \
  "<presigned_url_from_step_2>"
4. Create Enhancement Job (Form Data)
# ⚠️ Uses -F (form-data), NOT JSON
curl -X POST https://verging.ai/api/v1/video_enhance/create-job \
  -H "Authorization: ApiKey $VERGING_API_KEY" \
  -F "target_video_url=<public_url_from_step_2>" \
  -F "file_name=video.mp4" \
  -F "user_video_duration=30" \
  -F "job_type=video-enhance" \
  -F "is_hd=false"

Response: {"code":10000,"result":{"job_id":"123"},"message":{"en":"Request Success","zh":"提交任务成功"}}

5. Poll Job Status
curl -H "Authorization: ApiKey $VERGING_API_KEY" \
  "https://verging.ai/api/v1/jobs/list-jobs?job_ids=<job_id>"

Response: [{"id":123,"job_type":"video-enhance","status":"COMPLETED","progress":100,"result_url":"https://...","created_at":"...","updated_at":"..."}]

Status values: PENDING → PROCESSING → COMPLETED (or FAILED)

Execution Flow (Follow Exactly)

  1. Parse args → extract video path/URL, options
  2. Download remote video (if URL): yt-dlp "URL" -o /tmp/verging-video-enhancement/input.mp4
  3. Get duration → ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 video.mp4
  4. Trim if needed (--start/--end or duration > 30s):
    ffmpeg -i input.mp4 -ss <start> -to <end> -c:v libx264 -c:a aac /tmp/verging-video-enhancement/trimmed.mp4
    
  5. Check credits → GET /api/v1/auth/me (need duration × 3 normal or ×5 HD)
  6. Upload video → POST /upload-video (Form Data) → PUT to presigned URL
  7. Create job → POST /video_enhance/create-job (Form Data)
  8. Poll status → GET /jobs/list-jobs?job_ids=X every 5 seconds until COMPLETED
  9. Return/download result → show result_url, optionally curl download

Critical Notes

  • Use Authorization: ApiKey <key> (recommended) — Bearer <key> also works
  • /upload-video uses Form Data (-F) — NOT JSON
  • /video_enhance/create-job uses Form Data (-F) — NOT JSON, no file upload needed
  • Max video duration: 30 seconds — trim longer videos first
  • Temp directory: /tmp/verging-video-enhancement/
  • If yt-dlp unavailable, ask user to download video manually

Credit Consumption

ModeCost
Normal3 credits/second
HD5 credits/second

Privacy & Security

  • Set key via env: export VERGING_API_KEY="your_key"
  • Never expose API key in public repos
  • Only process media you have rights to
  • Temp files cleaned up after use

Comments

Markdown supported