主机论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 158|回复: 4

BiliBili的视频解析接口

[复制链接]

296

主题

3014

帖子

7310

积分

论坛元老

Rank: 8Rank: 8

积分
7310
发表于 2023-10-20 23:44:39 | 显示全部楼层 |阅读模式
本帖最后由 YorkZhao 于 2023-10-21 09:26 编辑
  1. https://api.bilibili.com/x/player/wbi/playurl?avid=961475950&bvid=BV1VH4y1U797&cid=1283577738&qn=80&fnver=0&fnval=4048&fourk=1&gaia_source=&session=666&w_rid=888&wts=1697815844
复制代码

其中:cid自己抓,session和w_rid乱打,avid和bvid二选1,wts换成你自己的时间(unix)其他别动
大视频有音视频分离,分别去audio和video里找
例如:
  1. https://api.bilibili.com/x/player/wbi/playurl?bvid=BV1H84y127ym&cid=1299598810&qn=80&fnver=0&fnval=4048&fourk=1&gaia_source=&session=777&w_rid=666&wts=1697815844
复制代码

去video里面找,最前面的就是1080,写在base_Url里/backupUrl里
把backup url中一个upos-sz-mirrorali.bilivideo.com打头这样的换成upos-sz-mirrorcos.bilivideo.com即可

\u00手动换成&
回复

使用道具 举报

296

主题

3014

帖子

7310

积分

论坛元老

Rank: 8Rank: 8

积分
7310
 楼主| 发表于 2023-10-21 09:23:10 | 显示全部楼层
x1184 发表于 2023-10-21 00:42
用免费gpt4帮你lu了下代码

也还没完,请求头有一个content-range 2328477-2419135/14893241得改成0-14893241这样子
回复

使用道具 举报

204

主题

2169

帖子

5834

积分

论坛元老

Rank: 8Rank: 8

积分
5834
发表于 2023-10-21 00:42:00 | 显示全部楼层
可以,如果我有会员,那json一次源码解析用哪个
回复

使用道具 举报

10

主题

98

帖子

282

积分

中级会员

Rank: 3Rank: 3

积分
282
发表于 2023-10-21 00:40:22 | 显示全部楼层
用免费gpt4帮你lu了下代码
  1. <?php
  2. // 获取当前Unix时间戳
  3. $wts = time();

  4. // 使用给定的参数构造URL
  5. function generateUrl($bvid, $cid) {
  6.     global $wts;
  7.     $session = rand(100000, 999999); // 生成6位随机数
  8.     $w_rid = rand(100000, 999999);   // 生成6位随机数
  9.     return "https://api.bilibili.com/x/player/wbi/playurl?bvid={$bvid}&cid={$cid}&qn=80&fnver=0&fnval=4048&fourk=1&gaia_source=&session={$session}&w_rid={$w_rid}&wts={$wts}";
  10. }

  11. // 使用cURL发起HTTP请求并获取响应内容
  12. function fetchContent($url) {
  13.     $ch = curl_init();
  14.     curl_setopt($ch, CURLOPT_URL, $url);
  15.     curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  16.     $response = curl_exec($ch);
  17.     curl_close($ch);
  18.     return $response;
  19. }

  20. // 从HTTP响应中找到并替换URL
  21. function findAndReplaceUrl($response) {
  22.     $data = json_decode($response, true);
  23.     if (isset($data['video']['backup_url'])) {
  24.         foreach ($data['video']['backup_url'] as $url) {
  25.             if (strpos($url, "upos-sz-mirrorali.bilivideo.com") !== false) {
  26.                 $newUrl = str_replace("upos-sz-mirrorali.bilivideo.com", "upos-sz-mirrorcos.bilivideo.com", $url);
  27.                 $newUrl = str_replace("\u00", "&", $newUrl);
  28.                 return $newUrl;
  29.             }
  30.         }
  31.     }
  32.     return null;
  33. }

  34. // 主函数
  35. function main($bvid, $cid) {
  36.     $url = generateUrl($bvid, $cid);
  37.     $response = fetchContent($url);
  38.     $resultUrl = findAndReplaceUrl($response);
  39.     if ($resultUrl) {
  40.         echo "Result URL: " . $resultUrl;
  41.     } else {
  42.         echo "No matching URL found.";
  43.     }
  44. }

  45. // 示例
  46. main("BV1H84y127ym", "1299598810");
  47. ?>
复制代码
回复

使用道具 举报

2

主题

115

帖子

396

积分

中级会员

Rank: 3Rank: 3

积分
396
发表于 2023-10-21 00:42:08 | 显示全部楼层
1080不是只要登陆就有?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|主机论坛

GMT+8, 2024-5-18 12:06 , Processed in 0.067222 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表