有時看到許多不錯的youtube影片,都會習慣把影片下載來收藏,怕萬一哪天被下架就看不到了。以前是都用youtube download hd,但現在這個軟體,要不是被chrome擋,就是安裝時被windows判斷為垃圾軟體不讓安裝,於是便想說來自己搞一個。

一開始打算使用python的pytube,但我發現電腦裡的python版本太高,pytube不支援的樣子,於是改用nodejs

本來想說弄個簡單程式就好,後來一想用cursor的composer試試看好了... 成果我還挺滿意的,以下是我向cursor composer的指令過程


一.前置作業

我一開始是先到node js 的youtube dl包這邊來,安裝了包

https://www.npmjs.com/package/youtube-dl-exec

自己簡單的npm install youtube-dl-exec

建立了app.js,並把官方範例貼上

const youtubedl = require('youtube-dl-exec')youtubedl('https://www.youtube.com/watch?v=6xKWiCMKKJg', {
  dumpSingleJson: true,
  noCheckCertificates: true,
  noWarnings: true,
  preferFreeFormats: true,
  addHeader: ['referer:youtube.com', 'user-agent:googlebot']}).then(output => console.log(output))

畢竟一開始,是打算自己寫一個陽春版的,但後來考量到,可能會有多筆下載需求,每次得打開來修改連結好麻煩...

不然的話,其實連這個app.js說不定都能用cursor composer直接產生


二.開始命令cursor composer

步驟一.寫Web介面

先跟它說我們的需求

寫一個web 介面搭配ajax 可以有個textarea 輸入多筆連結 自動解析成多筆,執行呼叫下載 可指定保存的目錄,配置以json保存

於是它便開始在app.js添加express相關的程式,產生html介面,添加config.json配置檔

image.png

它會跟你說,它做了什麼,還有使用說明,叫你要安裝必要的包

image.png

它實現了什麼

image.png

我實際測試後,發現Web介面下載後,確實有顯示影片名稱,也呈現綠色(成功),但我看電腦裡並沒有真的下載,工作管理員的網路傳輸也都是0,表示沒真的有在下載東西

於是便又下達另一項指令。它便自己發現到下載功能沒寫好,同時改寫ui介面

image.png

再次運行,便能真的執行下載影片的功能

image.png

但是我發現UI的進度條不是刷新進度,而是不斷的添加新的進度,導致畫面有許多進度條,只好再跟它說

image.png

再次修改後,發現到連進度條都沒有了,但看console的xhr內是有進度回傳的,於是又讓它再次修正

image.png

到這邊它就解決了問題,以下就是對UI不滿意,又讓它微調

image.png

於是我們就有以下的成果

產生出這個專案,大概花不到一小時的時間就完成了... 這放在過去自己寫,估計要寫個一天....


產出的code,我就放到github上

https://github.com/aidec/youtbue-dl-node/tree/main



文章轉載或引用,請先告知並保留原文出處與連結!!(單純分享或非營利的只需保留原文出處,不用告知)

原文連結:
https://blog.aidec.tw/post/cursor-youtube-dl
若有業務合作需求,可寫信至: opweb666@gmail.com
創業、網站經營相關內容未來將發布在 小易創業筆記