Cobalt 快速自托管:20+ 平台视频下载私有化指南

发布时间:2026/8/31 19:41:28
Cobalt 快速自托管:20+ 平台视频下载私有化指南 Cobalt 快速自托管20 平台视频下载私有化指南【免费下载链接】cobaltbest way to save what you love项目地址: https://gitcode.com/GitHub_Trending/cob/cobalt团队网盘里那条 4K 教程想备份就找不到干净来源第三方站点要么夹带广告弹窗要么限速要么把文件改得面目全非。Cobalt 是一个视频下载服务没有广告、没有追踪器、没有付费墙支持 20 多个平台。把它部署到自己服务器下载流程完全由你掌控。为什么自托管一个下载服务结论三个理由私有化、无广告、平台覆盖。文件直接落进你自己的磁盘不经过任何第三方中转整个服务没有广告、追踪器和付费墙请求路径干净YouTube、TikTok、Instagram、bilibili 等 20 多个平台收进同一个工具不用到处找不同站点。 十分钟跑起来两种部署方式Docker 方案最快三条命令起步git clone https://gitcode.com/GitHub_Trending/cob/cobalt cd cobalt docker compose up -d手动方案适合本地开发装好 Node.js 18 以上git clone仓库后依次跑npm run setup和npm startsetup 脚本会自动装好全部 npm 依赖。方案适用场景前置依赖注意项Docker Compose生产实例、长期使用Docker Docker Compose把 compose 里的默认 URL 换成你自己的域名否则前端请求会打到别人的实例手动 Node 安装本地开发、调试源码Node.js 18、gitnpm run setup时选择角色API 和前端要分开部署compose 样例在 examples/docker-compose.example.yml。Docker 包内置 watchtower作用容器发现新版镜像后自动重启升级你不用手动维护版本。需要处理需登录才能看的内容时把cookies.json放在实例同目录样例见 examples/cookies.example.json并用COOKIE_PATH指向它。一次请求怎么写模式与参数速查Cobalt 的核心就是POST /api/json这一个接口。请求必须带Accept和Content-Type两个 JSON 头。最小示例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: successurl是一个带签名、有时效的临时下载链接直接当下载地址用。下载分三种互斥模式默认视频音频加isAudioOnly: true只下音频加isAudioMuted: true去掉音轨只留画面。常用参数速查参数取值说明isAudioOnlytrue/false只下载音频默认 falseaFormatmp3 / ogg / wav / opus / best音频格式默认 mp3isAudioMutedtrue/false视频去掉音轨默认 falsevQuality144 到 2160 / max画质默认 720vCodech264 / av1 / vp9仅对 YouTube 生效h264 兼容性最好isTTFullAudiotrue/false下载 TikTok 视频使用的原始完整音源tiktokH265true/falseTikTok 是否优先 1080p 的 H265 版本twitterGiftrue/falseTwitter 的 GIF 是否真的转成 .gif 文件每个平台的处理逻辑在 src/modules/processing/services/ 目录一个平台一个文件想看细节直接翻。文件名四种模式怎么选filenamePattern决定落盘文件名四种取值取值示例文件名适合classic默认youtube_MMK3L4W70g4_1920x1080_h264_mute.mp4要平台名和视频 ID快速核对来源prettyLoossemble (루셈블) - Sensitive MV (1080p, h264, mute, youtube).mp4标题可读优先归档给人看basicLoossemble (루셈블) - Sensitive MV (1080p, h264).mp4只要标题和关键信息不要平台名nerdyLoossemble (루셈블) - Sensitive MV (1080p, h264, ru, youtube, MMK3L4W70g4).mp4全量元信息画质、编码、语言、平台、ID生成逻辑在 src/modules/processing/createFilename.js标题、分辨率、编码器、音轨语言都会被保留素材入库后不用二次重命名。完整字段定义见 docs/api.md。三个场景的参数配方播客/课程音频存档isAudioOnly: trueaFormat: opusfilenamePattern: pretty。Opus 在同等听感下文件小几百集素材存盘不吃空间pretty 文件名直接带节目名和作者扔进音频库就能按名字检索。离线教程库vQuality: 2160vCodec: h264filenamePattern: nerdy。参考素材按最高画质收藏以后裁剪放大不糊H264 保证老电脑和剪辑软件都能直接拖进去解码不挑环境nerdy 把 ID 写进文件名素材混了也能回溯出处。多平台品牌备份TikTok 源用isTTFullAudio: truetiktokH265: trueTwitter 源加twitterGif: true统一filenamePattern: nerdy。TikTok 保留视频里用的完整音源换歌也能先找到原曲H265 优先让 1080p 版本画质更优GIF 落盘成标准 .gif 直接能投进设计工具。️ 实例上公网前的保护清单对外暴露前把这些环境变量配进 API 服务API_PORT9000 RATELIMIT_WINDOW60 RATELIMIT_MAX20 CORS_WILDCARD0 CORS_URLhttps://example.comRATELIMIT_WINDOW/RATELIMIT_MAX一个时间窗秒内单 IP 最多请求次数超出直接返回 429这是防滥用的第一道闸CORS_WILDCARD0CORS_URL只允许你的前端域名跨域调 API端口冲突时改API_PORT默认 9000或WEB_PORT默认 9001。最后在外面套一层 nginx 反向代理加 TLS 再放出去。完整环境变量清单见 docs/run-an-instance.md。问题速查 返回 429撞上速率限制。等一个窗口期默认 60 秒再试或调大RATELIMIT_MAX。部分内容提示需要登录建cookies.json并用COOKIE_PATH指向它登录态只对需要鉴权的平台生效。端口被占用改API_PORT默认 9000或WEB_PORT默认 9001。YouTube 下出来只有 720p720 是默认值请求里显式写vQuality: 1080或2160。页面调用报 CORSAPI 端把CORS_WILDCARD设 1 全放开或设 0 并用CORS_URL精确放行你的前端域名。自托管 Cobalt等于把下载变成了你自己的基础设施链接贴进去文件落下来剩下的时间留给创作。下载和使用内容请遵守各平台条款尊重原作者版权。【免费下载链接】cobaltbest way to save what you love项目地址: https://gitcode.com/GitHub_Trending/cob/cobalt创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考