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

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

695623459

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

就是ibilibili.com了
这个网站的功能呢,就是很方便的让你获取B站视频的下载地址,同时,它还会有一个播放器供你预览。有多方便呢?
这是一个B站视频的链接,视频id是49023450
https://www.bilibili.com/video/av49023450
当你在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了

Bilibili播放-获取B站播放视频源地址的过程相关推荐

  1. b站看那个的python_用Python获取B站播放历史记录 !男友居然天天背着我看这些!...

    今天Geek专栏为大家带来 乐聚机器人王松博士的 "用Python获取B站播放历史记录" 最近 B 站出了一个年度报告,统计用户一年当中在 B 站上观看视频的总时长和总个数.过去一 ...

  2. python查看历史记录_用Python获取B站播放历史记录

    用 Python 获取 B 站播放历史记录 最近 B 站出了一个年度报告,统计用户一年当中在 B 站上观看视频的总时长和总个数.过去一年我居然在 B 站上看了 2600+ 个视频,总计 251 个小时 ...

  3. JavaScript获取B站分集视频标题及各集时长、累计时长

    之前在学习B站分集视频时,为做笔记曾需要频繁复制标题文字,同时也需要知道视频时长,于是用js把标题及时长在控制台输出然后复制存为文本文件. var box=document.getElementsBy ...

  4. python获取B站单个视频的封面

    python获取B站单个视频的封面 仅用于个人学习 import requests, reurl = 'https://www.bilibili.com/video/BV1f64y1Z7Qp' # 修 ...

  5. 【获取b站分集视频时长】合理安排学习时间

    分享好物 B站分集视频教程 集数时长统计脚本 大佬链接 可调倍速灵活自由版 步骤 一.在b站找到想看的分集视频 二.在该页面浏览器上方,右击,添加网页 三.复制如下代码,填入 网址 处 javascr ...

  6. 手把手教你使用Python获取B站视频并在本地实现弹幕播放功能

    点击上方"Python爬虫与数据挖掘",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 少小虽非投笔吏,论功还欲请长缨. ...

  7. 手把手教你使用Python网络爬虫获取B站视频选集内容(附源码)

    点击上方"Python爬虫与数据挖掘",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 位卑未敢忘忧国,事定犹须待阖棺. ...

  8. Python批量下载Bilibili(B站)1080P60fps视频-pip打包安装

    BiliUtil Bilibili.com(B站)视频下载工具包 Github源码地址:https://github.com/wolfbolin/BiliUtil 声明:该内容仅供学习参考,请勿用于商 ...

  9. android b站倍速播放器,哔哩哔哩怎么加速播放?B站网页版和手机版视频倍速播放的方法介绍...

    bilibili简称B站是国内知名的视频弹幕网站,这里有最及时的动漫新番,最棒的ACG氛围,最有创意的Up主.那么,爱逛b站的朋友们都知道,加速播放效果更佳!那么,哔哩哔哩怎么加速播放呢?接下来小编就 ...

最新文章

  1. 构建、测试和部署驱动程序
  2. 【Spring实战】注入非Spring Bean对象
  3. U3D 代码自动化生成定制预置体的旋转问题
  4. UrlEncode编码算法
  5. 十大经典排序算法动画与解析,看我就够了!(配代码完全版)
  6. 玩转mini2440开发板之【在Ubuntu 14.04下编译安装tslib 1.4版本】
  7. MST(最小生成树)的构造
  8. 16、常用shell命令方法
  9. XCode5添加新建类模板(Cocos2dx Template Class for Scene or Layer)
  10. 【报告分享】2021-2022年中国人工智能创投数据报告.pdf(附下载链接)
  11. 理论应用实例水杯_PLC应用,3个PID控制实例讲解,想不会都难!
  12. [Python 学习] 两、在Linux使用平台Python
  13. 圣地亚哥分校 计算机,加州大学圣地亚哥分校计算机怎么样?
  14. autolayout中 top layout guide详解
  15. java基础27 单例集合Collection及其常用方法
  16. 二维螺旋曲线方程式,弧长计算及作图实现
  17. netty框架中 bossGroup与workGroup是一个还是两个Reactor
  18. 【JZOJ A组】Melancholy
  19. IPV6 长度为46位
  20. 硬盘坏道数据恢复-硬盘开盘数据恢复-天伟数据恢复

热门文章

  1. ESP32s3 MSC/U盘 虚拟串口
  2. 操作符的相关知识(二)
  3. 停车场管理系统c语言查询,停车场管理系统c语言.doc
  4. 利用html5实现类似微信的手机摇一摇功能-计算摇动次数
  5. PMP新考纲 敏捷题目 (三)
  6. 阿里研究员:测试稳定性三板斧,赶紧来学习一下
  7. 计算机专业学习的32个网站
  8. 【TYVJ水题三连发】1502 兴建高铁 1568 Rabbit Number 1673 位图
  9. 运放和比较器的区别分析?运放可以当做比较器用么?(硬件每日一题)
  10. 地球坐标,火星坐标,百度坐标转换