🔥 推荐
微信小程序 · 免下载 · 微信扫一扫即用
玲珑去水印小程序二维码
微信扫一扫

手机上想随时去水印?
用玲珑去水印小程序

微信搜索 "玲珑去水印" 或扫码,无需装 App,打开微信即可在线解析下载无水印视频。

📱 立即扫码体验
🌐 30+ 平台 毫秒级 解析 免费 使用
📘 通用 · 使用教程

哔哩哔哩去水印API源码二开教程

本文详细介绍哔哩哔哩去水印API的二次开发流程,包含源码解析、接口对接、本地部署与常见问题排查,适合PHP/Python初学者快速上手。

一、什么是哔哩哔哩去水印 API

哔哩哔哩(B 站)视频默认带有作者水印和平台 Logo,所谓"去水印"通常指通过解析视频真实地址,去除浏览器端叠加的浮层水印,而非破解平台加密。本文介绍的二次开发思路,是基于公开的网页接口进行数据抓取与重组,从而在自己的程序里实现"一键解析"功能。

提示:本文仅讨论技术原理与代码实现,所有素材版权归原作者所有,请勿用于商业爬取或侵权分发。

二、二次开发前的准备工作

1. 环境与工具

2. 必备知识

三、源码解析与接口定位

1. 抓包找接口

打开 B 站任意视频页,按 F12 进入 Network 面板,搜索关键词 playurlcid,可以找到视频真实流地址接口。重点关注以下字段:

  1. 请求方式:通常为 GET 或 POST。
  2. 请求参数:avidcidqnfnvalfourkplatform
  3. 返回数据:包含 durldash 字段,即视频流地址。

2. 关键参数说明

四、PHP 版 API 源码示例

下面给出一个最小可运行的 PHP 示例,演示如何通过 avidcid 获取无水印视频地址:

<?php
header('Content-Type: application/json; charset=utf-8');

$avid = $_GET['avid'] ?? '';
$cid  = $_GET['cid'] ?? '';
if (!$avid || !$cid) {
    echo json_encode(['code' => 400, 'msg' => '参数缺失']);
    exit;
}

$url = "https://api.bilibili.com/x/player/playurl?avid={$avid}&cid={$cid}&qn=80&fnval=1&fourk=1&platform=html5";
$cookie = '你的B站登录Cookie'; // 建议使用登录态 Cookie 提高成功率
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64)',
    'Referer: https://www.bilibili.com',
    'Cookie: ' . $cookie
]);
$res = curl_exec($ch);
curl_close($ch);

$data = json_decode($res, true);
if (!empty($data['data']['durl'][0]['url'])) {
    echo json_encode([
        'code' => 200,
        'url'  => $data['data']['durl'][0]['url'],
        'quality' => $data['data']['quality']
    ]);
} else {
    echo json_encode(['code' => 500, 'msg' => '解析失败']);
}
?>

代码要点解读

五、Python 版源码示例

如果你更熟悉 Python,可以使用 requests 库快速实现:

import requests
from flask import Flask, request, jsonify

app = Flask(__name__)

@app.route('/parse')
def parse():
    avid = request.args.get('avid')
    cid  = request.args.get('cid')
    if not avid or not cid:
        return jsonify({'code': 400, 'msg': '参数缺失'})

    api = f'https://api.bilibili.com/x/player/playurl?avid={avid}&cid={cid}&qn=80&fnval=1&fourk=1'
    headers = {
        'User-Agent': 'Mozilla/5.0',
        'Referer': 'https://www.bilibili.com'
    }
    res = requests.get(api, headers=headers).json()
    url = res.get('data', {}).get('durl', [{}])[0].get('url')
    return jsonify({'code': 200, 'url': url})

if __name__ == '__main__':
    app.run(port=5000)

六、前端调用与效果展示

前端只需一个简单的 HTML 页面即可调用上述接口:

小技巧:BV 号转 AV 号可借助官方公开算法或第三方开源库,避免重复造轮子。

七、常见问题排查

  1. 返回 -101 未登录:在请求头中补全 Cookie。
  2. 返回 -403 权限不足:检查 Referer 是否为 bilibili.com 域名。
  3. 视频画质只有 480P:登录账号并开启大会员,再提高 qn 参数。
  4. 接口频繁失效:B 站接口更新较快,建议关注开源社区的版本更新日志。

八、二次开发注意事项

温馨提示

去水印 API 的本质是调用官方公开接口,技术上并不复杂,但请务必在合法合规的前提下使用。本文提供的源码仅供学习参考,请勿用于任何侵犯版权或违反平台规则的场景。希望这篇教程能帮你快速搭建属于自己的解析服务,如有疑问欢迎在评论区留言讨论。

哔哩哔哩去水印API源码二开教程
哔哩哔哩去水印API源码二开教程 · 玲珑去水印

常见问题(FAQ)

如何获取哔哩哔哩去水印API源码二开教程的无水印内容?

复制分享链接到玲珑去水印工具,在线解析即可获得无水印原画质文件。

在线去水印,立即使用

复制视频链接即可解析下载无水印视频,支持抖音、快手、小红书、TikTok

免费去水印 →