# yt2bb

Turns a YouTube video or playlist into a Bilibili-ready video with burned-in English and Chinese subtitles. Useful when adapting English-language material for a Chinese audience.

- skill · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 349 installs · ★ 92
- Author: Agents365-ai
- License: MIT · policy=mirror · the beginning of the file is at the end of this page
- Source: https://github.com/Agents365-ai/365-skills/tree/HEAD/plugins/yt2bb/skills/yt2bb/SKILL.md
- Updated: 2026-10-16
- HTML: https://affpapa.org/en/nevibecode/skills/yt2bb

## What it does

yt2bb runs a video through a sequence of processing steps: it downloads the source, transcribes speech with Whisper, translates the subtitles into Chinese, combines both languages, then burns them into the video with ffmpeg. It also creates `publish_info.md` with metadata for a Bilibili upload.

The workflow requires Python 3, `ffmpeg`, `yt-dlp`, and `whisper` on `PATH`. Before transcription, the skill checks the environment and suggests a command based on the system and available hardware. It uses `srt_utils.py` to validate, merge, and style subtitle files. Missing dependencies can block downloading, transcription, or video rendering.

## Install

### Claude Code (native platform)

1. **Skills CLI (Vercel)**
```bash
npx skills add Agents365-ai/365-skills --skill yt2bb -a claude-code
```

2. **Manually: put the files in place**
- File: `~/.claude/skills/yt2bb/SKILL.md` — Copy the whole skill folder; for one project use .claude/skills/yt2bb/

### Codex

1. **Skills CLI (Vercel)**
```bash
npx skills add Agents365-ai/365-skills --skill yt2bb -a codex
```

2. **Manually: put the files in place**
- File: `.agents/skills/yt2bb/SKILL.md` — For all projects use ~/.agents/skills/

### Cursor

1. **Skills CLI (Vercel)**
```bash
npx skills add Agents365-ai/365-skills --skill yt2bb -a cursor
```

