🎁 Get the FREE AI Skills Starter Guide β€” Subscribe β†’
BytesAgainBytesAgain
πŸ¦€ ClawHub

Bilibili Audio Transcribe

by @yizh4ng

Download audio from Bilibili or b23.tv links and transcribe it into txt, srt, and segment JSON with yt-dlp, ffmpeg, and faster-whisper. Use when a user asks...

Versionv0.1.0
Downloads412
Stars⭐ 2
TERMINAL
clawhub install bilibili-audio-transcribe

πŸ“– About This Skill


name: bilibili-audio-transcribe description: Download audio from Bilibili or b23.tv links and transcribe it into txt, srt, and segment JSON with yt-dlp, ffmpeg, and faster-whisper. Use when a user asks to turn a Bilibili link into text, subtitles, a transcript, or speech-to-text output, especially for Chinese-language videos.

Bilibili Audio Transcribe

Convert a Bilibili link into local transcript files. Prefer this skill for Bilibili and b23.tv URLs only; do not use it for YouTube or generic web pages.

Quick start

1. Ensure ffmpeg and ffprobe are on PATH. 2. If Python dependencies are missing, run scripts/bootstrap_env.sh or install yt-dlp and faster-whisper manually. 3. Run scripts/transcribe_bilibili.py with the target URL. 4. Return the generated transcript artifacts or summarize them if the user asked for analysis rather than raw text.

Example:

python scripts/transcribe_bilibili.py "https://b23.tv/SSx810h" \
  --out-dir ./downloads/bilibili-audio \
  --model-size base \
  --beam-size 3

Workflow

1. Validate the request

Accept only bilibili.com or b23.tv URLs. If the URL points elsewhere, stop and say this skill is the wrong tool.

2. Prefer the bundled script

Use scripts/transcribe_bilibili.py instead of rewriting yt-dlp / whisper glue code in the session. The script:

  • downloads the best available audio
  • probes audio duration with ffprobe
  • transcribes with faster-whisper
  • writes .txt, .srt, and .segments.json
  • prints coarse ETA / progress during ASR
  • 3. Use sensible defaults

    Default to:

  • --model-size base
  • --beam-size 3
  • --language zh
  • VAD enabled
  • These defaults are optimized for Chinese Bilibili speech. If the video is clearly non-Chinese or mixed-language, rerun with --language auto or a specific language code.

    4. Keep outputs predictable

    By default the script writes into downloads/bilibili-audio/ relative to the current working directory. Keep all three artifacts unless the user explicitly asks for fewer outputs:

  • transcript text: .txt
  • subtitles: .srt
  • segment metadata: .segments.json
  • 5. Handle failures directly

    If a run fails:

  • missing ffmpeg / ffprobe β†’ install system dependency first
  • missing Python packages β†’ run scripts/bootstrap_env.sh
  • extractor or redirect issues β†’ retry with the resolved canonical Bilibili URL
  • poor transcript quality β†’ rerun with --language auto, a larger model, or --no-vad when speech is clipped
  • Read references/troubleshooting.md when dependency setup or extraction fails.

    Resources

    scripts/

  • transcribe_bilibili.py β€” main downloader + ASR pipeline
  • bootstrap_env.sh β€” create a virtualenv and install Python dependencies
  • requirements.txt β€” Python package list for the bootstrap script
  • references/

  • troubleshooting.md β€” dependency and extraction failure playbook
  • πŸ’‘ Examples

    1. Ensure ffmpeg and ffprobe are on PATH. 2. If Python dependencies are missing, run scripts/bootstrap_env.sh or install yt-dlp and faster-whisper manually. 3. Run scripts/transcribe_bilibili.py with the target URL. 4. Return the generated transcript artifacts or summarize them if the user asked for analysis rather than raw text.

    Example:

    python scripts/transcribe_bilibili.py "https://b23.tv/SSx810h" \
      --out-dir ./downloads/bilibili-audio \
      --model-size base \
      --beam-size 3