
Cobalt 自托管实例如何配置 cookies.json 以支持需要登录的下载服务【免费下载链接】cobaltbest way to save what you love项目地址: https://gitcode.com/GitHub_Trending/cob/cobalt自托管 cobalt 实例时部分服务要求携带账号的登录状态才能访问其公开内容。自托管文档给出的做法是在docker-compose.yml所在目录创建cookies.json文件并让 API 容器通过COOKIE_PATH环境变量指向它。本文按文档推荐的 docker compose 部署方式给出从创建 cookies 文件、修改 compose 配置到启动验证的完整路径。准备 cookies.json 文件文档指明示例 cookies 文件位于 cookies.example.json。先将其放到你存放docker-compose.yml的目录例如cobalt/下文件命名为cookies.json。示例文件结构如下{ instagram: [ midreplace; ig_didwith; csrftokenyour; ds_user_idown; sessionidcookies ], instagram_bearer: [ tokentoken_with_no_bearer_in_front, tokenIGT:2:looks_like_this ], reddit: [ client_idreplace_this; client_secretreplace_this; refresh_tokenreplace_this ], twitter: [ auth_tokenreplace_this; ct0replace_this ] }结构约定以示例文件为准顶层键是服务名示例中出现了instagram、instagram_bearer、reddit、twitter四个条目每个服务对应一个字符串数组数组里每项是一条 cookie 字符串每条 cookie 字符串由keyvalue键值对组成键值对之间用;分隔所有...形式的值都是占位符必须替换为你自己的真实 cookie 值。文档没有提供这些值的获取步骤你需要从对应服务的账号会话中取得各服务需要哪些字段以示例文件列出的键名为准。只为你实际要支持的服务写入对应条目即可无需为不使用的服务填写。在 docker-compose.yml 中挂载并启用 cookies以 docker-compose.example.yml 为基础。该示例默认把 cookies 相关行注释掉了启用时在cobalt-api服务下做两处取消注释示例文件中的注释原文即说明了这一点。取消注释后cobalt-api服务的相关部分如下cobalt-api: image: ghcr.io/imputnet/cobalt:7 restart: unless-stopped container_name: cobalt-api init: true ports: - 9000:9000/tcp environment: # replace https://api.cobalt.tools/ with your instances target url in same format API_URL: https://api.cobalt.tools/ # replace eu-nl with your instances distinctive name API_NAME: eu-nl # if you want to use cookies when fetching data from services, uncomment the next line and the lines under volume COOKIE_PATH: /cookies.json volumes: - ./cookies.json:/cookies.json对应需要替换或确认的项API_URL示例注释要求替换为你的实例目标 URL保持同样的https://.../格式这是运行 API 的必填项API_NAME替换为你的实例名COOKIE_PATHcookies 文件路径示例取容器内路径/cookies.json。环境变量表中的说明是cookie 文件相对主目录的路径docker 示例中即为/cookies.jsonvolumes中的./cookies.json:/cookies.json把 compose 文件同目录下的cookies.json挂载进容器。注意./cookies.json是相对docker-compose.yml所在目录的路径因此 cookies 文件必须与 compose 文件放在同一目录。示例配置中 cookies 相关项只出现在cobalt-api服务下cobalt-web服务无需做对应改动。启动实例并验证结果在docker-compose.yml所在目录启动或重启以应用改动docker compose up -d验证分两步接口依据见 api.md确认 API 服务在运行curl https://你的API_URL/api/serverInfo该 GET 请求返回当前服务器信息字段包括version、commit、branch、name、url、cors、startTime。能返回这些字段说明 API 实例已正常提供服务。你的API_URL替换为 compose 中配置的API_URL末尾斜杠可去掉。用需要登录才能访问的链接实际请求一次下载接口。文档要求每次POST /api/json请求都必须带Accept与Content-Type头curl -X POST https://你的API_URL/api/json \ -H Accept: application/json \ -H Content-Type: application/json \ -d {url: 需要登录才能访问的媒体链接}按 api.md 的响应定义判断结果status字段可能为error / redirect / stream / success / rate-limit / pickertext字段主要用于错误信息url字段是文件直链或 cobalt 的 live render 链接。请求被正常处理时会得到redirect、stream或success之一且url指向文件若返回status: error结合text中的错误文本排查。文档未给出 cookie 失效时的特定错误文案因此不能仅凭某个具体报错断定是 cookies 配置问题。边界与限制实例如果直接面向公网文档强烈建议使用反向代理如 nginxcompose 示例中为此预留了注释端口行如127.0.0.1:9000:9000替代9000:9000/tcp启用反向代理时按注释说明替换。示例 compose 中的 watchtower 服务会自动更新 cobalt 镜像即cobalt package will update automatically thanks to watchtowercookies 文件位于宿主机目录镜像更新不受影响。文档中的 cookies 配置仅出现在 docker compose 章节使用npm run setupnpm start的本地 node.js 部署路径要求 node.js 18 及以上未在文档中说明 cookies 用法本文不覆盖该路径。修改cookies.json内容后无需改 compose 配置但修改docker-compose.yml如启用COOKIE_PATH、volumes或替换API_URL后需要重新执行docker compose up -d使容器按新配置重建。【免费下载链接】cobaltbest way to save what you love项目地址: https://gitcode.com/GitHub_Trending/cob/cobalt创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考