先确定播放场景需要什么
准备在自己的观看工具中处理一个视频时,先用 video_id 或 video_url 查看流信息。你需要的是带声音的一体格式,还是能够分别处理音视频的播放器?这个决定应先于追求最高分辨率。返回的视频基本信息可辅助核对对象,available_qualities 用于查看可用清晰度,不应凭视频标题假定一定存在某个规格。
分清标准流与自适应流
formats 包含音频和视频,adaptive_formats 则可能只有视频或只有音频。查看 itag、mime_type、质量标签、分辨率和比特率时,把格式能力一起记录。该查询的 url 字段为 null,不是拿到它就已经拥有可直接播放的地址;has_signature 为 true 时,需要使用签名地址接口继续处理。可用时还可能返回 HLS 或 DASH 清单地址。
保存选择依据而不是虚构播放成功
假设目标设备适合较低清晰度,你可以记录选定的 itag、格式类型和选择原因,再做实际播放验证。不要把只有视频的流误当成音频损坏,也不将“最高画质”自动等同于最适合的选择。流信息不授予下载或再分发权利,地址有效性与播放器兼容性还需后续验证。最终交付是可解释的格式选择,而不是未经验证的播放成功报告。
完整地址与参数
GET https://api.trmesh.com/openapi/api/v1/youtube/web_v2/get_video_streams
| 参数 | 类型 | 必填 | 含义 |
|---|---|---|---|
video_id |
string | 否 | 视频ID |
video_url |
string | 否 | 视频URL |
可以复制的 Python 请求
安装 requests 并在环境变量中设置 TRMESH_API_TOKEN。把示例用户名或作品 ID 换成你要查询的对象。
import os
import requests
# 使用自己的 TRMesh 开发者密钥;不要将密钥写入网页。
url = "https://api.trmesh.com/openapi/api/v1/youtube/web_v2/get_video_streams"
params = {
"video_id": "dQw4w9WgXcQ",
"video_url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ"
}
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 账号额度,运行前请确认接口价格。