免費批量提取視頻文字?這兩個神仙工具你一定要知道(含安裝使用教程)

作者:whatnow
日期:2026年4月24日 上午6:40
來源:WeChat 原文

整理版優先睇

速讀 5 個重點 高亮

免費開源組合 yt-dlp + Whisper,B站視頻轉文字完整教學

整理版摘要

作者喺B站刷到翁愷老師嘅C語言教學影片,想將啲文字抽出來當筆記,但試咗好多線上工具,唔係要收費就係有限制,準確度又麻麻。佢最後揾到兩個神器——yt-dlp 同 Whisper,組成一個完全免費、離線、安全嘅影片轉文字方案。

yt-dlp 係一個開源命令行工具,支援超過1800個網站,可以下載影片或淨係抽音頻;WhisperOpenAI 推出嘅語音識別模型,支援99種語言,離線運行,準確度接近人類水平。兩個工具都係免費開源,組合埋一齊就係一條完整嘅「影片→文字」流水線。

作者分享咗詳細嘅安裝步驟同實戰操作,包括單個影片、指定集數、批量處理三個場景,仲有解決B站反爬蟲嘅踩坑記錄。跟住做,10分鐘就搞得掂,以後任何平台嘅影片文字都可以輕鬆提取,唔使再依賴第三方服務。

  • yt-dlp + Whisper 係免費開源組合,可以將任何平台嘅影片轉成文字,完全離線,保障私隱。
  • 工作流程好簡單:yt-dlp 抽音頻,Whisper 做語音識別,一條命令搞掂。
  • 相比線上工具,呢個組合完全免費、唔使上傳檔案、支援批量處理,準確度仲好高。
  • B站有反爬蟲機制,要加 `--cookies-from-browser chrome` 參數先可以正常下載。
  • 記低命令速查卡,安裝一次之後,以後批量處理幾十條影片都係一條命令嘅事。
值得記低
流程

完整命令速查卡

安裝、單個影片、指定集數、批量處理、清理音頻嘅命令集合。直接複製貼上就可以用。

整理重點

點解會有呢篇教學?

作者喺B站見到翁愷老師嘅《C語言程序設計》教學,有成幾十集,佢好想將啲影片內容變成文字,方便做筆記。佢試過好多小程序同線上工具,唔係要俾錢就係有限制,再唔係就準確率低到嚇人。

最後佢揾到兩個神器——yt-dlp 同 Whisper,組合埋一齊就搞掂曬。

呢篇文就係佢由「踩坑→摸索→成功」嘅完整路線,跟住做,10分鐘就搞掂。

整理重點

兩位主角:yt-dlp 同 Whisper

簡單講,yt-dlp 負責下載音頻,Whisper 負責將音頻變成文字。兩個都免費,組合起嚟就係一條完整嘅影片→文字流水線。

整理重點

安裝步驟:三步搞掂

  1. 1 安裝 yt-dlp:打開終端,執行 `brew install yt-dlp`,然後用 `yt-dlp --version` 驗證。
  2. 2 安裝 ffmpeg(Whisper 嘅依賴):執行 `brew install ffmpeg`。
  3. 3 安裝 Whisper:執行 `pip3 install --break-system-packages openai-whisper`,等一陣就會裝好。用 `whisper --help` 驗證。

裝好曬之後,就可以開始實戰啦。

整理重點

實戰:提取B站影片文字

場景一:單個影片

假設要提取翁愷C語言教學第一集,連結係 https://b23.tv/cPvryeZ。先建立工作目錄,然後下載音頻。

程式內容 bash
mkdir -p ~/Desktop/bilibili-text && cd ~/Desktop/bilibili-text

yt-dlp --cookies-from-browser chrome -x --audio-format wav --audio-quality 0 -o "%(title)s-P%(playlist_index)s.%(ext)s" --playlist-items 1 "https://b23.tv/cPvryeZ"

跟住用 Whisper 做語音識別

程式內容 bash
whisper *.wav --language zh --model small --output_format txt

搞掂!文字就會出現喺 .txt 檔案入面。可以選擇清理音頻檔案 `rm *.wav`。

場景二:指定集數

如果想下載第4到第5集,只要改 `--playlist-items 4-5` 就得。

