← Back to Skills Marketplace
volcengine-skills

Byted Byteplus Vod Precision Erasure

by volcengine-skills · GitHub ↗ · v1.0.0 · MIT-0
cross-platform ✓ Security Clean
29
Downloads
0
Stars
0
Active Installs
1
Versions
Install in OpenClaw
/install byted-byteplus-vod-precision-erasure
Description
Upload video/audio media to BytePlus VOD (Video on Demand) storage, returning the Vid and playback references; supports local file upload (ApplyUploadInfo +...
README (SKILL.md)

VOD precision erasure

Uploads video/audio to a BytePlus VOD space (from a local file or a public URL) and returns a vid://… reference. For media already in VOD, submits precision erasure tasks (StartExecutionOperation.Task.Type: Erase) using automatic OCR only. Do not tell end users they can change erasure mode between Manual and Auto — this skill always sends Auto. NewVid is always true (not surfaced as a user choice).


Product scope

Aspect Behaviour
Input Vid or DirectUrl (JSON field video)
Erasure coverage Default subtitle only (Auto.Type: Subtitle, SubtitleFilter: {}). User may opt into all detected on-screen text via text: true or all_text: trueAuto.Type: Text.
Timeline Default: whole video (no ClipFilter). Optional clip_filter with mode skip or selected — when either is used, clips is mandatory (non-empty).
Output asset NewVid is always true — not configurable and not prompted.
Erasure metadata Default with_erase_info: true (WithEraseInfo). If false, stdout EraseMeta is {}; VideoUrls are still populated when Erase.File is returned.

Not supported: Manual mode, custom ratio Locations, tuning SubtitleFilter beyond {}, VideoOption.EncodeMode, overriding NewVid.

Precision erasure allowlist: if you see HTTP 403 or “Permission denied”, explain allowlist / work order per BytePlus VOD.


Prerequisites

  • Environment variables (required; optionally place a .env in the working directory — scripts 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 … (python scripts/… works if deps are installed).

Workflow overview

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

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

Precision erasure pipeline:
  [S3_ERASE]  Submit Erase task (StartExecution / Task.Type Erase) → RunId
  [S4_POLL]   Poll GetExecution → output Erase.File (+ optional Erase.Info)
  Output: { Status, SpaceName, VideoUrls[{ FileId, Vid, DirectUrl, Source, Url }], EraseMeta? }

Quick Self-Check (recommended)

Before running any script:

  • .env or env vars contain BYTEPLUS_ACCESSKEY, BYTEPLUS_SECRETKEY, and VOD_SPACE_NAME.

Pick the pipeline from user intent:

User intent Pipeline Entry script
Upload video to VOD Upload scripts/upload.py
Subtitle / on-screen text erasure Precision erasure scripts/precise_erase.py

S1_UPLOAD & S2_POLL: Upload and Obtain Vid

Calling convention

Run from the Skill root directory (byted-byteplus-vod-precision-erasure/):

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

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

uv run python scripts/upload.py "https://example.com/sample.mp4" my_space
  • First argument: local file path or public http:// / https:// URL (auto-detected).
  • Second argument (optional): space name; if omitted, VOD_SPACE_NAME is used.
  • Paths and URLs must include a file extension (e.g. .mp4, .mov, .mp3).

Upload flow

Local file (synchronous, three-step):

  1. ApplyUploadInfo (API version 2023-01-01) → TOS address, SessionKey
  2. PUT to TOS (direct \x3C 20 MiB, else chunked)
  3. CommitUploadInfo (2023-01-01) → Vid

URL pull (async + poll):

  1. UploadMediaByUrl (2023-01-01) → JobId
  2. Poll QueryUploadTaskInfo until done (same limits as sibling skill: typically 360 × 5 s)
  3. Return Vid

Output format

On success, one JSON object on stdout, e.g.:

{
  "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"
}
  • Preserve Source (vid://…) for downstream skills.

Timeout handling (URL upload)

If URL polling exhausts retries, stderr / JSON includes something like:

{
  "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_ERASE & S4_POLL: precision erasure

Calling convention

Run from the Skill root directory (byted-byteplus-vod-precision-erasure/):

# Default: subtitle-only, whole video, WithEraseInfo on
uv run python scripts/precise_erase.py '{"type":"Vid","video":"v0310abc"}'

uv run python scripts/precise_erase.py '{"type":"Vid","video":"vid://v0d225gxxx"}' production_space

# Broader OCR (subtitle + other on-screen text)
uv run python scripts/precise_erase.py '{"type":"Vid","video":"v0310abc","text":true}'

uv run python scripts/precise_erase.py @params.json

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

Parameter reference

Parameter Type Required Description
type string Vid or DirectUrl
video string Vid or VOD FileName; vid:// / directurl:// stripped automatically
text boolean no If true: Auto.Type: Text (more aggressive). Default false → subtitle-only.
all_text boolean no Synonym for text (if both are set, text is applied first).
clip_filter object no Omit = whole video. If set: mode skip or selected, and clips (non-empty list of { "start", "end" } seconds; Start/End accepted).
with_erase_info boolean no Default true (WithEraseInfo). If false, detailed erase geometry is not requested; stdout EraseMeta is {}.

Do not prompt users for Manual mode or NewVid.

Agent prompting (plain language)

Clarify: subtitle-only vs all on-screen text; whole video vs segments (skip / selected + clips); whether they need region-level erase telemetry (with_erase_info). Use conversational labels — avoid exposing raw JSON field names unless the user asks for implementation details.

Output format

On success, one JSON object on stdout, roughly:

{
  "Status": "Success",
  "SpaceName": "my_space",
  "VideoUrls": [
    {
      "FileId": "…",
      "Vid": "v0…",
      "DirectUrl": "path/to/output.mp4",
      "Source": "vid://v0…",
      "Url": "https://example.cdn.com/…"
    }
  ],
  "AudioUrls": [],
  "Texts": [],
  "EraseMeta": {
    "Duration": 57.099,
    "Info": {}
  }
}

When with_erase_info was false, EraseMeta is {}.

  • VideoUrls[0].Url: playable / downloadable when signing succeeds for the space.
  • Source: prefer vid://… when the API returns a new Vid; else directurl://….

Timeout handling (GetExecution polling)

Same pattern as the enhancement skill:

{
  "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 expiry (minutes, default 60) No
VOD_PLAY_DOMAIN Force a specific playback domain (optional, highest priority) No
VOD_HOST Override VOD OpenAPI hostname (optional) No

Error Output Format

All failures use:

{"error": "error description"}

References

Usage Guidance
Before installing, make sure you are comfortable giving the skill a scoped BytePlus VOD key. Only provide media files, URLs, and Vids you intend to upload or process, and treat returned playback URLs as shareable access links.
Capability Analysis
Type: OpenClaw Skill Name: byted-byteplus-vod-precision-erasure Version: 1.0.0 The skill bundle provides legitimate functionality for uploading media and performing OCR-based text erasure on the BytePlus VOD platform. It includes a security-conscious path validation mechanism in `upload.py` that restricts file uploads to specific allowed directories (e.g., workspace, /tmp), effectively mitigating arbitrary file exfiltration risks. The implementation uses standard HMAC-SHA256 signing for API requests in `vod_client.py` and follows official BytePlus VOD integration patterns without any evidence of malicious intent, obfuscation, or unauthorized data access.
Capability Assessment
Purpose & Capability
The stated purpose matches the artifacts: upload local files or public URLs to BytePlus VOD, then optionally submit precision erasure jobs. These are cloud-mutating actions, but they are disclosed and central to the skill.
Instruction Scope
The instructions define supported inputs, erasure modes, clip filtering, and outputs. The local upload code includes path restrictions, and no hidden prompt override or unrelated behavior is evident in the supplied artifacts.
Install Mechanism
There is no install spec, but the included pyproject lists runtime Python dependencies with lower-bound rather than pinned versions. This is a reproducibility/supply-chain note, not evidence of malicious behavior.
Credentials
The required BytePlus access key, secret key, and VOD space are proportionate to the integration, but users should treat them as privileged credentials because the scripts can upload media and start VOD processing jobs.
Persistence & Privilege
No background persistence or self-starting behavior is shown. The skill loads environment variables or a .env file and may poll jobs for up to the configured retry limit; created VOD assets/jobs persist in the user's BytePlus account.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install byted-byteplus-vod-precision-erasure
  3. After installation, invoke the skill by name or use /byted-byteplus-vod-precision-erasure
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.0.0
byted-byteplus-vod-precision-erasure 1.0.0 - Initial release with support for uploading local video/audio files or public URLs to BytePlus VOD, returning Vid and playback references. - Adds precision erasure jobs on ingested media using automatic OCR (subtitle-only by default; optional full on-screen text erasure). - Supports optional erasure segment selection with ClipFilter (skip/selected modes). - Always creates a new output asset (NewVid=true) and, by default, returns erasure metadata (WithEraseInfo). - Provides robust command-line tools for upload and precision erasure pipelines, including polling, error, and timeout handling.
Metadata
Slug byted-byteplus-vod-precision-erasure
Version 1.0.0
License MIT-0
All-time Installs 0
Active Installs 0
Total Versions 1
Frequently Asked Questions

What is Byted Byteplus Vod Precision Erasure?

Upload video/audio media to BytePlus VOD (Video on Demand) storage, returning the Vid and playback references; supports local file upload (ApplyUploadInfo +... It is an AI Agent Skill for Claude Code / OpenClaw, with 29 downloads so far.

How do I install Byted Byteplus Vod Precision Erasure?

Run "/install byted-byteplus-vod-precision-erasure" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is Byted Byteplus Vod Precision Erasure free?

Yes, Byted Byteplus Vod Precision Erasure is completely free, licensed under MIT-0. You can download, install and use it at no cost.

Which platforms does Byted Byteplus Vod Precision Erasure support?

Byted Byteplus Vod Precision Erasure is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created Byted Byteplus Vod Precision Erasure?

It is built and maintained by volcengine-skills (@volcengine-skills); the current version is v1.0.0.

💬 Comments