← 返回 Skills 市场
volcengine-skills

Byted Byteplus Vod Video Enhancement

作者 volcengine-skills · GitHub ↗ · v1.0.0 · MIT-0
cross-platform ✓ 安全检测通过
23
总下载
0
收藏
0
当前安装
1
版本数
在 OpenClaw 中安装
/install byted-byteplus-vod-video-enhancement
功能描述
Upload video/audio media to BytePlus VOD (Video on Demand) storage, returning the Vid and playback references; supports both local file upload (ApplyUploadIn...
使用说明 (SKILL.md)

VOD_video enhancement

Uploads video/audio to a BytePlus VOD space (from a local file or a public URL) and returns a vid://vxxxx reference. Additionally provides AI-based comprehensive quality restoration that removes compression artifacts, noise, and scratches from ingested videos, improving overall clarity and color rendition.


Prerequisites

  • Environment variables (required, can be configured via a .env file in the working directory — the scripts will load it automatically):
    • BYTEPLUS_ACCESSKEY — BytePlus Access Key
    • BYTEPLUS_SECRETKEY — BytePlus Secret Key
    • VOD_SPACE_NAME — VOD space name
  • Execution: examples use uv run python ... (if the host environment can run Python directly, python scripts/... also works).

Workflow Overview

Upload pipeline (local file):
  [S1_APPLY]  ApplyUploadInfo → returns TOS upload address + SessionKey
  [S2_TOS]    PUT file to TOS (direct or chunked)
  [S3_COMMIT] CommitUploadInfo → returns Vid
  Output: { Vid, Source, PlayURL, FileName, SpaceName, SourceUrl }

Upload pipeline (URL):
  [S1_UPLOAD] Submit URL upload job (UploadMediaByUrl) → returns JobId
  [S2_POLL]   Poll QueryUploadTaskInfo → returns Vid
  Output: { Vid, Source, PlayURL, FileName, SpaceName, SourceUrl, JobId }

Quality restoration pipeline:
  [S3_ENHANCE] Submit restoration job (StartExecution/enhanceVideo) → returns RunId
  [S4_POLL]    Poll GetExecution → returns the restored file
  Output: { Status, SpaceName, VideoUrls[{ FileId, DirectUrl, Source }] }

Quick Self-Check (recommended)

Before running any script, confirm the following (avoid unrelated Python/uv version checks):

  • .env or environment variables contain:
    • BYTEPLUS_ACCESSKEY + BYTEPLUS_SECRETKEY
    • VOD_SPACE_NAME

Once verified, pick the corresponding pipeline based on user intent:

User intent Pipeline Entry script
Upload video to VOD Upload pipeline scripts/upload.py
Quality restoration / denoise / remove compression artifacts Quality restoration pipeline scripts/quality_enhance.py

S1_UPLOAD & S2_POLL: Upload and Obtain Vid

Calling Convention

Run from the Skill root directory (byted-byteplus-vod-video-enhancement/):

# Local file upload (synchronous — returns Vid when complete)
uv run python scripts/upload.py "/path/to/video.mp4" [space_name]

# URL upload (automatically polls until a Vid is returned)
uv run python scripts/upload.py "\x3Chttps://example.com/video.mp4>" [space_name]

# Example: specifying the space
uv run python scripts/upload.py "https://example.com/sample.mp4" my_space
  • First argument: either a local file path or a public http:// / https:// link. The script auto-detects which mode to use.
  • Second argument (optional): the VOD space name; when omitted it is read from the environment variable VOD_SPACE_NAME.
  • The file / URL must carry a file extension (such as .mp4, .mov, .mp3), otherwise an error is raised.

Upload Flow

Local file upload (synchronous, three-step):

  1. Call ApplyUploadInfo (API Version: 2023-01-01) to obtain the TOS upload address, authentication token, and SessionKey.
  2. PUT the file to TOS (direct upload for files \x3C 20 MiB, chunked upload otherwise).
  3. Call CommitUploadInfo (API Version: 2023-01-01) with the SessionKey; returns the Vid.

URL upload (two-phase asynchronous):

  1. Call UploadMediaByUrl (API Version: 2023-01-01) to submit the pull job; returns a JobId.
  2. Poll QueryUploadTaskInfo until the job completes, with a maximum wait of 30 minutes (360 × 5s).
  3. Once the job is complete, return the Vid.

Output Format

On success, a JSON line is printed to stdout:

{
  "Vid": "v0d123abc",
  "Source": "vid://v0d123abc",
  "PlayURL": "https://example.cdn.com/xxx.m3u8",
  "PosterUri": "",
  "FileName": "uuid-filename.mp4",
  "SpaceName": "my_space",
  "SourceUrl": "https://example.com/video.mp4",
  "JobId": "job-xxx"
}
  • Source: a vid://-formatted reference that can be passed directly to follow-up skills such as byted-mediakit.
  • The host agent should save the Source field for use in subsequent processing steps.

Timeout Handling

If polling times out (30 minutes), the output is:

{
  "error": "Polling timed out (360 attempts × 5s); the URL pull upload is still processing",
  "resume_hint": {
    "description": "The URL upload has not finished yet; retry with the command below",
    "command": "uv run python scripts/upload.py \"\x3Coriginal URL>\" [space_name]"
  },
  "JobIds": "job-xxx",
  "State": "running"
}

S3_ENHANCE & S4_POLL: AI Comprehensive Quality Restoration

Calling Convention

Run from the Skill root directory (byted-byteplus-vod-video-enhancement/):

# Submit after the user has explicitly selected both config and repair_style
uv run python scripts/quality_enhance.py '{"type":"Vid","video":"v0310abc","config":"common","repair_style":1}'

# Example: a vid:// prefix is also accepted (the script strips it automatically)
uv run python scripts/quality_enhance.py '{"type":"Vid","video":"vid://v0d225gxxx","config":"common","repair_style":1}' production_space

# Pass parameters via @file.json (recommended — avoids shell escaping issues)
uv run python scripts/quality_enhance.py @params.json

# Resume polling after a timeout
uv run python scripts/poll_execution.py '\x3CRunId>' [space_name]

Parameter Reference

Parameter Type Required Description
type string Vid (video ID) or DirectUrl (VOD storage FileName)
video string The video Vid or FileName (a vid:// prefix is accepted and automatically stripped)
config string VolcMoeEnhanceParam Config; one of common, ugc, short_series, aigc, old_film. If the user explicitly asks for defaults, use common.
repair_style integer VolcMoeEnhanceParam VideoStrategy.RepairStyle; 1 = Standard, 2 = Pro. If the user explicitly asks for defaults, use 1.

Before quality restoration, you MUST ask the user to choose both required enhancement parameters if either config or repair_style is missing. Do not silently use defaults. Only use config=common and repair_style=1 when the user explicitly asks for default/recommended settings. When asking the user, use plain product language only; do not show internal parameter names or values such as config=..., repair_style=..., common, or short_series in the question text or option labels.

Suggested prompt:

Video enhancement may take some time. Choosing the right template usually gives better results.
What type of video is it?

  1. General video
  2. Short video / UGC
  3. Short drama / short series
  4. AI-generated content
  5. Old film / classic footage that needs restoration

Which video enhancement tier would you like to use?

  1. Standard: balanced visual improvement and processing speed
  2. Pro: cinematic-grade restoration with longer processing time; allowlist access may be required

If the user asks for a default recommendation, use config=common and repair_style=1. Otherwise, wait for the user's selections before running scripts/quality_enhance.py.

Internal mapping: General video -> config=common; Short video / UGC -> config=ugc; Short drama / short series -> config=short_series; AI-generated content -> config=aigc; Old film / classic footage -> config=old_film; Standard -> repair_style=1; Pro -> repair_style=2. Do not expose these parameter names or values in the question unless the user asks for implementation details.

Special handling for Pro: if the user chooses repair_style=2 and the StartExecution/GetExecution response returns HTTP status 403, or any error message contains Permission denied, explain that Pro is only available to users on the allowlist. Ask the user to submit a ticket to apply: https://console.byteplus.com/workorder/create

Output Format

On success, a JSON line is printed to stdout:

{
  "Status": "Success",
  "SpaceName": "my_space",
  "VideoUrls": [
    {
      "FileId": "xxx",
      "DirectUrl": "path/to/output.mp4",
      "Source": "directurl://path/to/output.mp4",
      "Url": "https://example.cdn.com/path/to/output.mp4?auth_key=..."
    }
  ],
  "AudioUrls": [],
  "Texts": []
}
  • VideoUrls[0].Url: a directly accessible/downloadable URL (the script signs it based on the space's domain/auth rules).
  • VideoUrls[0].Source (directurl://...) can be passed directly to downstream skills.

Timeout Handling

If polling times out (30 minutes), the output is:

{
  "error": "Polling timed out (360 attempts × 5s); the job is still processing",
  "resume_hint": {
    "description": "The job has not finished yet; resume polling with the command below",
    "command": "uv run python scripts/poll_execution.py '\x3CRunId>' [space_name]"
  }
}

Environment Variables

Name Description Required
BYTEPLUS_ACCESSKEY BytePlus Access Key Yes
BYTEPLUS_SECRETKEY BytePlus Secret Key Yes
VOD_SPACE_NAME VOD space name Yes (or via CLI argument)
VOD_POLL_INTERVAL Polling interval (seconds, default 5) No
VOD_POLL_MAX Maximum polling attempts (default 360) No
VOD_URL_EXPIRE_MINUTES Signed URL expiration (minutes, default 60) No
VOD_PLAY_DOMAIN Force the use of a specific play domain (optional, highest priority) No

Error Output Format

All errors share the same format:

{"error": "error description"}

References

  • BytePlus VOD Python SDK
  • Quality restoration parameter reference
  • API: ApplyUploadInfo (Version: 2023-01-01)
  • API: CommitUploadInfo (Version: 2023-01-01)
  • API: UploadMediaByUrl (Version: 2023-01-01)
  • API: QueryUploadTaskInfo (Version: 2023-01-01)
  • API: StartExecution (Version: 2025-07-01)
  • API: GetExecution (Version: 2025-07-01)
安全使用建议
Before installing, confirm you want an agent to upload selected media to BytePlus VOD and start restoration jobs using your account. Use least-privilege BytePlus credentials, keep .env files private, verify any file paths or URLs before running, and treat returned playback URLs or media references as sensitive.
功能分析
Type: OpenClaw Skill Name: byted-byteplus-vod-video-enhancement Version: 1.0.0 The skill bundle is a legitimate integration for BytePlus Video on Demand (VOD) services, providing functionality for media uploads and AI-based video enhancement. It includes robust security measures, such as a path validation function in `scripts/upload.py` that restricts local file uploads to specific safe directories (workspace, /tmp, etc.) to prevent unauthorized data exfiltration. The implementation uses standard HMAC-SHA256 signing for API requests in `scripts/vod_client.py` and follows official BytePlus SDK patterns for TOS (Top Object Storage) uploads in `scripts/tos_upload.py`.
能力评估
Purpose & Capability
The stated purpose matches the artifacts: upload local files or public URLs to BytePlus VOD and run BytePlus quality-restoration jobs. This is expected behavior, but it creates cloud media assets and may trigger account usage or costs.
Instruction Scope
Commands require a user-provided path, URL, Vid, or JSON parameters. Quality enhancement documentation says to ask the user to choose required options instead of silently defaulting. Upload and polling behavior is bounded and disclosed.
Install Mechanism
There is no install spec, but the scripts rely on Python dependencies declared in scripts/pyproject.toml. No remote installer or auto-executed setup script is shown.
Credentials
BytePlus access keys and a VOD space are proportionate for this integration. Local file upload is scoped in code to workspace/userdata/tmp or explicitly allowed directories, which reduces accidental broad file access.
Persistence & Privilege
No background agent, self-persistence, or autonomous worker is shown. The skill does ask the host agent to retain returned media references for downstream processing, so those references should be treated as sensitive workflow data.
如何使用
  1. 确保已安装 OpenClaw(本地或 Docker 部署)
  2. 在对话框中输入安装命令:/install byted-byteplus-vod-video-enhancement
  3. 安装完成后,直接呼叫该 Skill 的名称或使用 /byted-byteplus-vod-video-enhancement 触发
  4. 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
v1.0.0
byted-byteplus-vod-video-enhancement 1.0.0 - Initial release: Upload video/audio files to BytePlus VOD via local file or public URL, returning Vid and playback references. - Supports AI-based comprehensive quality restoration for uploaded videos (removes compression artifacts, noise, scratches, improves clarity). - Includes secure environment variable configuration for access and VOD space settings. - Provides distinct workflows for local and URL uploads, with clear JSON outputs and error handling. - Prompts for enhancement parameter selection before processing; supports default parameters only at explicit user request.
元数据
Slug byted-byteplus-vod-video-enhancement
版本 1.0.0
许可证 MIT-0
累计安装 0
当前安装数 0
历史版本数 1
常见问题

Byted Byteplus Vod Video Enhancement 是什么?

Upload video/audio media to BytePlus VOD (Video on Demand) storage, returning the Vid and playback references; supports both local file upload (ApplyUploadIn... 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 23 次。

如何安装 Byted Byteplus Vod Video Enhancement?

在 OpenClaw 或 Claude Code 对话框中运行命令「/install byted-byteplus-vod-video-enhancement」即可一键安装,无需额外配置。

Byted Byteplus Vod Video Enhancement 是免费的吗?

是的,Byted Byteplus Vod Video Enhancement 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。

Byted Byteplus Vod Video Enhancement 支持哪些平台?

Byted Byteplus Vod Video Enhancement 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。

谁开发了 Byted Byteplus Vod Video Enhancement?

由 volcengine-skills(@volcengine-skills)开发并维护,当前版本 v1.0.0。

💬 留言讨论