byted-kickart-video-subtitler

byted-kickart-video-subtitler is a skill for Claude Code, Codex from bytedance/agentkit-samples. It costs 126 tokens per session (5,207 once invoked), scanned A, original, Apache-2.0.

A workflow for adding embedded subtitles to local video files. Subtitle entries contain text and the times when each entry should appear and disappear, with optional timing for individual words.

In plain words
What is it for?
Uploading a local video, preparing timed subtitle data, and producing a version of the video with the subtitles embedded.
Why use it?
It removes the need to place subtitle text and timings into a video manually. It also creates timing that accounts for punctuation, pauses, word spacing, and readability.

Skill for Claude CodeCodex ✓ vendor

Which agent this was written for is unclear — built for openclaw. Also seen: built for openclaw.

Not installable: its command points at a path on the author’s own machine, so it runs nowhere else. The line is /Users/user/video.mp4.

Good fit Uploading a local video, preparing timed subtitle data, and producing a version of the video with the subtitles embedded.

Compare 6 skills from other repositories ↓
About the project

bytedance/agentkit-samples is a collection of examples and tutorials for Volcengine AgentKit, an AI-agent development platform for building, deploying, and operating agent applications. Developers use the samples to learn agent creation, multi-agent collaboration, memory, retrieval, MCP integrations, media generation, customer service, and other workflows. The catalogue skills provide agent workflows based on these examples.

bytedance/agentkit-samples · 450 stars · on GitHub

Install

Getting it into your agent

There is no command for this one: it runs only inside a plugin, and the catalogue could not identify which plugin ships it. The source is linked below.

Made for: Claude Code, Codex.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for byted-kickart-video-subtitler

