這個專案用於批量下載 YouTube 頻道影片的字幕,並支援將字幕轉換為繁體中文。
- 安裝 Python 3.6 或更高版本
- 安裝所需套件:
pip install -r requirements.txt
- google-api-python-client:用於存取 YouTube API
- python-dotenv:用於管理環境變數
- yt-dlp:用於下載 YouTube 字幕
- tqdm:用於顯示進度條
- googletrans:用於翻譯功能
- 前往 Google Cloud Console
- 創建新專案或選擇現有專案
- 在「API 和服務」中啟用 YouTube Data API v3
- 在「憑證」中創建 API 金鑰
- 將 API 金鑰保存在專案根目錄的
.env
檔案中:YOUTUBE_API_KEY=你的API金鑰
- 找到目標 YouTube 頻道的頻道 ID
- 在頻道頁面網址中可以找到,格式如:UC...
- 執行
get_channel_videos.py
:python get_channel_videos.py
- 這個腳本會獲取頻道中所有影片的資訊
- 資訊會保存在
output/video_list.json
中
- 執行
batch_download_subtitles.py
:python batch_download_subtitles.py
- 這個腳本會讀取
video_list.json
- 為每個影片下載字幕
- 字幕會保存在
output/頻道名稱_subtitles
目錄下
- 這個腳本會讀取
- 執行
convert_subtitle.py
:python convert_subtitle.py
- 這個腳本會將 JSON 格式的字幕轉換為 TXT 格式
- 同時將內容翻譯成繁體中文
- 轉換後的檔案會保存在
output/頻道名稱_subtitles_txt
目錄下
-
字幕 JSON 檔案包含:
- 影片資訊(標題、URL、上傳時間)
- 字幕內容(時間戳、文字)
-
轉換後的 TXT 檔案包含:
- 影片基本資訊
- 逐行字幕內容
- 原文及繁體中文翻譯
- 精確的時間戳
-
API 使用限制
- YouTube API 有每日配額限制
- 建議批次處理時控制請求頻率
-
字幕可用性
- 並非所有影片都有字幕
- 某些影片可能只有自動生成的字幕
-
翻譯 API 限制
- 使用 Google Translate API 有請求頻率限制
- 腳本中已加入延遲機制避免超過限制
-
檔案備份
- 建議定期備份下載的字幕檔案
- 可使用 Git 進行版本控制
-
API 金鑰問題
- 確認
.env
檔案存在且格式正確 - 確認 API 金鑰有啟用正確的服務
- 確認
-
下載失敗
- 檢查網路連接
- 確認影片是否可用
- 查看錯誤日誌了解具體原因
-
翻譯問題
- 如遇到翻譯失敗,腳本會保留原文
- 可以稍後重新執行翻譯程序
每次完成重要更新後,記得更新 Git 版本:
git add .
git commit -m "更新說明"
git push