Receber por email
← Voltar para o catálogo

video-enhancement

AI Video Enhancement - Upscale video resolution, improve quality, denoise, sharpen, enhance low-quality videos to HD/4K. Supports local video files, remote URLs (YouTube, Bilibili), auto-download, real-time progress tracking.

367estrelas
Atualizado há 4 meses

Ver no GitHub ↗

Como adicionar

/plugin marketplace add aiskillstore/marketplace

O comando exato pode variar conforme o repositório. Confira o README no GitHub.

Para o autor da skill

Cole no README do seu repo

Mostra que sua skill está catalogada na Skillteca, gera backlink e tráfego rastreável.

[![Skillteca](https://www.skillteca.com.br/api/badge/video-enhancement/svg)](https://www.skillteca.com.br/skills/video-enhancement)
#ai

Skills relacionadas

Ver todas de Segurança →

Alerta por categoria

Receba novas skills de Segurança toda segunda

1 email curto, só com as skills novas de Segurança. 4 minutos de leitura, sem spam, cancela com 1 clique.

Você confirma o email no primeiro envio. Sem spam. Cancela com 1 clique.

Ler descrição completa

video-enhancement - AI Video Enhancement

Enhance video quality using AI. Upscale resolution, denoise, sharpen, and improve low-quality videos.

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.

User Input Format

Users will provide commands like:

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

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 |

Environment Variables

| Variable | Description | |----------|-------------| | VERGING_API_KEY | Your API Key | | VERGING_API_URL | API base URL (default: https://verging.ai/api/v1) |

API Endpoints

| 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) |

Authentication

All API requests require authentication via the Authorization header:

Authorization: ApiKey <your_api_key>

⚠️ Important: There is a space between "ApiKey" and your key!

Example:

# ✅ Correct
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).

Authentication Examples

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

# Step 1: Get presigned upload URL for 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

# The response contains:
# {
#   "result": {
#     "url": "https://...r2.cloudflarestorage.com/...mp4?X-Amz-...",
#     "public_url": "https://img.panpan8.com/video-enhancement/2026-03-11/xxx.mp4"
#   }
# }

# Step 2: Upload video file to the presigned URL
curl -X PUT -T /path/to/video.mp4 \
  "https://...presigned-url-from-step-1..."

# Step 3: Create video enhancement 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

# Query job status
curl -H "Authorization: ApiKey $VERGING_API_KEY" \
  "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

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>)

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 yt-dlp directly if already available on the system
  • If no download tool is available, prompt the user to download the video locally first
  • ffmpeg/ffprobe: For video trimming (optional, only when --start or --end specified)
  • curl: Usually built-in

Processing Flow

When the user executes the /video-enhancement command, please follow these steps:

0. Check Dependencies

  • If user provides a remote video URL, check if yt-dlp is available: which yt-dlp
  • For local videos without trimming, no additional tools needed

1. Parse Arguments

  • Parse --video parameter
  • If remote URL, need to download to local
  • Parse --scale (default 2x)
  • Parse time range --start and --end

2. Download Remote Resources

  • 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
  • Temp directory: /tmp/verging-video-enhancement/

3. Get Video Duration

  • Use 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)

  • 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

5. Check User Credits

  • 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

6. Upload Video to R2

  • Call /api/v1/upload-video with Form Data (video_file_name, job_type=video-enhance)
  • Get presigned upload URL from response
  • Upload video file to presigned URL using PUT method
  • Save the public_url from response for next step

7. Create Job

  • Call /api/v1/video_enhance/create-job with Form Data:
  • target_video_url: The video public URL from step 6
  • file_name: Original file name
  • user_video_duration: Video duration in seconds
  • job_type: "video-enhance"
  • is_hd: true/false (HD mode for higher quality)

8. Poll Job Status

  • Every 5 seconds call /api/v1/jobs/list-jobs?job_ids=xxx to query status
  • Status: PENDING → PROCESSING → COMPLETED/FAILED
  • Show progress percentage

9. Return Result

  • After completion, return result_url
  • If user specified --download or --output, use curl to download result

Credit Consumption

| Mode | Credits/sec | |------|-------------| | Normal | 1 credit/sec | | HD | 3 credits/sec |

Supported Video Formats

  • MP4
  • MOV
  • AVI
  • MKV
  • WebM

Maximum video duration: 30 seconds Maximum file size: 500MB

Example Conversation

User: /video-enhancement -v ./old-video.mp4

You:

  1. Parse arguments - local video, normal mode
  2. Get video duration
  3. Call API to get user info
  4. Check credits sufficient (duration × 1 credit/sec)
  5. Upload video to R2
  6. Create video enhancement job
  7. Poll for completion
  8. Return result URL

User: /video-enhancement -v "https://youtube.com/watch?v=xxx" --hd --start 5 --end 15

You:

  1. Parse arguments - remote video, HD mode, trim 5-15s
  2. Download video using yt-dlp
  3. Trim video to 10 seconds
  4. Get trimmed video duration
  5. Check credits sufficient (10 sec × 3 credits/sec = 30 credits)
  6. Upload trimmed video to R2
  7. Create video enhancement job with is_hd=true
  8. Poll for completion
  9. Return result 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 param
Compartilhar X LinkedIn