公司动态

Cobalt 视频下载自托管指南:约 20 个平台的素材,5 分钟跑通一个实例

📅 2026/8/31 14:05:21
Cobalt 视频下载自托管指南:约 20 个平台的素材,5 分钟跑通一个实例
Cobalt 视频下载自托管指南约 20 个平台的素材5 分钟跑通一个实例【免费下载链接】cobaltbest way to save what you love项目地址: https://gitcode.com/GitHub_Trending/cob/cobalt把喜欢的视频、音频从 YouTube、TikTok、Instagram 存到本地这件事听起来三秒钟就能办完实际操作却常常卡在四处找按钮、弹窗拦截和此内容即将下线的提示上。Cobalt 是一个开源的媒体下载服务AGPL-3.0 协议输入链接它负责解析、抓取、转码把视频、音频和元数据整理好给你。它有两个入口浏览器里一个干净的单页界面以及一个可直接调用的 JSON API。下文按是什么 → 怎么跑起来 → 能干什么 → 怎么进阶的顺序讲完整个使用过程。它解决什么三个具体的卡顿点把下载一个视频拆开看普通工具链通常卡在三处Cobalt 的做法对应得很直接保存入口被藏起来或干脆取消。不少平台尤其是短视频类逐步删掉了网页端的保存入口第三方插件又隔三差五跟着平台改版失效。Cobalt 对约 20 个平台各自维护一套解析逻辑入口失效时只需要修对应平台的模块不用你换工具。只给一种能下就行的结果。桌面下载器常见的问题是默认给到的是 480p 的 MP4想要 1080p 或纯音频还得进设置翻半天。Cobalt 把质量、编码、音频格式拆成 API 参数一次请求里就能指定要什么。链接一长操作开始重复。存 1 个链接是点鼠标存 30 个就是 30 遍粘贴、等待、核对文件名。Cobalt 的 API 端点意味着存 30 个可以变成 30 次请求由脚本循环完成文件名由预设模板统一生成。从 0 到第一个下载最快路径新手建议直接走 Docker 路线不用在本机装 Node 环境。Cobalt 由两个部分组成API 实例真正干活的解析/下载服务默认 9000 端口和Web 实例浏览器界面默认 9001 端口。一条 compose 命令可以同时把两者拉起来。仓库里提供了一份可直接改的示例配置docs/examples/docker-compose.example.yml。完整流程四步# 1. 建一个放配置文件的目录 mkdir cobalt cd cobalt # 2. 把示例 compose 文件复制进来改成你自己的域名后保存为 docker-compose.yml # 3. 启动API 与 Web 两个容器一起起 docker compose up -d # 4. 验证 API 是否活着 curl http://127.0.0.1:9000/api/serverInfo最后一步会返回一段 JSON版本号、服务名、启动时间能返回就说明实例已就绪浏览器打开 9001 端口粘贴第一条链接即可。不走 Docker 也可以本机需要 Node.js 18 及以上克隆仓库后按文档执行 setup 脚本再npm start步骤见 docs/run-an-instance.md。两条路线功能一致Docker 省心源码部署方便改配置。能力拆解它能帮你做四件事1. 粘链接出文件约 20 个平台各有一套解析模块包括 YouTube含 Shorts 与 Music、TikTok、InstagramReels/帖子、Twitter/X、Bilibili、Reddit、SoundCloud、Vimeo、Facebook、Pinterest、Snapchat、Twitch 切片等清单维护在 src/modules/processing/servicesConfig.json。一条链接里含多个媒体时返回的是一组选择器picker让你在网页端点选要哪一个而不是盲拿第一个。2. 质量和格式自己定视频下载可指定编码h264 / av1 / vp9与清晰度144p 到 4K默认 720p音频可单独导出格式在 mp3 / ogg / wav / opus / best 之间选。文档给的经验值手机场景用 h264 720p 兼容性最好。这些选项都是 API 请求里的字段网页界面里也有对应开关。3. 文件名不再随机Cobalt 内置四种命名预设classic/pretty/basic/nerdy由 src/modules/processing/createFilename.js 统一生成预设之间的差异在请求体里一个字段就能切换。命名规则基于标题、平台、日期等元数据落盘后归档、按项目整理文件夹时会省不少事。4. 需要登录态的平台cookie 机制部分平台的内容只有登录用户可见。Cobalt 支持把一个cookies.json文件挂进实例格式参考 docs/examples/cookies.example.json在 compose 里配好COOKIE_PATH环境变量实例就会带着你的登录态去取内容。cookie 有有效期过期后按同样方式更新文件即可。换个维度对比服务和工具的区别把 Cobalt 和常见方案放在一起看真正的分界线不是支持多少平台而是架构形态浏览器插件寄生在平台网页上平台改版就可能失灵一次只能处理一条链接没有接口无法被脚本调用。离线桌面下载器单点程序平台覆盖靠版本更新跟进批量能力弱同一台机器才能用。Cobalt服务形态常驻进程平台解析逻辑集中在 src/modules/processing/ 下逐平台维护暴露 REST API任何能发 HTTP 请求的工具脚本、NAS 任务、其他 App都能直接调用实例部署一次团队或设备都能共享。另外两个隐性差异值得注意隐私——公共实例上发生的请求都经过第三方服务器自托管则全程在自己的机器上持续性——插件失效是不可用而自托管实例出问题时你可以改代码、换代理、调配置主动权在自己手里。如果你只是偶尔存一两个视频公共实例已经够用上自托管的理由通常是批量、接口或隐私三者中至少占一样。进阶接入现有工作流一次 API 调用的最小形态向/api/json发一个 POST请求体带上url和可选参数质量、编码、音频格式、命名预设返回 JSON 里带文件直链curl -X POST http://127.0.0.1:9000/api/json \ -H Accept: application/json \ -H Content-Type: application/json \ -d {url:https://www.youtube.com/watch?vEXAMPLE,vQuality:1080,aFormat:mp3,filenamePattern:classic}批量场景就是对这个端点循环注意实例默认速率限制约为 60 秒 20 次请求脚本里加间隔或捕获rate-limit状态即可。字段全集见 docs/api.md。对外暴露实例时的安全项都在环境变量里不用改代码RATELIMIT_WINDOW120 # 限流时间窗口秒默认 60 RATELIMIT_MAX10 # 窗口内最大请求数默认 20 CORS_URLhttps://your-domain # 收紧跨域来源 DURATION_LIMIT3600 # 单条视频时长上限秒默认 10800完整变量表含外置代理、免费 IP 池等见 docs/run-an-instance.md 的环境变量章节。实例面向公网时建议前置 nginx 之类的反向代理加 HTTPS这也是文档的明确建议。扩展平台新增一个平台的成本是写一个解析模块放进src/modules/processing/services/加一份 URL 匹配规则现有 20 来个平台就是按这个模式组织的。这是会写一点 JS 的开发者才需要碰的部分普通用户用现成的即可。适合谁不适合谁适合每周要存 10 个以上跨平台素材的创作者课程素材、竞品参考、作品备份想把下载嵌进自动化流程的人——NAS 定时任务、Obsidian/笔记库脚本、内容备份管线都需要一个可调用的端点而不是一个按钮在意隐私、不想把下载行为交给第三方服务的人。不适合只偶尔存一两个视频的普通用户——公共实例更省事无需运维期望批量下载某用户主页全部 300 条视频的采集需求——Cobalt 是单链接解析服务批量靠你自己发请求且受速率限制约束把100% 永不失败当硬需求的人——平台反爬是持续的猫鼠游戏个别平台偶发失败需要等维护者跟进这是所有此类工具的共性不是 Cobalt 独有。下一步与社区入口部署遇到问题先看 docs/run-an-instance.md再翻 docs/troubleshooting.md浏览器剪贴板、反向代理等问题都有自查步骤API 行为细节docs/api.md 覆盖了请求/响应字段全集示例配置docs/examples/compose 与 cookie 两份都是可直接改的模板代码层面想动手从 src/modules/processing/ 的平台模块入手最快每个平台一个文件模式统一。项目采用 AGPL-3.0 开源协议clone 仓库后可以直接读源码验证每一处行为。部署命令只有一条docker compose up -d从决定自托管到第一条下载落盘通常不超过十分钟。【免费下载链接】cobaltbest way to save what you love项目地址: https://gitcode.com/GitHub_Trending/cob/cobalt创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考