Cobalt 可解析、支持的平台众多,作者实测 YouTube、Bilibili、X/Twitter、Twitch、Tiktok 、Instagram、Reddit 等均可顺利解析、下载。同时,Cobalt 支持自托管部署,最新版本(10)提供有 api (后端/backend)docker 镜像,尚未发布 cobalt 10 前端镜像。历史版本 cobalt 7 则提供了完整的 api 和 web 模块。高级用户可以私有化部署 api 服务端,并通过前端(cobalt.tools 站点)提交,作为自定义处理服务器。私有化部署的主机应确保至少应放行 9000 端口或其他用于 api 通讯的端口。对于前端确有需求的开发者或爱好者,可以使用旧版本(7)docker 镜像,或者 git clone 后,在 node.js 环境中部署。docker 加速镜像几乎全部失效,可订阅「嘀嗒云」解决 docker.io、ghcr.io 等仓库的连接问题。
私有化部署最新版本[API版本]
在默认已安装 docker、docker-compose 的前提下,首先,创建 cobalt-api 服务定义配置文件。
#创建文件夹
mkdir /opt/cobalt
#进入文件夹
cd /opt/cobalt
#新建并编辑文件
vim docker-compose.yml
docker-compose.yml 文件内容参考如下,可直接拷贝并修改 URL 使用。本配置中的两项服务 cobalt-api 和 watchtower,watchtower 服务配置块为可选,可整体删除。watchtower 默认监听端口为 8080,可通过环境变量修改 。
services:
cobalt-api:
image: ghcr.io/imputnet/cobalt:latest
restart: unless-stopped
container_name: cobalt-api
init: true
ports:
- 9000:9000/tcp
# if you're using a reverse proxy, uncomment the next line and remove the one above (9000:9000/tcp):
#- 127.0.0.1:9000:9000
environment:
API_URL: "http://cobalt.example.com/"
# if you want to use cookies when fetching data from services, uncomment the next line and the lines under volume
# COOKIE_PATH: "/cookies.json"
# see docs/run-an-instance.md for more information
labels:
- com.centurylinklabs.watchtower.scope=cobalt
# if you want to use cookies when fetching data from services, uncomment volumes and next line
#volumes:
#- ./cookies.json:/cookies.json
# update the cobalt image automatically with watchtower
watchtower:
image: ghcr.io/containrrr/watchtower
restart: unless-stopped
command: --cleanup --scope cobalt --interval 900 --include-restarting
volumes:
- /var/run/docker.sock:/var/run/docker.sock
之后,在 cobalt 目录下用Docker-compose启动容器。
docker compose up -d
#docker-compose up -d
缺失 docker compose 命令时,应安装 docker-compose-plugin。要停止并删除 cobalt 容器以及 cobalt 自定义网络,可使用如下命令。
docker compose down
#docker-compose rm -f
#docker rm -f $(docker ps -a)
docker network prune -y
同时,需要在 cobalt.tools 中打开『Settings』,在『Instance』下启用『use a custom processing server』,输入自定义的服务端(api 容器)URL 并提交。前文直接使用官方站点在线下载峰值速度可达 30Mbps,私有化部署的下载速度取决于 api 服务部署主机和下载端的网络环境。
完整私有化部署
完整私有化部署要分别定义 api 和 web 服务,也就是需要加载两个容器。过程与使用最新版本部署 api 完全相同,仅服务定义文件 docker-compose.yml 有所区别。编辑适合自身网络环境和需求的服务定义文件时,应注意以下几点:
- IP 或域名均可使用,但 API IP 必须为公网 IP ,支持 IPv6
- WEB IP 如无公网访问需求,可为内网 IP
- 注意修改镜像名称,cobalt 仅部分版本提供适配 armv7、arm64 平台的镜像
- 支持 http、https,建议使用 https,仅私人访问可使用自签证书
- 建议使用域名而非 IP,并提前配置好 DNS 解析
- 如果部署于境外主机,建议使用 nginx、caddy 等进行反向代理,定义文件中应去掉端口号
- 最新版本 10 部署 api,混搭版本 7 部署 web 未经验证,谨慎使用
version: '1.0'
services:
cobalt-api:
image: ghcr.io/imputnet/cobalt:7
restart: unless-stopped
container_name: cobalt-api
init: true
tty: true
ports:
- 9000:9000/tcp
environment:
# 私有化部署的主机IP或域名
API_URL: "http://public_ip_or_domainname:9000/"
API_NAME: "cobalt-api"
# 如需开启cookie,则打开下一行,并删除volumes注释
# COOKIE_PATH: "/cookies.json"
#volumes:
#- ./cookies.json:/cookies.json
cobalt-web:
image: ghcr.io/imputnet/cobalt:7
restart: unless-stopped
container_name: cobalt-web
init: true
tty: true
ports:
- 9001:9001/tcp
environment:
# web主机IP或域名
WEB_URL: "http://ip_or_domainname:9001/"
# api主机ip或域名
API_URL: "http://public_ip_or_domainname:9000/"
编辑好 docker-compose.yml 后,运行 docker compose up -d 命令,docker 将自动拉取镜像,并按照定义文件创建 cobalt-api、cobalt-web 两项服务。
容器加载后,我们就可以通过域名或 IP 地址访问前端 web,并正常下载视频资源。示例使用了 http 协议,并添加 DNS AAAA 记录指向内网盒子。
至此,就完成了使用 cobalt 7 镜像进行完整私有化部署的任务。如果需要采用最新版本,应 git clone 所有代码,在配置好的 node.js 环境下部署 。
最后,特别提示,无论使用何种下载工具下载何种资源,务必尊重版权,严格遵守内容协议、遵照原创声明对每个人都有好处。
暂无评论内容