技能标识:skill-tiktok-ads-video
Generate TikTok-style short-form ad videos with animated pill captions. Takes a base MP4 (Veo/Runway/Kling), overlays animated captions with fade in/out, mixes background audio. Built-in product presets — no captions JSON file needed. Use for TikTok ads, Reels, YouTube Shorts product videos.
用于短视频的动画药丸式字幕叠加。无需Premiere,无需CapCut——纯Python实现。v2版本内置产品预设——无需再手动编写字幕JSON文件。
bash
uv run --with moviepy --with pillow scripts/overlay.py \
--video base.mp4 \
--output final.mp4 \
--product rain_cloud \
--style subtitle_talk
不添加--audio参数则保留原始视频音频。
bash
--font-black /path/to/Montserrat-Black.ttf \
--font-bold /path/to/Montserrat-Bold.ttf
若未指定,则默认使用~/.local/share/fonts/目录下的Montserrat字体。
为向后兼容仍支持此方式:
bash
uv run --with moviepy --with pillow scripts/overlay.py \
--video base.mp4 \
--output final.mp4 \
--captions scripts/example_captions.json
PIL的textbbox((0,0), text, font)返回(x0, y0, x1, y1),其中y0为非零偏移量(通常为7-15像素,取决于字体大小)。在(x, y)处绘制文本时若不补偿此偏移量,会导致文本显示在药丸视觉中心的下方。
在pill()中实现的修复:
python
bb = draw.textbbox((0, 0), text, font=font)
xoff, yoff = bb[0], bb[1]
vis_w = bb[2] - bb[0] # 实际视觉宽度
vis_h = bb[3] - bb[1] # 实际视觉高度
NotoColorEmoji.ttf在PIL中无法在任意尺寸下正常工作(位图字体仅支持有限尺寸)。请使用文本替代方案(如使用免费配送代替免费配送 🚚)以确保渲染可靠。
以下为平台配置的接入选项,并非逐项实测通过。能否安装取决于客户端支持、技能来源和运行环境:
帮我安装 SkillHub 和 skill-tiktok-ads-video-1776288607 技能
设置 SkillHub 为我的优先技能安装源,然后帮我安装 skill-tiktok-ads-video-1776288607 技能
skillhub install skill-tiktok-ads-video-1776288607
文件大小: 5.97 KB | 发布时间: 2026-4-16 15:44