发布网友 发布时间:2022-04-23 13:30
共3个回答
热心网友 时间:2022-04-20 05:17
首先是bilibili的播放器。bilibili的播放器主要有两个,一个内站播放器
https://static-s.bilibili.tv/play.swf?cid={cid}&aid={aid}另一个是外站播放器http://static.hdslb.com/miniloader.swf?aid={aid}&pid={pid}其中aid就是article id的意思,或者说就是视频的av号;而pid是page id的意思,也就是说视频的第几个分页;而cid是chat id的意思,每个chat id对应一组弹幕池和。然后我们先说第一个内站的播放器。播放器要播放视频显然要先找到视频的内容的地址,这是我们最为关心的。无论你是靠反编译还是截取网络数据包,都可以看到这个播放器访问了http://interface.bilibili.cn/playurl?cid={cid}以获取视频内容的地址,然后加载这些视频并播放。我们再看后面那个外站播放器。参数里面没有cid,那他是怎么加载视频内容的地址的呢?如果你再用同样的方法进行分析,你会发现他实际上还是访问了上面说到的那个地址。那他是怎么获取cid的呢?他获取cid是通过http://api.bilibili.cn/view?type=json&id={aid}......的一个链接获取到的。所以到现在我们基本可以明白bilibili视频的播放,主要依赖于cid和上面提到的那个playurl的链接。----然后我们要讨论的问题是关于手机客户端的了。众所周知地,那些其他视频网站的播放器折腾半天也只是在网页上,而手机客户端上看来这些视频和其他的别无两样。而分析数据包可以轻松地知道手机客户端访问的还是上面提到的那个playurl的链接。最后我们回到问题本身。----所以问题就简化为了,只要找到最上面提到的内站播放器需要的cid,那么就可以用那个播放器播放视频了。于是问题变成了如何查找cid。之前我们说过了,cid被用来表示某个视频对应那组弹幕池。所以只要有弹幕的视频就肯定有一个cid。事实上,那些其他视频网站的播放器的视频也需要一个cid才能加载弹幕。所以我们可以轻松地从给flash的参数里面找到cid。当然,除了这个方法外,还有其他很多方法,比如:通过api获取:请参考http://docs.bilibili.cn/wiki/API.view通过下载弹幕页面的链接获取:http://www.bilibili.tv/ass/{aid}.html(下载弹幕页面已死)通过iOS用网页端接口获取:http://www.bilibili.tv/html5?aid={aid}&page={pid} (挂掉过一段时间,现在又恢复了)当然,还有一些脚本是访问了脚本作者搭建的服务器以获取cid。只有你可以放心该脚本的行为时使用这样的脚本。然后只要把flash换成上面说的那个内站播放器的就好了。---但是有些视频是不能替换的,这些视频一般都是因为在playurl那一步无法获取视频的内容所导致的。所以这导致的结果就是,一般来说,某站点的视频都是转天转投新浪后才可以看的,不过最近似乎转投视频源从sina变成local了,别问我为什么。---最后是一些替换之后的善后工作。在加载http://static.hdslb.com/js/page.arc.js脚本时,会根据当前是不是原生播放器而做一些事情,所以替换后需要再手工执行相应的函数。
热心网友 时间:2022-04-20 06:35
1. B站自己的flash弹幕播放器是后台直接调用别的网站的视频的,也就是用了别人带宽,没放别人广告。这个播放器比较稳定了。
2. 百度乐视现在和B站达成协议,用了联合开发的flash播放器,可以放广告也可以发弹幕。这个播放器是放在百度乐视那边的,目前还不稳定,经常崩溃和load不出。
3. B站还有自己的手机用播放器,没有了flash的保护,是必须直接拿到视频地址才能播放的,用1这种播放器的视频很容易解决,用了2这种的视频,只有用B站自己的服务器存视频,或者直接调用视频地址。
4. 手机可以直接拿到视频地址,那么破解一下看看是怎么拿到的,然后做个js脚本模拟手机拿到这个地址,然后和B站自己的flash弹幕播放器组合一下,这就是黑科技了。实际上一般情况下,搞到cid,传给B站自己的flash弹幕播放器,就可以了。现在看到的黑科技基本都是这样的。
热心网友 时间:2022-04-20 08:10
黑科技是在《全金属狂潮》中登场的术语,原意指倾听者所拥有,但是非人类自力研发;凌驾于人类现有的科技之上的知识,引申为以人类现有的世界观无法理解的猎奇物。 也可泛指某些技术宅自制的杀伤性科技,例如激光*,电磁炮,原子弹等。黑科技(原生)远超越现今人类科技或知识所能及的范畴,其科学技术或者产品缺乏科学根据且违反自然原理。黑科技(原生)也可以指那些在现实生活中看起来不可能存在的科学技术。如动画或小说中,为使剧情合理化而空想出来的科学技术,这些技术大多没有理论依据,有些纯粹是胡扯,如Seed中的阳电子破城炮、高达中的GN粒子、魔禁、超炮中的railgun等;在游戏中,黑科技又被赋予了不同的解释,一般指的是游戏因某些特殊原因(诸如游戏漏洞、作弊码等)导致玩家能够突破现有的游戏公平原则,从而获得胜利;也可以指在游戏中(多为卡牌游戏、即时战略游戏)玩家打破常规思路,采用取巧的令人意想不到的出其不意、匪夷所思的玩法和战术,从而使对手摸不着头脑,进而获得游戏的胜利。通常情况下,当前人类无法实现或根本不可能产生的技术或者产品统称为“黑科技”,其标准是不符合现实世界常理以及现有科技水平,如*或神秘组织未公开的科技,像SARS AIDS(HIV)之类以及其变种。可引申为现实中某些超乎寻常厉害的事或物。原生的黑科技,其含义相当于天顶星科技,而黑科技这一原生词就是由天顶星科技这一用语的含义衍生出来的;但要注意的是它们的起源作品是不同的,天顶星科技的起源作品是超时空要塞,而黑科技的起源作品则是全金属狂潮。