場景三:批量處理多個唔同影片

建立一個 urls.txt,每行一個連結,然後用 while loop 逐個下載音頻,再用 Whisper 一次過轉文字。

程式內容 bash
while IFS= read -r url; do
  echo "正在下載: $url"
  yt-dlp --cookies-from-browser chrome -x --audio-format wav --audio-quality 0 -o "%(title)s.%(ext)s" "$url"
done < urls.txt

whisper *.wav --language zh --model small --output_format txt
cat *.txt > all_text.txt
rm *.wav

一條龍服務,完美。

整理重點

踩坑記錄:B站反爬蟲點算?

第一次執行 yt-dlp 下載B站影片時,好可能會遇到 `HTTP Error 412: Precondition Failed`,呢個係B站嘅反爬蟲機制。

如果你用 Safari,將 `chrome` 改做 `safari`。首次使用可能會彈窗要求授權,允許就得。記住,所有訪問B站嘅命令都要加呢個參數。

如果仲係唔得,試下更新 yt-dlp 或者確認瀏覽器已經登入B站。

整理重點

速度參考同模型選擇

如果你用 Mac Apple Silicon(M1/M2/M3),Whisper 會自動用 Metal 加速,速度唔錯。建議先用 small 模型試一條片,滿意先批量跑。

  • tiny 模型:10分鐘音頻約1分鐘,適合快速預覽
  • base 模型:約2分鐘,日常使用
  • small 模型:約5分鐘,推薦平衡點
  • medium 模型:約15分鐘,高精度需要

如果準確率唔夠可以換 medium,但時間會長啲。

免費批量提取影片文字?呢兩個神仙工具你一定要識

一個係影片下載界嘅「瑞士軍刀」,一個係語音辨識界嘅「最強大腦」。兩個都係免費開源,組合埋一齊,B站影片文字隨便拎。


故事嘅開頭

某日,我喺B站碌到一個超長嘅C語言教程——翁愷老師嘅《C語言程式設計》,幾十集嗰種。我心諗:如果可以將文字提取出嚟,當筆記睇咁幾好呢?

於是我踏上咗揾工具嘅旅程。試咗一堆小程式、線上工具,唔係要俾錢就有限制,否則準確率嚇親人。直到我遇到咗呢兩個神器——yt-dlp 和 Whisper

今日就將呢條「踩坑→摸索→成功」嘅完整路線分享俾你,跟住做,10分鐘搞掂。


先認識兩位主角

🎬 yt-dlp —— 影片下載界嘅「瑞士軍刀」

yt-dlp 係一個開源免費嘅影片/音頻下載命令列工具,GitHub 上 100K+ Stars。佢係老牌工具 youtube-dl 嘅活躍分支,功能更強,更新更快。

佢可以做到啲乜?

  • 支援 1800+ 網站:YouTube、B站、抖音、Twitter、Instagram……主流平台幾乎全覆蓋
  • 只下載音頻:唔需要影片畫面?一個參數搞掂,慳位慳時間
  • 批量下載:將連結掉入一個檔案,一鍵全部下載
  • 自動揀最高畫質:默認下載最佳畫質,亦可以指定解像度
  • 字幕提取:直接下載平台自帶嘅字幕檔案

喺我哋嘅場景裏面,yt-dlp 負責第一步:將影片嘅音頻抽返出嚟,交俾 Whisper 做文字辨識。

🎤 Whisper —— 語音辨識界嘅「最強大腦」

Whisper 係 OpenAI 喺 2022 年發佈嘅開源語音辨識模型。冇錯,就係嗰個做 ChatGPT 嘅 OpenAI,但呢個工具完全免費、開源

佢可以做到啲乜?

  • 多語言辨識:支援 99 種語言,中英日韓都冇問題
  • 高準確率:喺多語言基準測試中接近人類水平
  • 離線運行:唔需要聯網,數據唔出本地,私隱安全
  • 多種模型大細:由「夠用」到「極致」,按需要選擇
模型
參數量
速度
準確率
適合場景
tiny
39M
最快
夠用
快速預覽
base
74M
較好
日常使用
small
244M
中等
推薦平衡點
medium
769M
較慢
很好
高精度需求
large-v3
1550M
最慢
最好
追求極致

簡單講,yt-dlp 負責下載音頻,Whisper 負責將音頻變成文字。兩個都係免費嘅,組合埋一齊就係一條完整嘅影片→文字流水線。


安裝:三步搞掂

第 1 步:安裝 yt-dlp

打開終端機(Terminal),執行:

brew install yt-dlp

驗證安裝成功:

yt-dlp --version

見到版本號就代表 OK 咗。

第 2 步:安裝 ffmpeg(Whisper 嘅依賴)

Whisper 需要 ffmpeg 嚟處理音頻格式:

brew install ffmpeg

第 3 步:安裝 Whisper

pip3 install --break-system-packages openai-whisper

安裝過程會自動下載 PyTorch 等依賴,耐心等一陣。

驗證安裝成功:

whisper --help

見到一堆幫助信息,恭喜你,全部準備好曬!🎉


實戰:提取B站影片文字

場景一:提取單個影片

假設我哋要提取呢個影片嘅文字:浙江大學翁愷《C語言程式設計》,連結係 https://b23.tv/cPvryeZ

第 1 步:建立工作目錄

mkdir -p ~/Desktop/bilibili-text && cd ~/Desktop/bilibili-text

第 2 步:下載音頻

yt-dlp --cookies-from-browser chrome -x --audio-format wav --audio-quality 0 -o "%(title)s-P%(playlist_index)s.%(ext)s" --playlist-items 1 "https://b23.tv/cPvryeZ"

唔好比呢串咁長嘅嘢嚇親,拆開睇就清楚曬:

參數
作用
--cookies-from-browser chrome
用 Chrome 嘅 Cookie 繞過反爬(後面詳細講)
-x
只提取音頻,唔下載影片
--audio-format wav
輸出 wav 格式(Whisper 鍾意呢個)
--audio-quality 0
最高音質
-o "%(title)s-P%(playlist_index)s.%(ext)s"
檔案名格式:標題-P集數.wav
--playlist-items 1
只下載第 1 集

第 3 步:語音轉文字

whisper *.wav --language zh --model small --output_format txt
參數
作用
--language zh
指定中文
--model small
用 small 模型(推薦平衡點)
--output_format txt
只輸出純文字(唔要字幕檔案)

⚠️ 第一次運行會自動下載模型檔案(約 500MB),之後就唔使再下載。

第 4 步:查看結果

cat *.txt

搞掂!文字就喺 .txt 檔案裏面。

第 5 步:清理音頻檔案(可選)

rm *.wav

場景二:下載指定集數

例如只想下載第 4 到第 5 集:

yt-dlp --cookies-from-browser chrome -x --audio-format wav --audio-quality 0 -o "%(title)s-P%(playlist_index)s.%(ext)s" --playlist-items 4-5 "https://b23.tv/cPvryeZ"

--playlist-items 4-5 即係第 4 到第 5 集,1,3,5 即係第 1、3、5 集。

場景三:批量提取多個唔同影片

第 1 步:建立連結檔案

cd ~/Desktop/bilibili-text

建立一個 urls.txt,每行一個連結:

https://b23.tv/cPvryeZ
https://b23.tv/另一個連結
https://www.bilibili.com/video/BVxxxxxx

第 2 步:批量下載音頻

while IFS= read -r url; do
  echo "正在下載: $url"
  yt-dlp --cookies-from-browser chrome -x --audio-format wav --audio-quality 0 -o "%(title)s.%(ext)s" "$url"
done < urls.txt

第 3 步:批量轉文字

whisper *.wav --language zh --model small --output_format txt

第 4 步:合併所有文本(可選)

cat *.txt > all_text.txt

第 5 步:清理

rm *.wav

一條龍服務,完美。✅


踩坑記錄:B站反爬點算好?

呢個係我喺實操中遇到嘅第一個坑,亦係最容易卡住嘅地方。

當我第一次執行 yt-dlp 下載B站影片時,終端機無情地報咗錯:

ERROR: [generic] Unable to download webpage: HTTP Error 412: Precondition Failed

HTTP 412 係咩意思?簡單講就係:B站嘅伺服器一睇,「呢個請求唔似正常瀏覽器喎,拒絕!」

