Uses Bilibili's public Bcut ASR API (no login required):
- yt-dlp extracts audio from video URL
- ffmpeg converts to 16kHz mono WAV
- Bcut API: upload → create task → poll → get word-level timestamps
- SegmentBuilder aggregates chars into sentence-level segments
Output
{
"ok": true,
"text": "完整转录文本",
"segments": [{"start": 0.0, "end": 2.5, "text": "第一句话。"}],
"duration_seconds": 120.5,
"source": "https://..."
}
Quality Bar
- Returns segments with
start/endin seconds - Handles Bcut polling timeout gracefully (returns partial text)
- Falls back gracefully if Bcut fails