CanvasToAPI:把Gemini Canvas包装成API,独立额度一天能调上千次,一体化部署暂时搞不定

看到@yeahhe大佬测试说Gemini Canvas额度挺多,而且是独立的,就想试试用AIStudioToAPI那种方式调。结果发现Gemini页面的cookie掉得飞快,根本没法长期用,所以换了种部署方式,现在改成服务端不管auth登录了,分体式部署。

仓库在这儿:```
flowchart LR
subgraph Client[“客户端”]
U[“外部调用方
OpenAI / Gemini / Anthropic 接口”]

    subgraph UserBrowser["用户自己管理的浏览器"]
        UB["浏览器里的 Canvas App 页面"]
    end
end

subgraph Server["服务端"]
    API["HTTP API 路由"]
    RH["格式转换 / 流式处理"]
    SR["浏览器会话管理 / 路由"]
end

subgraph Target["目标站点"]
    G["Gemini 官方 API"]
end

U --> API
API --> RH
RH <--> SR
UB <--> SR
UB --> G

### 这个Canvas反代有啥特别的
- **支持的模型**:Gemini 2.5 Flash、Gemini 3 Flash Preview、Gemini 2.5 Flash Image Preview、Imagen 4,还有Gemini 2.5 Flash Preview TTS。Pro和Flash Lite模型不行。
- **额度独立**:跟Gemini网页还有AIStudio的额度是分开的。
- 测试了一下Gemini 3 Flash Preview,一个非Pro号一小时调了**1300多次**,还没到上限。
- 不支持流式请求,也不支持联网搜索。

### 其他功能
- 能轮询或者随机调用
- 支持Open AI(包括Response格式)、Gemini、Anthropic这些接口
- 支持工具调用和结构化输出
- 服务端现在不负责auth(cookie)了,需要用户自己手动登录
- 服务端支持本地、docker、claw部署
- 默认开了个“假流式”:把客户端发来的流式请求转成非流式的处理。

### 一些技术细节
`chrome://flags/#local-network-access-check`

### 可能遇到的问题
- 如果用Nginx,记得开Websocket支持,具体看readme里写的。
- 浏览器Websocket连不上:改完配置记得保存,服务器那边要能ws连接。如果反代在云服务器上,必须配https,用wss去连反代。本地的话可以用ws。
- 报401错误:检查下是不是登录失效了,或者用了联网搜索(不支持),或者选了不支持的模型、参数。可以试试刷新重连,或者换个号登录。

一体化部署的代码在[integrated分支](https://github.com/iBUHub/CanvasToAPI/tree/integrated),暂时还没搞定Gemini cookie老过期的问题。

如果Gemini Canvas的分享链接又被删了,就用这个[源码](https://github.com/iBUHub/CanvasToAPI/blob/main/scripts/client/canvas.html)自己去Gemini网页上建一个Canvas吧,现在一公开就容易被举报掉。

用Chrome当浏览器端的话,在地址栏输入`Disabled`,改成,然后再用ws去连本地服务端。

这东西就那样,别指望太稳定。

小白问一下,这个独立额度是指每天都能免费调很多次吗?我看说一天上千次,是不是真的不用花钱啊?我不太确定理解得对不对。

详细说一下“假流式”是怎么实现的?是把整个回复缓存完了再一点点吐出来吗?还有,如果客户端发来的是标准OpenAI流式请求,服务端的转换逻辑具体是怎么处理的,会不会有比较大的延迟或者丢消息的风险?

mark一下,等有空了研究研究。

我是按照readme一步步来的,但docker部署后浏览器端一直连不上服务端的ws。log里就报connection refused。我检查了防火墙,端口也是对的。后来发现是我docker run的时候-p参数只映射了http的端口,忘了把ws的端口也映射出去。改完命令重启容器就好了。另外,那个chrome的flag改了好像没生效,后来发现改了flag后必须完全关闭Chrome再重新打开才行,只关标签页没用。

又来这种帖子了,一看就是拿不稳定接口折腾,过两天官方一改版或者封掉Canvas分享链接,所有部署都得崩。有这功夫不如直接买个正经的API key,省心省力。

之前试过AIStudioToAPI,也是cookie掉得飞快,根本没法用,每次都得手动登录,烦死了。看这个方案是把认证压力甩给用户自己的浏览器了,理论上服务端是省事了,但每个想用的人都得自己开个浏览器挂着,也挺麻烦的。不知道有没有可能用puppeteer之类无头浏览器自动维护登录状态,虽然可能更复杂。

哇,这项目太酷了!感觉能低成本玩转大模型了。楼主加油,期待一体化部署早日搞定!顺便问下,大家最近有什么好玩的AI项目推荐吗?想多学学。