Skip to content

使用Netlify反向代理巴哈姆特和TMDB API,辅助danmu_api/LogVar项目直连获取巴哈姆特弹幕

License

Notifications You must be signed in to change notification settings

wan0ge/bahamut-api-proxy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 

Repository files navigation

bahamut-api-proxy

使用Netlify反向代理巴哈姆特api,实现danmu_api项目国内直连获取巴哈姆特弹幕,适应国内机子/Docker部署后无法直连获取巴哈弹幕又不方便配置代理的场景,附带喂饭式教程🥰

请不要过度宣传Netlify的反代功能


Note

beta分支已经支持不同路径的多个反代,实现同时反代巴哈和TMDB,有需要可以使用

使用方法1:复刻的时候取消勾选Copy the main branch only(仅复制 main 分支),然后在netlify部署的时候选择beta分支: image

使用方法2:使用beta分支的一键部署按钮

使用方法3:复制beta分支的netlify.toml和bahamuts.ts文件内容到自己仓库修改创建,并netlify更新部署

目录(点击跳转)


前置准备


适合专业宝宝的极简教程(本来就很简单)

请看二叉树树佬博客教程:Netlify、Vercel反代网站 - AcoFork Blog

巴哈api为:https://api.gamer.com.tw

使用方式请看:LogVar弹幕项目的具体使用方法


一键部署反代

点击以下按钮即可将本项目快速部署到 Netlify 实现巴哈姆特api的反代:

使用一键部署时Netlify分配的是随机域名/项目名,建议部署完毕后点击“Quick setup”重新设置项目名/域名。 image

使用方式请看:LogVar弹幕项目的具体使用方法


复刻后部署反代(推荐)

咕(?

点击本项目右上角Fork按钮简单填写信息后跳转到手动创建教程的 4.打开netlify使用github一键登录或者注册登录后导入我们刚刚创建/复刻的github仓库 部分开始即可


手动创建仓库部署反代(推荐)

1.先在github新建一个仓库

image image

↑这个界面内容都可以随意填

2.然后开始创建netlify.toml配置文件

image image

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"
image

github配置部分就到此结束了,恭喜你成功创建了一个netlify配置文件🥳

4.打开netlify使用github一键登录或者注册登录后导入我们刚刚创建/复刻的github仓库

image

↑如果你是netlify新用户没有项目的情况下,这个页面会有一个很大的区域提示让你导入github项目开始

image

↑授权部分一路默认点绿色的按钮允许就行了

image

5.为它在netlify命名/创建域名

image

6.其他都不用管直接下滑到底部确认

image

7.等待十秒后就部署反代成功了,绿色部分为你创建并待会要使用的域名

image

使用方式请看:LogVar弹幕项目的具体使用方法


LogVar弹幕项目的具体使用方法

使用PROXY_URL环境变量使用(LogVar版本>1.6.8):

使用PROXY_URL环境变量使用,值为bahamut@你通过netlify获取的反代后的域名

示例:PROXY_URL=bahamut@https://123.netlify.app

然后开始使用即可,恭喜你实现了直连获取巴哈弹幕🥳

image

另外现有的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

Netlify、Vercel反代网站 - AcoFork Blog

巴哈姆特動畫瘋

About

使用Netlify反向代理巴哈姆特和TMDB API,辅助danmu_api/LogVar项目直连获取巴哈姆特弹幕

Resources

License

Stars

Watchers

Forks