使用Netlify反向代理巴哈姆特api,实现danmu_api项目国内直连获取巴哈姆特弹幕,适应国内机子/Docker部署后无法直连获取巴哈弹幕又不方便配置代理的场景,附带喂饭式教程🥰
请不要过度宣传Netlify的反代功能
Note
beta分支已经支持不同路径的多个反代,实现同时反代巴哈和TMDB,有需要可以使用
使用方法1:复刻的时候取消勾选Copy the main branch only(仅复制 main 分支),然后在netlify部署的时候选择beta分支:
使用方法2:使用beta分支的一键部署按钮
使用方法3:复制beta分支的netlify.toml和bahamuts.ts文件内容到自己仓库修改创建,并netlify更新部署
- 一个 GitHub 账号
- 一个 netlify 账号(可以使用 GitHub 登录)
- 推荐使用GitHub 中文化插件和Netlify 汉化脚本油猴脚本
请看二叉树树佬博客教程:Netlify、Vercel反代网站 - AcoFork Blog
巴哈api为:https://api.gamer.com.tw
使用方式请看:LogVar弹幕项目的具体使用方法
点击以下按钮即可将本项目快速部署到 Netlify 实现巴哈姆特api的反代:
使用一键部署时Netlify分配的是随机域名/项目名,建议部署完毕后点击“Quick setup”重新设置项目名/域名。
使用方式请看:LogVar弹幕项目的具体使用方法
咕(?
点击本项目右上角Fork按钮简单填写信息后跳转到手动创建教程的 4.打开netlify使用github一键登录或者注册登录后导入我们刚刚创建/复刻的github仓库 部分开始即可
1.先在github新建一个仓库
↑这个界面内容都可以随意填
2.然后开始创建netlify.toml配置文件
3.创建一个文件名为 netlify.toml 内容为以下内容的文件
[[redirects]]
from = "/*"
to = "https://api.gamer.com.tw/:splat"
status = 200
force = true
[redirects.headers]
User-Agent = "Anime/2.29.2 (7N5749MM3F.tw.com.gamer.anime; build:972; iOS 26.0.0) Alamofire/5.6.4"
Content-Type = "application/json"
github配置部分就到此结束了,恭喜你成功创建了一个netlify配置文件🥳
4.打开netlify使用github一键登录或者注册登录后导入我们刚刚创建/复刻的github仓库
↑如果你是netlify新用户没有项目的情况下,这个页面会有一个很大的区域提示让你导入github项目开始
↑授权部分一路默认点绿色的按钮允许就行了
5.为它在netlify命名/创建域名
6.其他都不用管直接下滑到底部确认
7.等待十秒后就部署反代成功了,绿色部分为你创建并待会要使用的域名
使用方式请看:LogVar弹幕项目的具体使用方法
LogVar弹幕项目的具体使用方法
使用PROXY_URL环境变量使用,值为bahamut@你通过netlify获取的反代后的域名
示例:PROXY_URL=bahamut@https://123.netlify.app
然后开始使用即可,恭喜你实现了直连获取巴哈弹幕🥳
另外现有的TMDB API也是支持直连的,巴哈姆特重度使用用户建议配置,配置方法详见弹幕项目的
TMDB_API_KEY环境变量部分
反代后在使用过程中有很小的概率会出现如下报错
- URL: https://123.netlify.app/......
- 错误类型: TypeError
- 消息: fetch failed
- 码: undefined
- 原因: [object Object]
fetchBahamutEpisodeDanmu error: {
message: 'fetch failed',
name: 'TypeError',
stack: 'TypeError: fetch failed\n' +
' at Object.processResponse (node:internal/deps/undici/undici:7188:34)\n' +
' at node:internal/deps/undici/undici:7516:42\n' +
' at node:internal/process/task_queues:140:7\n' +
' at AsyncResource.runInAsyncScope (node:async_hooks:202:9)\n' +
' at AsyncResource.runMicrotask (node:internal/process/task_queues:137:8)\n' +
' at process.processTicksAndRejections (node:internal/process/task_queues:95:5)'
}
原因暂时不明可能是触发了反代防御措施,只需要立即重试即可重试不会报错,后续会针对这个报错让搜索尝试自动重试。
附赠我自用的Linux/Openwrt本地部署LogVar智能更新脚本:update_danmu_api.sh
不扔给AI改动的话需要配合init.d启动文件使用不然不会更新后重启:init.d/danmu_api
支持设置多个代理地址、支持钉钉Webhook推送、支持检测暂存本地修改文件并还原
需要自己为脚本加定时运行,Openwrt可以使用定时任务:
0 1,13 * * * /bin/ash /root/danmu_api_web/update_danmu_api.sh(每天凌晨1点下午13点运行一次)
记得更改所有路径位置为你自己的路径位置,update_danmu_api.sh里面要改
PROJECT_DIR,启动文件init.d要改APP
使用巴哈API的你一定很喜欢动画和弹幕,所以我要在这里给迄今为止最庞大的动画API弹弹play做个公益广告w 欢迎喜欢动画,喜欢弹幕文化的来为弹弹play做黑奴做贡献
贡献教程:教程
Netlify大善人 通过反代获得公网IPV4?_哔哩哔哩_bilibili