先确定播放场景需要什么

准备在自己的观看工具中处理一个视频时,先用 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 账号额度,运行前请确认接口价格。