-
Notifications
You must be signed in to change notification settings - Fork 5
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
弹弹play接口使用政策改版,部分功能不可用,等待弹弹play官方发放应用凭证中 #114
Comments
我刚才看了一下弹弹play的文档,这下事情麻烦了。不仅仅是接口需要登录的问题了,想要登录还需要从弹弹play那里申请的凭证才行,不知道什么时候能申请下来。就算能申请到,作为开源插件,怎么才有可能做到不把凭证明文放在源代码里,这也是一个难以解决的问题。我目前能想到的唯一的办法是用代理服务器代理对弹弹play的请求,然后把凭证放在服务器上。但我也不确实我是否承担得起长期运维一个服务器。
这个接口更新影响真的太大了 |
@dyphire 大佬您对目前怎么解决这个问题有什么建议吗? 我目前能想到的几个方案:
说实话,我感觉这几个方案都有点不尽人意,不是有点难以实现,就是大大削弱了插件的功能 |
按照文档里这么说,如果后面弹弹play启用了强制验证,那方案2、3也都没用了。申请不到应用凭证一切就都无从谈起了。 |
如果要适配弹弹收紧的 API 访问的话影响的不止于此,之前兼容的自定义 api 服务地址功能也将被破坏 |
这个方案看起来已经行不通了😭,对弹弹play的所有api请求1月30号之后都强制要求请求头中包含应用凭证信息 很有可能托管代理服务器是唯一的办法了,一切就只能先看能不能申请到应用凭证了 |
如果是这样的话,我觉得这个脚本的使命也差不多该完结了。弹弹 play 这一举措明显是为其商业化服务的,把 api 收缩限制了,甚至不提供 api key |
确实这个脚本的使命可能差不多该完结了。 我现在申请了应用凭证,尝试苟延残喘一下。如果申请不通过的话,这个仓库确实是使命结束,只能被archive了 |
我觉得实在不行的话我们就自己写个 b 站和巴哈的弹幕获取,反正它们是提供了弹幕 api 的,做下搜索实现就好了。还可以将它们模块化,后期扩展更多站点支持 |
大概的初步想法是先通过 tmdb 的 api 获取中文名及年份类型等数据,然后动画先在巴哈查询,如果没有回退 b 站查询 在此之后可以尝试实现通过
也能一定程度上实现自动化获取,但比起弹弹 play 方案麻烦了很多,优点是扩展性和使用场景增强了 |
好家伙,大佬想法不错,可是 tmdb 和巴哈不是被墙了,弹弹 play 有自己服务器可以拉取,要实现的话,这样还要弄 proxy 吗 |
想要单独实现巴哈弹幕搜索获取的话代理是必须的,其实现在脚本中的巴哈视频播放的弹幕单独获取已经实现过了,本身就需要代理 至于 tmdb 的 api 使用则是这些视频网站对非中文的搜索支持太差了,必须通过 tmdb 来获取中文名再喂给它们才能查询 |
我觉得可以。这个思路的话应该主要是要做一些爬虫的工作,要把巴哈和b站的搜索接口爬下来。我刚才试了一下,这两个网站的搜索接口都不需要登录,也都可以从响应体里拿到可以用来获取cid或sn号的信息,理论上都可以进行爬取。 要不然main分支先不动,等待应用凭证申请。在dev分支上先按照这个思路进行开发。如果这个思路的代码跑通了,就把dev设成主分支或者合并回主分支都行。 |
我的想法也是这样,dandanplay 这个新的应用凭证对于开源项目是很不友好的,无论是硬编码还是反代服务器签名验证都是要放入代码中的,也就避免不了可能的被滥用,服务器添加 UA 和请求头验证也只是多一步伪装罢了 dandanplay 新的 api 策略可以说变相把开源项目毙了 |
唉,这是真的没给开源项目留活路了,弹弹play官方自己推荐的ios和macos客户端还都是开源项目呢。 当然人家为了赚钱也无可厚非,毕竟不是做慈善的。 |
看来是我小人之心度君子之腹了。 那太好了。说实话我最近还要忙毕业设计,精力其实挺有限的。这个时候代码来个底朝天的重构真的吃不消😂 |
https://doc.dandanplay.com/open 弹弹play官方文档更新了 圣弹弹play🙏我为之前怀疑弹弹play开发者开源精神的言论忏悔😭伟大,无需多言 |
我已经拿到弹弹play发放的appid和appsecret @dyphire 大佬,我想和您私下商量一下保密注入appsecret的方案细节,防止被有心之人了解方案反向窃取appsecret。因为我看大佬您github主页没有展示邮箱,不知道大佬您方便给我一个邮箱地址跟您联络一下吗? |
然而实际就是降低了开放程度,并且限制了必须是开发者去申请。如果只是单纯怕被爬,加个频率限制就够了,或者是最终用户自己凭弹弹play账号申请密钥。 |
我的邮箱:[email protected]
只能说考虑欠妥,采用的策略没有那些大型网站的 api 策略成熟,对个人不友好,顺带影响了开源项目 |
@dyphire 大佬,可能要麻烦您检查一下垃圾邮件箱。谷歌邮箱似乎会默认把陌生邮箱发的邮件归到垃圾邮件里去,可能会把我发给您的邮件判定为垃圾邮件 |
一直没收到邮件还以为你比较忙,看了下真被谷歌放入垃圾邮箱了,抽象 |
回复了,你看下有没有收到还是一样进了垃圾邮件( |
没问题,在正常的收件箱里。我正在阅读。 |
我也回复了。麻烦大佬再确认一下这次有没有进垃圾邮件 |
正常接收了 |
@Tony15246 大佬我今天也申请到了appsecret,你需要吗?需要的话我发你 |
多谢好意,你留着私用就好了。目前工作的重点在于尽量防止appsecret被窃取滥用,凭证有一组就足够了,做好保护工作是主要。不过还是谢谢你(´,,•ω•,,)♡ |
好的 |
fix: integration with dandanplay API changes #114
太棒了,又能搜索了 |
fix: integration with dandanplay API changes Tony15246#114
fix: integration with dandanplay API changes Tony15246#114
不用谢(▰˘◡˘▰) 另外,通知所有看到此issue的用户,Release1.2.0及Release1.2.0之前的发行版,都由于弹弹play接口使用政策改版,部分功能无法使用。如果发现插件功能异常,如搜索弹幕总是显示无结果,请拉取或下载主分支最新源代码。 |
辛苦几位了,这几天一直忙着修。顺便问下啥时候有新的发行版 |
本来前几天就想要发布新的发行版了,结果遇上弹弹play更新政策。 我现在有些纠结要不要发布新的发行版,目前的代码大概只能保证2月5号之前不会失效。弹弹play这次更新还没有更完,后续还会有OAuth的更新,到时候现在的接口应该又会失效,需要重新适配。我希望发行版应该是能比较稳定无太多bug的版本,但目前在弹弹play不断更新接口的情况下,发布的发行版不知道是什么时候就会失效;另一方面确实也长期没有发布新的发行版了。所以现在的情况我有点两难。 update:这样吧,我这两天发行一个预发行版,等弹弹play接口稳定下来了发布正式发行版 |
我建议等接口稳定下来再发版,这几天我准备实施下之前提到的对非动画资源的弹幕支持,已经有初步思路了
嗯,预发布包可行 |
目前的方案其实也只是避免了appid appsecret泄露,二进制程序还是可能被有意者盯上用来爬数据,频繁调用导致凭证被官方封停, 这接口政策对开源应用太难了 |
原始的 python 实现是可以避免滥用的,它会检测父进程名称是否在白名单内。但 python 打包太不优雅了,而新的 go 中的实现没有父进程白名单检测功能 |
检测父进程名称是否为mpv吗,能一定程度上防止滥用,但是写个mpv的lua脚本去爬数据也不是啥难事,没法完全防住, |
自然是防不住别有用心之人,只是尽可能增加滥用难度罢了 |
增加了父进程名称检查,限定为mpv时才附加凭证 注意:编译的命令变了: |
原白名单里其实还有一些常见的支持脚本的基于 libmpv 的播放器,例如 mpvnet、implay、tsukimi、smplayer 和 iina 等 |
curl测试调用,验证用户权限失败
查了下文档,确实要登录权限了
The text was updated successfully, but these errors were encountered: