用的完整實(shí)操指南)
Cobalt 視頻下載從 Docker 部署到 API 調(diào)用的完整實(shí)操指南【免費(fèi)下載鏈接】cobaltbest way to save what you love項(xiàng)目地址: https://gitcode.com/GitHub_Trending/cob/cobalt想把一條 1080p 的 YouTube 視頻連同高清畫質(zhì)一起存下來通常要在十幾個第三方站點(diǎn)之間換來換去還躲不開廣告和限速。Cobalt 是一個沒有廣告、沒有追蹤器、沒有付費(fèi)墻的視頻/音頻下載工具支持 YouTube、TikTok、Instagram 等 20 多個平臺你可以把它跑在自己的服務(wù)器上把下載行為完全掌握在自己手里。用 Docker 三條命令啟動 CobaltCobalt 的官方 Docker 包是部署的首選前提是機(jī)器上裝好了 Docker 和 Docker Compose。整個流程就三步git clone https://gitcode.com/GitHub_Trending/cob/cobalt cd cobalt docker compose up -dcompose 文件可以直接參考倉庫里 examples/docker-compose.example.yml 的樣例注意把默認(rèn)的 URL 換成你自己的域名否則前端請求會指向別人的實(shí)例。Docker 包內(nèi)置了 watchtower容器會自動拉取新版本不用你手動升級。手動安裝只適合本地開發(fā)裝好 Node.js 18 以上git clone倉庫后運(yùn)行npm run setup再npm start即可。API 和前端要分開部署setup 腳本會讓你選擇角色。如果實(shí)例要支持需要登錄才能看的內(nèi)容在同目錄放一個 cookies.json樣例見 examples/cookies.example.json并通過COOKIE_PATH指向它。三種下載模式和智能文件名Cobalt 把下載拆成三個互斥的模式默認(rèn)就是視頻音頻視頻音頻什么都不改直接下原片僅音頻請求里加isAudioOnly: true音頻格式由aFormat指定支持mp3、ogg、wav、opus、best五種默認(rèn)mp3僅視頻加isAudioMuted: true去掉音軌適合只想留畫面素材的情況。畫質(zhì)方面vQuality可選 144 到 2160 以及max默認(rèn) 720YouTube 還能用vCodec指定h264、av1、vp9手機(jī)端建議 h264 兼容性最好。個別平臺有專屬開關(guān)TikTok 的isTTFullAudio能拿到視頻用的原始完整音源tiktokH265決定是否優(yōu)先 1080p 的 HEVC 版本Twitter 的twitterGif控制 GIF 是否真的轉(zhuǎn)成 .gif 文件。文件名由filenamePattern決定四種取值示例長這樣取值示例文件名classic默認(rèn)youtube_MMK3L4W70g4_1920x1080_h264_mute.mp4prettyLoossemble (???) - Sensitive MV (1080p, h264, mute, youtube).mp4basic標(biāo)題 (1080p, h264)不帶上游平臺名nerdy標(biāo)題 (1080p, h264, ru, youtube, 視頻ID).mp4生成邏輯在 src/modules/processing/createFilename.js 里標(biāo)題、分辨率、編解碼器、音軌語言都會被保留素材入庫后不用二次重命名就能認(rèn)出來。三個真實(shí)場景怎么用做課件的老師把網(wǎng)課鏈接貼進(jìn)網(wǎng)頁aFormat設(shè)成ogg或opus僅音頻模式下拿到的文件體積小方便在教室里反復(fù)播放不需要下載整段視頻。運(yùn)營做品牌素材備份品牌官號發(fā)的每條 Reel 和推文都過一遍 CobaltfilenamePattern用nerdy文件名里自帶發(fā)布時間和視頻 ID歸檔進(jìn)網(wǎng)盤后按項(xiàng)目文件夾存放日后盤點(diǎn)素材不用回網(wǎng)站翻歷史。剪片的人找參考YouTube 上的剪輯教程用vQuality: 2160拉滿畫質(zhì)收藏B 站的同類內(nèi)容同樣支持TikTok 的轉(zhuǎn)場片段加isTTFullAudio把背景音樂整段存下來后面找原曲方便得多。? Cobalt API 調(diào)用與實(shí)例保護(hù)整個服務(wù)就是一個 REST 接口前端和 API 分離部署所以任何腳本都能直接調(diào)。最精簡的調(diào)用長這樣const res await fetch(http://localhost:9000/api/json, { method: POST, headers: { Accept: application/json, Content-Type: application/json }, body: JSON.stringify({ url: https://www.youtube.com/watch?vxxxxx, vQuality: 1080 }) })請求成功返回status: success和一個可下載鏈接鏈接參數(shù)帶簽名且有時效直接當(dāng)下載地址用即可。完整字段說明見 docs/api.md所有平臺的具體處理邏輯在 src/modules/processing/services/ 目錄下每個平臺一個文件。實(shí)例要暴露到公網(wǎng)時重點(diǎn)調(diào)這幾個環(huán)境變量完整清單在 docs/run-an-instance.mdAPI_PORT9000 API_URLhttps://api.example.com/ RATELIMIT_WINDOW60 RATELIMIT_MAX20 CORS_WILDCARD0 CORS_URLhttps://example.comRATELIMIT_WINDOW和RATELIMIT_MAX控制每個 IP 在一個時間窗秒內(nèi)最多請求多少次超了返回 429這是防濫用的第一道閘CORS_WILDCARD設(shè)為 0 后只有CORS_URL指定的域名能調(diào)你的 API。對外再套一層 nginx 反向代理實(shí)例基本就穩(wěn)了。常見問題速查返回 429 限流撞上了速率限制等一個窗口期默認(rèn) 60 秒再試或調(diào)大RATELIMIT_MAX。提示需要登錄/部分內(nèi)容下不了配置 cookies.json 并用COOKIE_PATH指向它登錄態(tài)只對需要鑒權(quán)的平臺生效。端口被占用改API_PORT默認(rèn) 9000和WEB_PORT默認(rèn) 9001即可。YouTube 下出來只有 720p這是默認(rèn)值在請求里顯式寫vQuality: 1080或2160。頁面里調(diào)用報 CORS 錯API 端把CORS_WILDCARD設(shè) 1 全放開或設(shè) 0 并用CORS_URL精確放行你的前端域名。把 Cobalt 部署在自己服務(wù)器上等于把下載工具變成了自己的基礎(chǔ)設(shè)施——鏈接貼進(jìn)去文件落下來剩下的時間交給創(chuàng)作本身。下載和使用內(nèi)容請遵守各平臺的條款尊重原作者的版權(quán)素材僅用于你計(jì)劃使用的方式。【免費(fèi)下載鏈接】cobaltbest way to save what you love項(xiàng)目地址: https://gitcode.com/GitHub_Trending/cob/cobalt創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考