解決方案:加上 Cookie

B站嘅反爬機制會檢查請求頭。解決辦法好簡單——令 yt-dlp 扮成你嘅瀏覽器

yt-dlp --cookies-from-browser chrome "B站連結"

呢條命令會令 yt-dlp 自動讀取你 Chrome 瀏覽器裏面 B站嘅登入 Cookie,B站伺服器一睇:「哦,係老用戶嚟㗎,放行!」

💡 如果你用 Safari,將 chrome 換成 safari。首次使用時 macOS 可能會彈視窗要求授權訪問瀏覽器數據,㩒允許就行。

**記住:所有 yt-dlp 訪問B站嘅命令都要加 --cookies-from-browser chrome**,唔係嘅話都會被攔截。

如果都係唔得?

  1. 更新 yt-dlp 到最新版:brew upgrade yt-dlp
  2. 確認你喺瀏覽器裏面已經登入咗B站
  3. 換一個瀏覽器試下:--cookies-from-browser safari

速度參考

如果你用嘅係 Mac Apple Silicon(M1/M2/M3),Whisper 會自動使用 Metal 加速,速度都唔錯:

模型
10 分鐘音頻大約需時
tiny
~1 分鐘
base
~2 分鐘
small
~5 分鐘
medium
~15 分鐘

建議先用 small 模型試一個檔案,滿意咗再批量跑。準確率唔夠再換 medium


完整命令速查卡

將呢張「卡片」收藏好,下次直接複製貼上:

# === 安裝 ===
brew install yt-dlp
brew install ffmpeg
pip3 install --break-system-packages openai-whisper

# === 單個視頻 ===
yt-dlp --cookies-from-browser chrome -x --audio-format wav --audio-quality 0 -o "%(title)s-P%(playlist_index)s.%(ext)s" --playlist-items 1 "B站連結"
whisper *.wav --language zh --model small --output_format txt

# === 指定集數 ===
yt-dlp --cookies-from-browser chrome -x --audio-format wav --audio-quality 0 -o "%(title)s-P%(playlist_index)s.%(ext)s" --playlist-items 4-5 "B站連結"

# === 批量處理 ===
while IFS= read -r url; do
  yt-dlp --cookies-from-browser chrome -x --audio-format wav --audio-quality 0 -o "%(title)s.%(ext)s" "$url"
done < urls.txt
whisper *.wav --language zh --model small --output_format txt

# === 清理 ===
rm *.wav

寫喺最後

yt-dlp + Whisper 呢對組合,本質上就係:

任何平台的視頻 → 音頻 → 文字

全部免費、開源、離線運行、私隱安全。唔依賴任何第三方服務,唔使擔心檔案上傳到人哋嘅伺服器。

唯一需要嘅就係少少耐性(等下載同轉寫),同埋 willingness to use 終端機(願意敲幾行命令)。

但係相信我,一旦Set好之後,批量處理幾十個影片都係一條命令嘅事。嗰種感覺,就好似擁有咗一個私人字幕組。😎


如果呢篇文章對你有幫助,歡迎俾Like同收藏。有問題歡迎喺留言區交流,我會逐一回覆。

免費批量提取視頻文字?這兩個神仙工具你一定要知道

一個是視頻下載界的"瑞士軍刀",一個是語音識別界的"最強大腦"。兩個都是免費開源,組合起來,B站視頻文字隨便拿。


故事的開始

某天,我在B站刷到一個超長的C語言教程——翁愷老師的《C語言程序設計》,幾十集的那種。我心想:要是能把文字提取出來,當筆記看該多好?

於是我踏上了尋找工具的旅程。試了一堆小程序、在線工具,不是要付費就是有限制,要麼準確率感人。直到我遇到了這兩個神器——yt-dlp 和 Whisper

今天就把這條"踩坑→摸索→成功"的完整路線分享給你,照着做,10分鐘搞定。


先認識兩位主角

🎬 yt-dlp —— 視頻下載界的"瑞士軍刀"

yt-dlp 是一個開源免費的視頻/音頻下載命令行工具,GitHub 上 100K+ Stars。它是老牌工具 youtube-dl 的活躍分支,功能更強、更新更快。

