
Cobalt 自建视频下载器一个实例接住 20 多个站点的 4K 视频与 MP3【免费下载链接】cobaltbest way to save what you love项目地址: https://gitcode.com/GitHub_Trending/cob/cobalt刷到一条 YouTube 短视频只想把背景音乐单独存下来还得在第三方下载站之间反复横跳Cobalt 是一个可以自托管的视频下载器无广告、无追踪、无付费墙覆盖 YouTube、TikTok、Instagram、Bilibili 等 20 多个站点整套服务跑在你自己的服务器上下载链路完全由你控制。快速上手用 Docker Compose 拉起自己的实例前提是机器上装好了 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换成你自己的域名否则前端会一直请求别人的实例如果想下载需要登录才能看的内容在同目录放一份cookies.json格式参照docs/examples/cookies.example.json并设置COOKIE_PATH指向它。Docker 包里带了 watchtower镜像会自动更新不用手动升级。手动安装Node.js 18 以上npm run setup后npm start只建议本地开发时用而且 API 和前端要分成两个实例部署setup 脚本会让你选角色。存什么、存什么画质、文件叫什么名参数不多按三个问题过一遍就全掌握了。存什么三个开关默认行为是原样保存视频音频。想改变这一点的只有几个布尔值参数作用取值默认isAudioOnly只留音频轨true / falsefalseaFormat音频格式mp3 / ogg / wav / opus / bestmp3isAudioMuted去掉音轨只留画面true / falsefalseisTTFullAudio保存 TikTok 视频使用的原始完整音源true / falsefalse平台专属的还有两个TikTok 的tiktokH265决定是否优先 1080p 的 HEVC 版本Twitter 的twitterGif控制 GIF 是否真的转成 .gif 文件。存什么画质清晰度与编码参数取值默认vQuality144 到 2160 各档外加max720vCodec仅 YouTubeh264 / av1 / vp9h264默认 720p手机播放建议 h264 兼容性最好要存 4K 就显式写vQuality: 2160拿不准平台给到哪档时用max。文件怎么命名四种 filenamePattern生成逻辑在 src/modules/processing/createFilename.js 里标题、分辨率、编码、音轨语言都会写进文件名取值示例classic默认youtube_MMK3L4W70g4_1920x1080_h264_mute.mp4prettyLoossemble (루셈블) - Sensitive MV (1080p, h264, mute, youtube).mp4basic标题 (1080p, h264)不带平台名nerdy标题 (1080p, h264, ru, youtube, MMK3L4W70g4).mp4入库后靠文件名就能认出处处省掉二次重命名。 三个实战用法从抽音轨到 4K 归档音乐博主收集素材目标把 MV 里的歌单独收进自己的曲库。操作请求里加isAudioOnly: true、aFormat: ogg。得到什么几 MB 的音频文件文件名保留标题和语言标记直接按文件夹归档。游戏社区经理囤高光片段目标把主播的 Twitch 切片和 B 站高光统一备份到团队共享盘。操作vQuality: 2160拉高画质filenamePattern: nerdy。得到什么文件名自带分辨率、编码、平台和视频 ID盘里翻到任何一条都能立刻对上出处。海外剪辑师交客户素材目标内部审片要小文件交付要兼容。操作同一链接存两遍一遍vCodec: av1压体积一遍vCodec: h264保证客户端能放。得到什么两个版本各就各位交付前不用再临时转码。 脚本接入最小 API 调用与公网加固前端和 API 分离部署所以任何脚本都能直接打POST /api/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: success和带签名、有时效的下载链接直接拿来当下载地址即可。全部字段见 docs/api.md。实例要挂公网时重点调这几个环境变量完整清单在 docs/run-an-instance.mdAPI_PORT9000 WEB_PORT9001 API_URLhttps://api.example.com/ RATELIMIT_WINDOW60 RATELIMIT_MAX20 CORS_WILDCARD0 CORS_URLhttps://example.comRATELIMIT_WINDOW/RATELIMIT_MAX表示每个 IP 在 60 秒窗口内最多 20 次请求超出直接 429这是防滥用的第一道闸。CORS_WILDCARD设为 0 后只有CORS_URL列出的域名能调你的 API外面再套一层 nginx 反代配置就齐了。出错速查五种常见失败与处理办法现象处理办法返回 429撞上单 IP 限流默认 60 秒窗口 20 次等窗口结束再试或调大RATELIMIT_MAXYouTube 只出 720p720 是默认值请求里显式写vQuality: 1080、2160或max需要登录的内容下不了配置 cookies.json 并用COOKIE_PATH指向登录态只对该平台生效9000 / 9001 端口被占改API_PORT默认 9000和WEB_PORT默认 9001浏览器页面调用报 CORS 错CORS_WILDCARD0时把你的前端域名填进CORS_URL仅本地调试才考虑设 1 全放开把 Cobalt 跑在自己的服务器上下载就从点别人的按钮变成一套自己的基础设施画质、格式、文件名每一样都由你说了算。下载和使用内容请遵守各平台的条款尊重原作者的版权素材只用于你计划中的用途。【免费下载链接】cobaltbest way to save what you love项目地址: https://gitcode.com/GitHub_Trending/cob/cobalt创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考