研究了一下哔哩哔哩的大会员表情功能

2016-10-10 23:33:10 +08:00
 zhihaofans

尝试了能否非会员发表情,发现他的表情在发送时是以"[暴走漫画_把持不住]"的形式发送的,然后我通过他的接口手动发送了"[暴走漫画_把持不住]",刷新一看发现他将"[]"强制替换成了" [] ",看了一会他的 Js 文件还没研究出他是用 js 替换的还是服务器后端替换的。

现在有个疑问:有没有办法不让他将"[]"替换成" [] "呢?

6906 次点击
所在节点    JavaScript
19 条回复
dphdjy
2016-10-10 23:39:45 +08:00
估计如果不是客户端处理就是服务端根据用户是否 VIP 来处理,第二种无力
zhihaofans
2016-10-10 23:47:38 +08:00
用手机看发现我说的 2 个中括号变成了一样的(不知道是不是浏览器问题),我说的 2 个中括号分别是英文的中括号和中文的中括号


@dphdjy
他在加载页面时载入了一个叫 vip.Plugin.js 的文件。我明天起床再研究一样
nlzy
2016-10-10 23:51:00 +08:00
直接把评论 post 到服务器呢?
zhihaofans
2016-10-10 23:57:16 +08:00
@nlzy 我一开始就说了呀,通过他的接口发送(评论)结果照样被强制替换了
zhihaofans
2016-10-10 23:57:53 +08:00
@nlzy 想了一样,应该是服务端替换了
zhihaofans
2016-10-10 23:58:07 +08:00
@nlzy 一样→一下
nlzy
2016-10-11 00:03:15 +08:00
@zhihaofans 抱歉,没仔细看。
pungis
2016-10-11 00:05:29 +08:00
比起这个更应该研究 1080P 怎么获取
<accept_format>mp4,hdmp4,flv,hdflv2</accept_format>
<accept_quality>4,3,2,1</accept_quality>
应该就是 playurl?quality=4

直接发这个请求能不能获取到 hdflv2 的视频地址?
zhihaofans
2016-10-11 00:14:49 +08:00
@pungis
网上不是传言说 1080 是假的吗?
我明天研究研究,现在在床上了
devzero
2016-10-11 00:48:04 +08:00
远古手机端表示 post 上去的是“[]”,刷新后就变成了“ [] ”
devzero
2016-10-11 00:49:28 +08:00
第二个是中文中括号 @devzero
susucoolsama
2016-10-11 09:44:13 +08:00
表示坐等楼主成果。
Karblue
2016-10-11 10:04:45 +08:00
不用想了。肯定是服务端过滤。客户端过滤还一年 233 侮辱智商吗
zhihaofans
2016-10-11 10:06:12 +08:00
@Karblue 也是=.=我还是来研究 1080p 吧
zhihaofans
2016-10-11 18:37:34 +08:00
@pungis 研究了一下你发的这个,下面不是有所有画质的视频链接吗(可以直接在播放器在线看的链接)?
pungis
2016-10-11 19:20:53 +08:00
@zhihaofans 哪个有所有画质? av 号报出来
正常来说默认是超清, .flv 的, quality=3 或者省略
其他的需要点击对应画质切换,会发出不同 quality=的请求,mp4 或 hd.mp4
现在这个多出来的 hdflv 还没看到

你找一个新的有高画质的视频试试,比如 av6624125
zhihaofans
2016-10-11 19:37:37 +08:00
@pungis
我研究是 av6629077

抓包找到这个地址 ↓
https://bangumi.bilibili.com/player/web_api/playurl?cid=(视频 id ,不是 av***)&module=bangumi&player=1&quality=(视频质量,整数,一般为 1-4)&ts=(unix 时间戳)&sign=(认证签名)

这个地址返回了你发的那个 ↓
<accept_format>mp4,hdmp4,flv,hdflv2</accept_format>
<accept_quality>4,3,2,1</accept_quality>

然后往下一看就有视频链接
<durl>
<order>1</order>
<length>361982</length>
<size>78690463</size>
<url><![CDATA[http://cn-gdgz6-cmcc.acgvideo.com/vg6/d/a1/10787909-1.flv?expires=1476200100&ssig=An43cMqaUj6pwasmRfDHIw&oi=3085847589&rate=0]]></url>
<backup_url>
<url><![CDATA[http://cn-gdsz-cmcc-v-01.acgvideo.com/vg7/a/a6/10787909-1.flv?expires=1476200100&ssig=CNLPRVms-jNUr9iWtYwywA&oi=3085847589&rate=0]]></url>
<url><![CDATA[http://cn-gdgz2-cmcc.acgvideo.com/vg2/8/30/10787909-1.flv?expires=1476200100&ssig=n1LjEiAzTmQB_3QQsL9tJw&oi=3085847589&rate=0]]></url>
</backup_url>
</durl>

我现在碰到的问题就是,怎样获取我上面发的那个地址里的“ sign=(认证签名)”
zhihaofans
2016-10-11 19:39:54 +08:00
上接#17 的内容

“ sign=(认证签名)”无论在抓包得到的数据、网页代码或者 js 文件里都找不到
pungis
2016-10-11 22:08:36 +08:00
@zhihaofans 你那就是超清,.flv 的
sign 计算在 flash 里,把它拆了就能得到了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/311751

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX