首页 > 编程知识 正文

怎么获取bilibili视频链接,视频链接获取

时间:2023-05-03 22:46:35 阅读:188945 作者:736

如果是为了下载B站视频呢,直接用 You-get,然而,我们的需求就是要在线看B站视频(清晰度要求不高),要求内嵌在自己的程序中,直接观看,加载速度要快!那先下载再预览绝对是不行了。只能尝试去获取播放源地址

如果你对这方面有兴趣,可以和我们一群程序员交流学习,共同进步

695623459

获取播放源地址的过程很曲折,移动端抓包,PC-web端分析,后来,发现一个网站,终于找到了一线希望。

就是ibilibili.com了
这个网站的功能呢,就是很方便的让你获取B站视频的下载地址,同时,它还会有一个播放器供你预览。有多方便呢?
这是一个B站视频的链接,视频id是49023450
https://www.bilibili.com/video/av49023450
sxdfy在bilibili前面加个i时,类似下面,你就直接获取到你想要的了
https://www.ibilibili.com/video/av49023450

很明显,这就是直接拿到播放源地址了,这是我们达到目标的捷径无疑了。
查看源代码,将无用数据都删光!
看到了赤裸裸的××

<!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><script src="http://cdn.staticfile.org/jquery/1.9.1/jquery.min.js"></script><body><div id="vd"></div><audio id="player" autoplay="autoplay"></audio><script> function callbackfunction(j){var u = j.durl[0].url;$("#vd").html('<video width="680" height="376" src="'+u+'" preload="auto" autoplay="" controls="" class="embed-responsive-item"></video>')$("#page1").attr("href",j.durl[0].url); } function parseVideo(page){$.getScript("http://api.bilibili.com/playurl?callback=callbackfunction&aid=49619819&page="+page+"&platform=html5&quality=3&vtype=mp4&type=jsonp"); } parseVideo(1)</script></body></html>

看到了吧,首先通过B站的一个接口,拿到播放源的信息
aid 就是 avid,视频id

function parseVideo(page){ $.getScript("http://api.bilibili.com/playurl?callback=callbackfunction&aid=49619819&page="+page+"&platform=html5&quality=3&vtype=mp4&type=jsonp");}

response

callbackfunction({"from": "local","result": "suee","quality": 6,"format": "mp4","timelength": 268633,"accept_format": "mp4","accept_quality": [6],"video_codecid": 7,"video_project": false,"seek_param": "start","seek_type": "second","durl": [{"order": 1,"length": 268633,"size": 8025970,"url": "http://upos-hz-mirrorks3u.acgvideo.com/upgcxcode/93/11/86881193/86881193-1-6.mp4?e=ig8euxZM2rNcNbug7WdVtWug7WdVNEVEuCIv29hEn0l5QK==&deadline=1555647031&gen=playurl&nbs=1&oi=3742041866&os=ks3u&platform=html5&trid=812e5d046a8a4213bf3119bdf184f128&uipk=5&upsig=97ec92a9612234c4c4ce7b29e27d5ef4&uparams=e,deadline,gen,nbs,oi,os,platform,trid,uipk"}],"img": "https://i1.hdslb.com/bfs/archive/70492d7b0760a9e38c8573b421c3dc8128232b09.jpg","cid": "https://comment.bilibili.com/86881193.xml","fromview": "vupload"});

durl[n].url 就是播放源
然后将获取到的播放源插入到页面上

var u = j.durl[0].url;$("#vd").html('<video width="680" height="376" src="'+u+'" preload="auto" autoplay="" controls="" class="embed-responsive-item"></video>')

那我们试一试。

该链接 open_in_new_tab 没有问题,该链接的deadline也没有过期,再看详细信息

403,referrer 策略是 no-referrer-when-downgrade
来源信息对于网站而言挺重要
那我们在head里面加一条

<meta name="referrer" content="no-referrer">


就OK了

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。