README.md
[![agentmods](https://agentmods.dev/badge/skills/bytedance/agentkit-samples/byted-kickart-video-subtitler/github.svg)](https://agentmods.dev/skills/bytedance/agentkit-samples/byted-kickart-video-subtitler)
Your own site
<a href="https://agentmods.dev/skills/bytedance/agentkit-samples/byted-kickart-video-subtitler"><img src="https://agentmods.dev/badge/skills/bytedance/agentkit-samples/byted-kickart-video-subtitler/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for byted-kickart-video-subtitler

Your own site · 80×15
<a href="https://agentmods.dev/skills/bytedance/agentkit-samples/byted-kickart-video-subtitler"><img src="https://agentmods.dev/badge/skills/bytedance/agentkit-samples/byted-kickart-video-subtitler.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 126 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 5,207 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 1 finding. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00126 $0.05207
Opus 5 $0.00063 $0.02603
Sonnet 5 $0.00025 $0.01041
Haiku 4.5 $0.00013 $0.00521

Measured 11d ago against content hash 80c4d53d18ed, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-11, from the pricing page.

Security

Grade A, and why

byted-kickart-video-subtitler scanned grade A with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 11d ago.

The scan reads SKILL.md. This mod also ships 16 executable files (scripts/core/__init__.py, scripts/core/api/iccp/client.py, scripts/core/api/iccp/service.py, …), listed below but not scanned — reading those needs a real analyzer, not pattern matching.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Makes network callslowCapability

Not a fault in itself. Listed so you know the mod talks to something, and to what.

curl -L -o /tmp/openclaw/byted-kickart-video-subtitler/input/downloaded_video.mp4 "<视频URL>"
skills/byted-kickart-video-subtitler/SKILL.md · 321 lines

How it starts

The opening of the file, as written. The whole thing — 321 lines — stays where its author put it; the contents beside it link to each section on GitHub.

视频字幕添加SKILL

📋 工具说明

核心功能

为本地视频文件添加字幕。

使用限制

限制项 限制值 说明
字幕总字数 ≤3000字 字幕文本内容(不含标点符号)不得超过3000字

可用命令

命令 功能 说明
python3.12 scripts/plan.py 套餐查询 查询用户当前的 Ark Claw 套餐
python3.12 scripts/upload.py --file <视频路径> 视频上传 上传本地视频文件获取媒资ID
python3.12 scripts/subtitler.py --media-id <媒资ID> --captions <字幕配置文件> --output <输出文件> 视频字幕添加 为视频添加字幕

📝 字幕配置文件生成规则

配置文件格式

字幕配置文件为JSON格式,包含一个字幕对象数组。单个字幕对象结构如下:

字段 类型 说明
text string 完整的字幕文本内容
start_time number 字幕开始显示时间(毫秒)
end_time number 字幕结束显示时间(毫秒)
words array 字级时间戳数组,包含每个字的详细时间信息
attribute object 字幕属性(预留字段,默认为空对象)
时间分配规则(符合人类朗读习惯)

基础规则:

  • 单字时长:中文正常语速约为每秒4-5字,即每个汉字约200-250毫秒
  • 标点处理:标点符号持续时间为0毫秒,立即显示后进入停顿
  • 意群停顿:逗号、句号等标点后设置300毫秒停顿,符合人类朗读习惯
  • 词间间隔:词语之间设置20毫秒微小间隔,提升可读性
  • 结尾延长:最后一个字适当延长显示时间,确保完整阅读

生成步骤:

  1. 确定字幕总数:根据视频时长和内容复杂度,合理划分字幕段落
  2. 分配时间范围:确保各字幕之间不重叠,段落间至少保留300毫秒间隔
  3. 计算单字时长(end_time - start_time - 标点停顿时间) / 汉字数量
  4. 生成字级时间戳:按顺序为每个字分配时间,标点使用0毫秒时长
  5. 添加意群停顿:在标点后插入适当停顿时间

示例计算:

对于字幕"足力健老人鞋,专为爸妈设计"(13个字符,含1个标点):

  • 总时长:3190毫秒(5000-1810)
  • 汉字数:12个
  • 单字平均时长:约220毫秒
  • 标点停顿:300毫秒
{
  "text": "足力健老人鞋,专为爸妈设计",
  "start_time": 1810,
  "end_time": 5000,
  "words": [
    {"text": "足", "start_time": 1810, "end_time": 2000, "attribute": {}},
    {"text": "力", "start_time": 2000, "end_time": 2180, "attribute": {}},
    {"text": "健", "start_time": 2180, "end_time": 2380, "attribute": {}},
    {"text": "老", "start_time": 2380, "end_time": 2580, "attribute": {}},
    {"text": "人", "start_time": 2580, "end_time": 2790, "attribute": {}},
    {"text": "鞋", "start_time": 2810, "end_time": 3030, "attribute": {}},
    {"text": ",", "start_time": 3030, "end_time": 3030, "attribute": {}},
    {"text": "专", "start_time": 3330, "end_time": 3550, "attribute": {}},
    {"text": "为", "start_time": 3570, "end_time": 3790, "attribute": {}},
    {"text": "爸", "start_time": 3810, "end_time": 4030, "attribute": {}},
    {"text": "妈", "start_time": 4050, "end_time": 4270, "attribute": {}},
    {"text": "设", "start_time": 4290, "end_time": 4510, "attribute": {}},
    {"text": "计", "start_time": 4530, "end_time": 5000, "attribute": {}}
  ],
  "attribute": {}
}

Read the full file on GitHub · 321 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 11d ago First seen · 321 lines · 126 tokens per session scan A 80c4d53d18ed

Subscribe to this mod's changes

byted-kickart-video-subtitler is a skill published in the GitHub repository bytedance/agentkit-samples (450 stars, last pushed yesterday), licensed Apache-2.0. It adds 126 tokens to every session and 5,207 once invoked, about $0.0006 per session on Opus 5. A static security scan graded it A with 1 finding (makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.

Related

Other skills, from other repositories

image-generation

Use this skill when the user requests to generate, create, imagine, or visualize images including characters, scenes, products, or any visual content. Supports structured prompts and reference images for guided generation.

bytedance/deer-flow · 42 tokens

podcast-generation

Use this skill when the user requests to generate, create, or produce podcasts from text content. Converts written content into a two-host conversational podcast audio format with natural dialogue.

bytedance/deer-flow · 38 tokens

brandkit

Premium brand-kit image generation skill for creating high-end brand-guidelines boards, logo systems, identity decks, and visual-world presentations. Trained for minimalist, cinematic, editorial, dark-tech, luxury, cultural, security, gaming, developer-tool, and consumer-app brand systems. Optimized for intentional…

Leonxlnx/taste-skill · 89 tokens

sn-image-base

Base-layer skill for the SenseNova-Skills project, providing low-level APIs for image generation, recognition (VLM), and text optimization (LLM). This skill does not preprocess inputs; it only calls backend services and returns results. This skill is not user-facing and is intended for upper-layer skills only.

OpenSenseNova/SenseNova-Skills · 66 tokens

spotify-player

Terminal Spotify playback/search via spogo (preferred) or spotifyplayer. Use when the user asks to play music, search for a song, skip a track, pause playback, check what is currently playing, control Spotify, list audio devices, or manage a Spotify queue from the terminal.

elizaOS/eliza · 60 tokens

video-still-animator

Turn a single still image (PNG/JPG) into a short MP4 with a slow Ken-Burns zoom and a silent audio track. Pure ffmpeg wrapper. Designed as the onfailure substitute for AI video-gen steps that get blocked by content moderation: when seedance refuses, this skill emits a valid replacement clip from the already-generated…

opensquilla/opensquilla · 88 tokens