它能幹什麼?

  • 支持 1800+ 網站:YouTube、B站、抖音、推特、Instagram……主流平台幾乎全覆蓋
  • 只下載音頻:不需要視頻畫面?一個參數搞定,省空間省時間
  • 批量下載:把連結扔進一個文件,一鍵全下
  • 自動選最高畫質:默認下載最佳畫質,也可以指定分辨率
  • 字幕提取:直接下載平台自帶的字幕文件

在我們的場景裏,yt-dlp 負責第一步:把視頻的音頻抽出來,交給 Whisper 做文字識別。

🎤 Whisper —— 語音識別界的"最強大腦"

Whisper 是 OpenAI 在 2022 年發佈的開源語音識別模型。沒錯,就是那個做 ChatGPT 的 OpenAI,但這個工具完全免費、開源

它能幹什麼?

  • 多語言識別:支持 99 種語言,中英日韓都不在話下
  • 高準確率:在多語言基準測試中接近人類水平
  • 離線運行:不需要聯網,數據不出本地,隱私安全
  • 多種模型大小:從"夠用"到"極致",按需選擇
模型
參數量
速度
準確率
適合場景
tiny
39M
最快
夠用
快速預覽
base
74M
較好
日常使用
small
244M
中等
推薦平衡點
medium
769M
較慢
很好
高精度需求
large-v3
1550M
最慢
最好
追求極致

簡單說,yt-dlp 負責下載音頻,Whisper 負責把音頻變成文字。兩個都是免費的,組合起來就是一條完整的視頻→文字流水線。


安裝:三步搞定

第 1 步:安裝 yt-dlp

打開終端(Terminal),執行:

brew install yt-dlp

驗證安裝成功:

yt-dlp --version

看到版本號就說明 OK 了。

第 2 步:安裝 ffmpeg(Whisper 的依賴)

Whisper 需要 ffmpeg 來處理音頻格式:

brew install ffmpeg

第 3 步:安裝 Whisper

pip3 install --break-system-packages openai-whisper

安裝過程會自動下載 PyTorch 等依賴,耐心等一會兒。

驗證安裝成功:

whisper --help

看到一堆幫助信息,恭喜你,全部就緒!🎉


實戰:提取B站視頻文字

場景一:提取單個視頻

假設我們要提取這個視頻的文字:浙江大學翁愷《C語言程序設計》,連結是 https://b23.tv/cPvryeZ

第 1 步:創建工作目錄

mkdir -p ~/Desktop/bilibili-text && cd ~/Desktop/bilibili-text

第 2 步:下載音頻

yt-dlp --cookies-from-browser chrome -x --audio-format wav --audio-quality 0 -o "%(title)s-P%(playlist_index)s.%(ext)s" --playlist-items 1 "https://b23.tv/cPvryeZ"

別被這長長的一串嚇到,拆開看就清楚了:

參數
作用
--cookies-from-browser chrome
用 Chrome 的 Cookie 繞過反爬(後面詳細講)
-x
只提取音頻,不下載視頻
--audio-format wav
輸出 wav 格式(Whisper 喜歡這個)
--audio-quality 0
最高音質
-o "%(title)s-P%(playlist_index)s.%(ext)s"
文件名格式:標題-P集數.wav
--playlist-items 1
只下載第 1 集

第 3 步:語音轉文字

whisper *.wav --language zh --model small --output_format txt
參數
作用
--language zh
指定中文
--model small
用 small 模型(推薦平衡點)
--output_format txt
只輸出純文本(不要字幕文件)

⚠️ 第一次運行會自動下載模型文件(約 500MB),之後就不用再下了。

第 4 步:查看結果

cat *.txt

搞定!文字就在 .txt 文件裏了。

第 5 步:清理音頻文件(可選)

rm *.wav

場景二:下載指定集數

比如只想下載第 4 到第 5 集:

yt-dlp --cookies-from-browser chrome -x --audio-format wav --audio-quality 0 -o "%(title)s-P%(playlist_index)s.%(ext)s" --playlist-items 4-5 "https://b23.tv/cPvryeZ"

--playlist-items 4-5 就是第 4 到第 5 集,1,3,5 就是第 1、3、5 集。

場景三:批量提取多個不同視頻

