前言
最近對一些小細節做了很多處理,但是其實還是有非常多的問題,沒辦法時間畢竟時間有限。為什麼在這個時候開源,因為主要功能可以全部跑通了,分支暫時沒開發的功能也可以透過其他的工具來替代。
這個工具開發初衷(想法來源),我之前有一篇文章有詳細的說明,有興趣的可以看一下https://mp.weixin.qq.com/s/5o3Oioh6ktX1QOWHVuIqXg。
整體技術棧
- electron 來做跨端
目前在win10和mac(intel和M系列)都可以跑起來,win11和linux系統暫時沒測試。
當時差點選了tauri,主要考慮自己業餘來做,時間沒那麼多,後來就又選擇了electron,時間上相對來說可控一些。 - vite+vue3+naive-ui
我自己和在公司都主要使用vue3,所以這裡選擇了自己最上手的,然後UI的話,用夠了element-plus,所以這裡嚐嚐naive-ui - sqlite3資料庫
我這裡的是一個客戶端工具,很多資料都存到了資料庫,更方便的管理資料 - 打包:暫時使用 github的 action鉤子,可以跑起來,但是打包出來的 window和mac客戶端還存在問題(有時間再看看能不能解決)
- yt-dlp
這是一個開源專案;https://github.com/yt-dlp/yt-dlp
現在擁有71.9k star,是一個功能豐富的命令列音訊/影片下載器,支援數千個站點。該專案是基於現在不活躍的 youtube-dlc 的 youtube-dl 的一個分支。
這裡我只測試了youtobe平臺,其他平臺待有時間再進行測試。
- ffmpeg
透過ffmpeg來獲取下載影片中的圖片,然後透過python來進行去重處理 - mdnice
一個不錯的markdown 部落格寫作平臺,我暫時簡單對接了這個平臺,主要是使用它的圖床功能。
整體功能介紹
根據上圖其實可以很清晰的瞭解我小專案的整體功能,下面簡單說一下如何使用。
- 1、輸入youtobe影片連結或影片地址
- 2、點選獲取影片字幕檔案(可選擇下載影片與否)
- 3、下載完畢後,應該會選中左側當前的影片(可檢視是否存在字幕檔案)
- 4、存在字幕的情況下,右鍵字幕
- 5、可複製字幕和轉換的prompt
這裡我直接複製給了谷歌的gemini最新的flash模型
100多秒鐘生成完畢
- 6、可以直接複製生成後的markdown文字到我客戶端的富文字編輯器中來
複製過來後,可以順便點一下右上角的儲存,免得資訊丟失的問題。
- 7、在富文字中,找到目錄右鍵
這裡的目錄,主要是透過我的prompt來生成的,其中目錄上最重要的就是時間戳的時間區間,因為我要透過這個時間區間來取影片中的圖片,如果沒有時間戳區間,右鍵是沒效果的
- 8、點選獲取圖片後,第一次是要掃碼確認身份的
這裡我為了省事,暫時我對接了https://mdnice.com/,因為對我這個客戶端來說直接應用起來還是非常方便的,所以你暫時可以不用擔心資料問題。如果後期真有需求,我也可以對接其他的平臺,或者完全的自建平臺,好了吹牛逼有點過了。
- 9、掃碼確認身份之後,便開始獲取圖片,並進行圖片的去重
如果要將圖片新增到筆記之中
- 10、選中核取方塊即可,可以多選,選完之後點選確定
此處圖片可以點選進行放大檢視,在預覽區也可進行檢視放大圖片,有時候小圖可能看不清楚。
- 11、然後調整圖片在富文字中顯示的位置
右側就會進行預覽顯示,同時沒事的時候可以點選右上角的儲存。防止資料丟失。
- 12、最後可以全選編輯區的markdown內容
直接複製到對應的平臺或者透過markdown轉換為html文件。
說到這裡其實可以加個按鈕,方便複製內容。
目前現存的主要問題
-
沒有對接AI,暫時是透過複製到AI相關的客戶端得出結果後,再複製回來儲存。
-
whisper還沒對接,主要是研究了一段時間發現了很多問題吧,後期有時間還會繼續研究,對python的各種使用還要繼續深入才行。
-
圖片上傳暫時對接的mdnice,主要是上傳圖片大小有2M的限制。
-
圖片去重的效果還待繼續驗證。
-
如果是想英譯漢活著漢譯英,暫時也沒對接AI的API。
-
sqlite資料庫初始化問題未處理
每次資料庫相當於我本地打包進去的,應該要跟隨客戶本地進行獨立升級。
未來還可以最佳化的點
- whisper還沒做好,同時可考慮本地直接上傳影片
- 翻譯功能還是非常有必要的
- 資料庫:現在是手寫sql看後面替換為模型驅動
- 資料庫變更和初始化問題解決
- 自動化編譯靜態檔案複製有問題
- 感覺首次啟動很慢白屏的問題
- 生成的圖片進行壓縮處理
- 圖片也可以考慮整個影片一起去重(估計很慢)
- 自動化同步到某平臺
- 後期AI可對接到Gemini,以及其他某些AI平臺,例如claude3或kimi等
- 暫時只支援中文版本,後期可以加上多語言切換(主要以中英為主)
- 下載影片進度、圖片處理進度、AI呼叫進度、翻譯進度等
- 對yt-dlp還可以繼續深入學習,目前知識讓程式能跑起來了
- ffmpeg也是同理
- 等等等等,小的細節我已經處理了很多,感覺還有非常多的最佳化點
- 其實第二個版本最佳化我也想好了(emo......)
總結
想法再多,我還是動起來了,過程中其實遇到了非常多的問題,自己也一個一個的攻克了,因為真的是有很多的東西都要去學習,任何一個沒搞定,可能就放棄了。
其實從最開始寫第一行程式碼,我就開源了,只是當時肯定沒人知道吧。前段時間剛好被一位超級網友[有為卻繁星]看到,他簡單的幫我分享了一下,然後收穫了非常不錯的star數,就如同上面的截圖,大部分都來自於他的分享,在此非常的感謝。
好了,最後還是貼上我的開源專案地址:
https://github.com/aehyok/video2blog