作品和分P是两个层次
准备观看一个多分P教程时,打开了错误片段可能并不是播放故障。这个请求需要 bv_id 与 cid:前者定位作品,后者对应具体内容片段。先从可靠的作品资料确认二者属于同一目标,不要把整个合集的标识或另一个分P的编号混入。明确要看的是哪一节,比反复刷新地址更有帮助。
获取地址后仍需检查实际播放
该入口返回视频流地址,使用前核对响应中实际给出的内容。它不自动替你选择正确分P,也不能保证所有客户端都以相同方式播放。假设你想看安装部分,却获取了介绍部分的 cid,应先纠正标识关系,而不是把播放器设置越改越复杂。把地址获取与播放验证分成两步,便于判断问题在哪个环节。
保留定位信息而非长期依赖临时地址
自己的排查笔记可以包含 BV、cid、目标片段说明、检查时间与实际观察。不要把视频流地址直接当作永久来源引用,原作品链接更适合保留出处。地址可访问也不等于有下载、剪辑或再分发许可。完成检查时说明是否只是取得数据,还是确实在目标环境中验证了播放;没有做后一步,就不能把“已获取”写成“所有设备均可播放”。
完整地址与参数
GET https://api.trmesh.com/openapi/api/v1/bilibili/web/fetch_video_playurl
| 参数 | 类型 | 必填 | 含义 |
|---|---|---|---|
bv_id |
string | 是 | 作品id |
cid |
string | 是 | 作品cid |
可以复制的 Python 请求
安装 requests 并在环境变量中设置 TRMESH_API_TOKEN。把示例用户名或作品 ID 换成你要查询的对象。
import os
import requests
# 使用自己的 TRMesh 开发者密钥;不要将密钥写入网页。
url = "https://api.trmesh.com/openapi/api/v1/bilibili/web/fetch_video_playurl"
params = {
"bv_id": "BV1y7411Q7Eq",
"cid": "171776208"
}
response = requests.get(
url, params=params, timeout=30,
headers={"Authorization": f"Bearer {os.environ['TRMESH_API_TOKEN']}"},
)
response.raise_for_status()
payload = response.json()
print(payload) # 先核对真实响应,再提取业务字段
调用接口会使用你的 TRMesh 账号额度,运行前请确认接口价格。