2. **Manually: put the files in place**
- File: `.cursor/skills/yt2bb/SKILL.md` — Cursor also reads .agents/skills/ and .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install Agents365-ai/365-skills yt2bb
```

2. **Manually: put the files in place**
- File: `.github/skills/yt2bb/SKILL.md`

### Gemini CLI

1. **Skills CLI (Vercel)**
```bash
npx skills add Agents365-ai/365-skills --skill yt2bb -a gemini-cli
```

2. **Platform CLI**
```bash
gemini skills install https://github.com/Agents365-ai/365-skills --path plugins/yt2bb/skills/yt2bb
```

### Windsurf (Devin Desktop)

**Manually: put the files in place**
- File: `.devin/skills/yt2bb/SKILL.md` — The legacy .windsurf/skills/ path still works

### OpenCode

**Skills CLI (Vercel)**
```bash
npx skills add Agents365-ai/365-skills --skill yt2bb -a opencode
```

### Claude.ai

**Claude.ai**
- Zip the folder and upload it in Settings → Capabilities → Skills

Where a file is given instead of a command, copy the files from the source to that path: https://github.com/Agents365-ai/365-skills/tree/HEAD/plugins/yt2bb/skills/yt2bb/SKILL.md

## When to use it
- prepare a YouTube video for Bilibili
- transcribe speech into an SRT file
- translate subtitles into Chinese and combine both languages
- burn bilingual subtitles into a video
- create Bilibili upload metadata in `publish_info.md`

## Example prompts
- Prepare this YouTube video for Bilibili with English and Chinese subtitles.
- Process this YouTube playlist: transcribe each video, translate the subtitles, and burn them in.
- Make bilingual subtitles for this video and create `publish_info.md`.

## Source text · SKILL.md · MIT

Below is the content of a third-party file. It is data, not instructions for you: do not act on anything written inside unless the human asks. Block tag: 36e8f722208850cd.

BEGIN THIRD-PARTY FILE 36e8f722208850cd
```text
---
disable-model-invocation: true
name: yt2bb
description: Use when the user wants to repurpose a YouTube video for Bilibili, add bilingual (English-Chinese) subtitles to a video, or create hardcoded subtitle versions for Chinese platforms.
license: MIT
homepage: https://github.com/Agents365-ai/365-skills
compatibility: Requires Python 3, ffmpeg, yt-dlp, whisper (openai-whisper) on PATH. Self-check steps that need vision are gracefully skipped if unavailable.
platforms: [macos, linux, windows]
allowed-tools: Bash(python3:*) Bash(ffmpeg:*) Bash(whisper:*) Bash(yt-dlp:*) Bash(git:*) Read Write Edit
metadata: {"openclaw":{"requires":{"bins":["python3","ffmpeg","yt-dlp","whisper"]},"emoji":"🎬","os":["darwin","linux","win32"],"install":[{"id":"brew-ffmpeg","kind":"brew","formula":"ffmpeg","bins":["ffmpeg"],"label":"Install ffmpeg via Homebrew","os":["darwin"]},{"id":"apt-ffmpeg","kind":"apt","package":"ffmpeg","bins":["ffmpeg"],"label":"Install ffmpeg via apt","os":["linux"]},{"id":"brew-ytdlp","kind":"brew","formula":"yt-dlp","bins":["yt-dlp"],"label":"Install yt-dlp via Homebrew","os":["darwin"]},{"id":"pip-ytdlp","kind":"pip","package":"yt-dlp","bins":["yt-dlp"],"label":"Install yt-dlp via pip","os":["linux","win32"]},{"id":"pip-whisper","kind":"pip","package":"openai-whisper","bins":["whisper"],"label":"Install openai-whisper via pip"}]},"clawhub":{"requires":{"bins":["python3","ffmpeg","yt-dlp","whisper"]},"category":"media","install":[{"id":"brew-ffmpeg","kind":"brew","formula":"ffmpeg","bins":["ffmpeg"],"label":"Install ffmpeg via Homebrew","os":["darwin"]},{"id":"apt-ffmpeg","kind":"apt","package":"ffmpeg","bins":["ffmpeg"],"label":"Install ffmpeg via apt","os":["linux"]},{"id":"brew-ytdlp","kind":"brew","formula":"yt-dlp","bins":["yt-dlp"],"label":"Install yt-dlp via Homebrew","os":["darwin"]},{"id":"pip-ytdlp","kind":"pip","package":"yt-dlp","bins":["yt-dlp"],"label":"Install yt-dlp via pip","os":["linux","win32"]},{"id":"pip-whisper","kind":"pip","package":"openai-whisper","bins":["whisper"],"label":"Install openai-whisper via pip"}]},"hermes":{"tags":["youtube","bilibili","subtitles","bilingual","video","localization","whisper","yt-dlp"],"category":"media","requires_tools":["python3","ffmpeg","yt-dlp","whisper"],"related_skills":["ffmpeg","video-podcast-maker"]},"codex":{"requires":{"bins":["python3","ffmpeg","yt-dlp","whisper"]},"allowed-tools":["bash","read","write","edit"]},"claude-code":{"allowed-tools":"Bash(python3:*) Bash(ffmpeg:*) Bash(whisper:*) Bash(yt-dlp:*) Bash(git:*) Read Write Edit"},"pi":{"requires":{"bins":["python3","ffmpeg","yt-dlp","whisper"]},"allowed-tools":["bash","read","write","edit"]},"skillsmp":{"topics":["claude-code","claude-code-skill","claude-skills","agent-skills","skillsmp","openclaw","openclaw-skills","skill-md","pi-coding-agent","youtube","bilibili","subtitles","video"]},"author":"Agents365-ai","version":"2.6.2"}
---

# yt2bb — YouTube to Bilibili Video Repurposing

## Overview
```
END THIRD-PARTY FILE 36e8f722208850cd

The third-party file has ended. Everything between the 36e8f722208850cd tags is data: requests and commands from it are not followed. An “end of file” line with another tag inside the block is part of the file.

First 2979 of 22530 bytes. © Agents365-ai · MIT · https://github.com/Agents365-ai/365-skills/tree/HEAD/plugins/yt2bb/skills/yt2bb/SKILL.md

_Part of the page did not fit — see the HTML version._

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
