這是一個用於處理YouTube影片的Flask應用程序。它可以下載影片,生成截圖,提取聲音,進行轉錄和翻譯,並提供影片摘要。 (透過 Replit Agent 製作原型程式,以及數百次與 Claude 的愉快交談@@)
- 從YouTube URL下載影片
- 生成影片截圖
- 提取聲音並進行轉錄
- 翻譯影片內容 (支持多種語言)
- 生成影片摘要
- 儲存處理後的影片訊息到資料庫
- 提供Web界面顯示處理結果
以及: 偵測影片是否有字幕檔案,若有合適的字幕檔案:
- 若有中文字幕檔案,不進行翻譯,直接進行摘要。
- 若是英文字幕檔案,進行翻譯,再進行摘要。
- 若是其他語言的字幕檔案,先翻譯為英文、再翻譯為中文,再進行摘要。
B. 若沒有合適的字幕檔案: 進行轉錄的動作,偵測轉錄內容的語文,然後依照上述做法進行翻譯和/或摘要。
-
複製此程式庫:
git clone https://github.com/charlesc/YouTube-STTS.git cd YouTube-STTS
-
安裝依賴:
pip install -r requirements.txt
-
安裝FFmpeg (用於聲音提取):
- 在Ubuntu上:
sudo apt-get install ffmpeg
- 在macOS上 (使用Homebrew):
brew install ffmpeg
- 在Windows上: 下載FFmpeg並將其添加到系統PATH中
- 在Ubuntu上:
-
安裝Ollama (使用本地端AI模型)和 mlx-whisper(在 Apple M1/2/3/4處理器上進行聲音轉錄):
- 請按照Ollama官方文件的說明進行安裝。
- 請參考mlx-whispere官方文件
- 確保Ollama服務正在運行,並監聽在
http://localhost:11434
。
-
運行Flask應用:
python main.py
-
在瀏覽器中打開
http://localhost:5001
-
輸入YouTube影片URL、設定截圖頻率,並點擊"Process Video"
-
等待處理完成,結果將顯示在頁面上
main.py
: Flask應用的主入口video_processor.py
: 影片處理的核心邏輯vtt_translator.py
: 字幕處理和翻譯功能image_processor.py
: 圖像處理和去重複功能database.py
: 資料庫操作templates/
: HTML模板static/
: 靜態文件 (CSS, JS, 截圖等)
- Python
- Flask
- OpenCV
- yt-dlp
- mlx-whisper
- Ollama
- SQLite
- 此應用僅用於教育和研究目的。請遵守YouTube的服務條款、並尊重智慧財產權。
- 確保您有足夠的磁盤空間來儲存下載的影片(暫存)和生成的截圖。
- 處理長影片可能需要較長時間,請耐心等待。
歡迎提交問題和拉取請求來改進此項目。
本項目採用 MIT 許可證。詳情請見 LICENSE 文件。