用途:把哔哩哔哩视频转成 Markdown 文本。字幕优先,先尝试抓取官方/自动字幕(秒级、免 GPU);抓不到再下载音频用 SenseVoice-Small 转录。加 --no-subtitle 可强制走音频转录。
环境:Python 3.9+;创建虚拟环境并安装 funasr、modelscope、torch、torchaudio;系统依赖 ffmpeg 与 yt-dlp(如 macOS 用 brew install ffmpeg yt-dlp)。
用法: python scripts/transcribe.py "https://www.bilibili.com/video/BV1rrQGBeEen/" python scripts/transcribe.py "BV1rrQGBeEen" python scripts/transcribe.py "BV1rrQGBeEen" --no-subtitle python scripts/batch_transcribe.py urls.txt -o ./output 批量脚本逐条调用单篇脚本,默认单条失败后继续,需要严格模式加 --stop-on-error。输出自动创建带 frontmatter 的 Markdown 文件。
流程:用 yt-dlp 下载音频,需加 User-Agent 和 Referer 以应对 B 站反爬;再用 SenseVoice-Small(vad_model 为 fsmn-vad、device 为 cpu)转录;最后生成 Markdown。性能参考:5 分钟约 10 秒、10 分钟约 20 秒、30 分钟约 60 秒。
限制:B 站 4K/1080P60 需大会员,普通用户可下载 720P 以下;模型首次下载约 893MB;不支持说话人分离;合集视频只下载第一个分 P。仅供个人学习与研究使用,需遵守目标平台服务条款与 robots 规则,控制请求频率,不要用于批量抓取、商用爬取或侵权场景,下载内容版权归原作者所有。