https://github.com/louis70109/gccp-creator
CC subtitle creator
https://github.com/louis70109/gccp-creator
Last synced: about 2 months ago
JSON representation
CC subtitle creator
- Host: GitHub
- URL: https://github.com/louis70109/gccp-creator
- Owner: louis70109
- License: mit
- Created: 2022-07-10T06:40:08.000Z (almost 3 years ago)
- Default Branch: master
- Last Pushed: 2022-07-31T11:37:33.000Z (almost 3 years ago)
- Last Synced: 2025-04-14T11:06:29.505Z (about 2 months ago)
- Language: Python
- Size: 40 KB
- Stars: 10
- Watchers: 3
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# GCCP creator
由來:運用 GCP 服務的流程串接,建立 CC 字幕給影片編輯使用
> 此專案已在 [COSCUP 2022 分享](https://coscup.org/2022/zh-TW/session/P7HXPX)
> [簡報](https://speakerdeck.com/line_developers_tw/gccp-creator-at-coscup-2022)
Note:
- Cloud Run 需要設定 eventarc
- STT 不吃 mp4,檔案輸出時需要轉成 mp3 丟到 cloud storage
- STT 轉出來會變成 datetime.timedelta 的格式,格式中不是 iterator,因此 API 回來後不能直接使用。[參考說明](https://stackoverflow.com/questions/3790848/fastest-way-to-convert-an-iterator-to-a-list)後要用 list 把它轉出來,才能抓到裡面的數值。
- 原本打算用 WebVTT 格式操作,但在 [Youtube 文件](https://support.google.com/youtube/answer/2734698?hl=zh-Hant#zippy=%2C%E5%9F%BA%E6%9C%AC%E6%AA%94%E6%A1%88%E6%A0%BC%E5%BC%8F%2C%E9%80%B2%E9%9A%8E%E6%AA%94%E6%A1%88%E6%A0%BC%E5%BC%8F)中說明了`目前仍在初步實行階段`,因此在此專案中則是用 SRT 作為使用。
- 在 GCS 上點開看字幕檔都是亂碼,但進去 Youtube || videojs 中,都會是可以被讀取。## 開發測試
上傳到 Cloud Storage 後,CloudRun 會收到訊號,內容很多,整理完主要使用為下列:
```json
{"name": "testing-1.mp3", "bucket": "my-bucket", "contentType": "audio/mpeg"}
```## 部署
透過 gcloud 指令把專案推上去,方便在不需要本地透過 Docker 建立 container,推上去之後會在 GCP 上自動建立 Container 並提供給 CloudRUn 使用。
```shell
git clone https://github.com/louis70109/GCCP-Creator.git
cd GCCP-Creator
gcloud run deploy nijia-cloud-run-example-1 --source .
```## 參考
- [SRT format wiki](https://en.wikipedia.org/wiki/SubRip#SubRip_text_file_format)
- [YouTube 支援的字幕檔案](https://support.google.com/youtube/answer/2734698?hl=zh-Hant#zippy=%2C%E5%9F%BA%E6%9C%AC%E6%AA%94%E6%A1%88%E6%A0%BC%E5%BC%8F%2C%E9%80%B2%E9%9A%8E%E6%AA%94%E6%A1%88%E6%A0%BC%E5%BC%8F)## 操作方法
1. 到 Cloud Storage 中先建立一個空的 Bucket
2. 選擇稍早推上去的 CloudRun app,選擇上面的 `add eventarc` 建立一個事件觸發裝置。
3. 因為此範例使需要上傳檔案,因此這邊就監聽 Cloud Storage 的事件,設定如下:
4. 把預計要轉成文字的影片檔輸出成 MP3 後,放進去 Cloud Storage。
5. 因為有觸發 Speech-To-Text,Cloud Storage 處理完之後會建立一個 SRT 字幕檔並存回去。
6. 檔案下載完之後,把原本剪好的影片檔上傳到 youtube 上,在上傳的分頁中會找到 `新增字幕`,給他大力的點下去
7. 這個專案會幫忙建立有時間序列的 SRT 字幕,點下去後找剛剛存個字幕檔。
7. 雖然透過 STT 切出來的檔案都到微秒,看起來好像會對不上,然而實際上在播放時都是很順暢的!Youtube 的編輯器寫得很棒,大家可以試試看!
## License
MIT