
Cobalt 视频下载从 Docker 部署到 API 调用的完整避坑实操指南【免费下载链接】cobaltbest way to save what you love项目地址: https://gitcode.com/GitHub_Trending/cob/cobalt把一条 1080p 的 YouTube 视频连画质一起存下来你往往要在十几个第三方站点之间换来换去还要躲广告和限速。Cobalt 视频下载把这条路走直了一个无广告、无追踪器、可自托管的媒体下载器支持 YouTube、B 站、TikTok、Instagram 等 18 个平台链接贴进去文件落下来。用 Docker 三条命令拉起来前置依赖只有 Docker 和 Docker Compose装好就能跑git clone https://gitcode.com/GitHub_Trending/cob/cobalt cd cobalt docker compose up -dcompose 配置参考仓库里的 docs/examples/docker-compose.example.yml最容易踩的坑是默认域名没改API_URL、WEB_URL不替换成你自己的域名前端请求会直接指向别人的实例。镜像内置了 watchtower 容器会自动拉新版本不用手动升级。需要登录才能看内容的站点在 compose 同目录放一份 cookies.json样例在 docs/examples/cookies.example.json再用COOKIE_PATH指向它。不走 Docker 的本地开发也行Node.js 18 以上克隆仓库后npm run setup再npm startsetup 脚本会让你选跑 API 还是前端两者要分开部署。三种下载模式和智能文件名Cobalt 把下载拆成三种互斥模式默认是视频音频仅音频请求里加isAudioOnly: true格式由aFormat指定mp3 / ogg / wav / opus 四种默认 mp3仅视频加isAudioMuted: true去掉音轨适合只留画面素材。画质和平台专属开关也都在请求里控制默认值和取值如下参数适用默认可选值vQuality通用7201442160或maxvCodecYouTubeh264h264 / av1 / vp9isTTFullAudioTikTokfalse下视频用的原始完整音源tiktokH265TikTokfalse优先 1080p HEVC 版本twitterGifTwitterfalseGIF 是否真的转成 .gif文件名由filenamePattern决定四种风格取值生成效果classic默认youtube_MMK3L4W70g4_1920x1080_h264_mute.mp4pretty标题 (1080p, h264, 平台名).mp4basic标题 (1080p, h264)不带平台名nerdy标题 (1080p, h264, 平台名, 视频 ID).mp4生成逻辑在 src/modules/processing/createFilename.js分辨率、编码器、音轨语言都会写进文件名素材入库后不用二次重命名就能认出来。三个真实场景怎么配做课件的老师把网课链接贴进网页aFormat设成 ogg、勾上仅音频拿到 320k 音质的 ogg 文件。体积小教室电脑反复播放不吃资源省得下载整段视频。运营做品牌素材备份品牌官号发的每条 Reel 都过一遍 CobaltfilenamePattern用 nerdy视频 ID 和平台名直接写进文件名归档进网盘后按项目文件夹存放日后盘点素材不用回网站翻历史。剪片的人找参考YouTube 教程用vQuality拉到 2160 收藏 4K 版本TikTok 的转场片段加isTTFullAudio把背景音乐整段存下来后面找原曲方便得多。️ 接入你的工作流Cobalt API 与实例保护前端和 API 是分离部署的整个服务就是一个 REST 接口任何脚本都能直接调。最精简的调用长这样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?vMMK3L4W70g4, isAudioOnly: true, aFormat: ogg }) }).then(r r.json())成功时status返回successurl字段就是带签名的直链脚本直接取文件即可撞上频率限制时status会返回rate-limit等窗口期再试。字段全集见 docs/api.md。实例要暴露到公网先调这几个环境变量完整清单在 docs/run-an-instance.mdRATELIMIT_WINDOW60 RATELIMIT_MAX20 CORS_URLhttps://example.comRATELIMIT_WINDOW和RATELIMIT_MAX控制每个 IP 每 60 秒最多请求 20 次超了直接 429是防滥用的第一道闸CORS_URL只在CORS_WILDCARD0时生效只放行你的前端域名。对外再套一层 nginx 反向代理实例基本就稳了。踩坑速查返回 429撞上速率限制等一个窗口期默认 60 秒再试或调大RATELIMIT_MAX。提示需要登录 / 部分内容下不了放一份 cookies.json 并用COOKIE_PATH指向它登录态只对需要鉴权的平台生效。端口被占用改API_PORT默认 9000和WEB_PORT默认 9001。YouTube 下出来只有 720p那是默认值请求里显式写vQuality: 1080或2160。页面里调用报 CORS 错API 端CORS_WILDCARD设 1 全放开或设 0 并用CORS_URL精确放行你的前端域名。超长视频拒不下默认时长上限 3 小时调大DURATION_LIMIT单位秒。把 Cobalt 部署在自己服务器上等于把下载工具变成自己的基础设施——链接贴进去文件落下来剩下的时间交给创作本身。下载和使用内容请遵守各平台条款尊重原作者版权素材只用于你计划使用的方式。【免费下载链接】cobaltbest way to save what you love项目地址: https://gitcode.com/GitHub_Trending/cob/cobalt创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考