第 1 步:創建連結文件

cd ~/Desktop/bilibili-text

創建一個 urls.txt,每行一個連結:

https://b23.tv/cPvryeZ
https://b23.tv/另一個連結
https://www.bilibili.com/video/BVxxxxxx

第 2 步:批量下載音頻

while IFS= read -r url; do
  echo "正在下載: $url"
  yt-dlp --cookies-from-browser chrome -x --audio-format wav --audio-quality 0 -o "%(title)s.%(ext)s" "$url"
done < urls.txt

第 3 步:批量轉文字

whisper *.wav --language zh --model small --output_format txt

第 4 步:合併所有文本(可選)

cat *.txt > all_text.txt

第 5 步:清理

rm *.wav

一條龍服務,完美。✅


踩坑記錄:B站反爬怎麼辦?

這是我在實操中遇到的第一個坑,也是最容易卡住的地方。

當我第一次執行 yt-dlp 下載B站視頻時,終端無情地報了錯:

ERROR: [generic] Unable to download webpage: HTTP Error 412: Precondition Failed

HTTP 412 是什麼意思?簡單說就是:B站的服務器一看,"這請求不像正常瀏覽器啊,拒絕!"

解決方案:加上 Cookie

B站的反爬機制會檢查請求頭。解決辦法很簡單——讓 yt-dlp 假裝成你的瀏覽器

yt-dlp --cookies-from-browser chrome "B站連結"

這條命令會讓 yt-dlp 自動讀取你 Chrome 瀏覽器裏 B站的登錄 Cookie,B站服務器一看:"哦,是老用戶啊,放行!"

💡 如果你用 Safari,把 chrome 換成 safari。首次使用時 macOS 可能會彈窗要求授權訪問瀏覽器數據,點允許就行。

**記住:所有 yt-dlp 訪問B站的命令都要加 --cookies-from-browser chrome**,不然都會被攔截。

如果還是不行?

  1. 更新 yt-dlp 到最新版:brew upgrade yt-dlp
  2. 確認你在瀏覽器裏已登錄B站
  3. 換一個瀏覽器試試:--cookies-from-browser safari

速度參考

如果你用的是 Mac Apple Silicon(M1/M2/M3),Whisper 會自動使用 Metal 加速,速度還不錯:

模型
10 分鐘音頻大約耗時
tiny
~1 分鐘
base
~2 分鐘
small
~5 分鐘
medium
~15 分鐘

建議先用 small 模型試一個文件,滿意了再批量跑。準確率不夠再換 medium


完整命令速查卡

把這張"卡片"收藏好,下次直接複製粘貼:

# === 安裝 ===
brew install yt-dlp
brew install ffmpeg
pip3 install --break-system-packages openai-whisper

# === 單個視頻 ===
yt-dlp --cookies-from-browser chrome -x --audio-format wav --audio-quality 0 -o "%(title)s-P%(playlist_index)s.%(ext)s" --playlist-items 1 "B站連結"
whisper *.wav --language zh --model small --output_format txt

# === 指定集數 ===
yt-dlp --cookies-from-browser chrome -x --audio-format wav --audio-quality 0 -o "%(title)s-P%(playlist_index)s.%(ext)s" --playlist-items 4-5 "B站連結"

# === 批量處理 ===
while IFS= read -r url; do
  yt-dlp --cookies-from-browser chrome -x --audio-format wav --audio-quality 0 -o "%(title)s.%(ext)s" "$url"
done < urls.txt
whisper *.wav --language zh --model small --output_format txt

# === 清理 ===
rm *.wav

寫在最後

yt-dlp + Whisper 這對組合,本質上就是:

任何平台的視頻 → 音頻 → 文字

全部免費、開源、離線運行、隱私安全。不依賴任何第三方服務,不用擔心文件上傳到別人的服務器。

唯一需要的就是一點點耐心(等下載和轉寫),以及 willingness to use 終端(願意敲幾行命令)。

但相信我,一旦配好之後,批量處理幾十個視頻也就是一條命令的事。那種感覺,就像擁有了一個私人字幕組。😎


如果這篇文章對你有幫助,歡迎點贊收藏。有問題歡迎在評論區交流,我會一一回復。