Cobalt 视频下载:从 Docker 部署到 API 调用的完整实操指南

发布时间:2026/8/24 22:04:37
Cobalt 视频下载:从 Docker 部署到 API 调用的完整实操指南 Cobalt 视频下载从 Docker 部署到 API 调用的完整实操指南【免费下载链接】cobaltbest way to save what you love项目地址: https://gitcode.com/GitHub_Trending/cob/cobalt想把一条 1080p 的 YouTube 视频连同高清画质一起存下来通常要在十几个第三方站点之间换来换去还躲不开广告和限速。Cobalt 是一个没有广告、没有追踪器、没有付费墙的视频/音频下载工具支持 YouTube、TikTok、Instagram 等 20 多个平台你可以把它跑在自己的服务器上把下载行为完全掌握在自己手里。用 Docker 三条命令启动 CobaltCobalt 的官方 Docker 包是部署的首选前提是机器上装好了 Docker 和 Docker Compose。整个流程就三步git clone https://gitcode.com/GitHub_Trending/cob/cobalt cd cobalt docker compose up -dcompose 文件可以直接参考仓库里 examples/docker-compose.example.yml 的样例注意把默认的 URL 换成你自己的域名否则前端请求会指向别人的实例。Docker 包内置了 watchtower容器会自动拉取新版本不用你手动升级。手动安装只适合本地开发装好 Node.js 18 以上git clone仓库后运行npm run setup再npm start即可。API 和前端要分开部署setup 脚本会让你选择角色。如果实例要支持需要登录才能看的内容在同目录放一个 cookies.json样例见 examples/cookies.example.json并通过COOKIE_PATH指向它。三种下载模式和智能文件名Cobalt 把下载拆成三个互斥的模式默认就是视频音频视频音频什么都不改直接下原片仅音频请求里加isAudioOnly: true音频格式由aFormat指定支持mp3、ogg、wav、opus、best五种默认mp3仅视频加isAudioMuted: true去掉音轨适合只想留画面素材的情况。画质方面vQuality可选 144 到 2160 以及max默认 720YouTube 还能用vCodec指定h264、av1、vp9手机端建议 h264 兼容性最好。个别平台有专属开关TikTok 的isTTFullAudio能拿到视频用的原始完整音源tiktokH265决定是否优先 1080p 的 HEVC 版本Twitter 的twitterGif控制 GIF 是否真的转成 .gif 文件。文件名由filenamePattern决定四种取值示例长这样取值示例文件名classic默认youtube_MMK3L4W70g4_1920x1080_h264_mute.mp4prettyLoossemble (루셈블) - Sensitive MV (1080p, h264, mute, youtube).mp4basic标题 (1080p, h264)不带上游平台名nerdy标题 (1080p, h264, ru, youtube, 视频ID).mp4生成逻辑在 src/modules/processing/createFilename.js 里标题、分辨率、编解码器、音轨语言都会被保留素材入库后不用二次重命名就能认出来。三个真实场景怎么用做课件的老师把网课链接贴进网页aFormat设成ogg或opus仅音频模式下拿到的文件体积小方便在教室里反复播放不需要下载整段视频。运营做品牌素材备份品牌官号发的每条 Reel 和推文都过一遍 CobaltfilenamePattern用nerdy文件名里自带发布时间和视频 ID归档进网盘后按项目文件夹存放日后盘点素材不用回网站翻历史。剪片的人找参考YouTube 上的剪辑教程用vQuality: 2160拉满画质收藏B 站的同类内容同样支持TikTok 的转场片段加isTTFullAudio把背景音乐整段存下来后面找原曲方便得多。️ Cobalt API 调用与实例保护整个服务就是一个 REST 接口前端和 API 分离部署所以任何脚本都能直接调。最精简的调用长这样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和一个可下载链接链接参数带签名且有时效直接当下载地址用即可。完整字段说明见 docs/api.md所有平台的具体处理逻辑在 src/modules/processing/services/ 目录下每个平台一个文件。实例要暴露到公网时重点调这几个环境变量完整清单在 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 在一个时间窗秒内最多请求多少次超了返回 429这是防滥用的第一道闸CORS_WILDCARD设为 0 后只有CORS_URL指定的域名能调你的 API。对外再套一层 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精确放行你的前端域名。把 Cobalt 部署在自己服务器上等于把下载工具变成了自己的基础设施——链接贴进去文件落下来剩下的时间交给创作本身。下载和使用内容请遵守各平台的条款尊重原作者的版权素材仅用于你计划使用的方式。【免费下载链接】cobaltbest way to save what you love项目地址: https://gitcode.com/GitHub_Trending/cob/cobalt创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考