YouTube-Web-V2-API

获取视频流信息 V2/Get video streams info V2

Changed on

[中文]

✅ 特性:

  • 自动返回所有格式的已解密播放地址
  • 无需额外调用 get_signed_stream_url 接口
  • 一次性获取所有清晰度的可用链接

代理要求:

  • 调用本接口无需配置或传入代理;本接口不接受 proxy_url,也不能指定链接的公网出口。
  • 返回 URL 不代表用户可从任意网络下载;若下载端的公网出口与链接绑定的出口不同, 可能收到 403。需要自行控制代理并稳定下载时,推荐 get_video_streams_v3。
  • V3 首选固定出口或粘性会话的美国住宅代理,也可用固定公网出口的静态住宅/ISP 代理; 数据中心代理不作为首选。美国并非强制地区:地区受限视频应选允许访问的国家/地区, 并在获取链接与下载时保持同一实际公网出口。

用途:

  • 获取YouTube视频所有清晰度的格式信息和播放地址
  • 返回标准格式(音视频合并)和自适应格式(音视频分离)
  • 适合需要展示所有清晰度选项的场景

参数:

  • video_id: 视频ID(推荐)
  • video_url: 完整的视频URL(可选,如果提供video_id则忽略)

返回数据包含:

  • 视频基本信息(标题、作者、时长、观看次数等)
  • formats: 标准格式流(包含音频和视频)
  • adaptive_formats: 自适应格式流(仅视频或仅音频)
    • 每个格式包含: itag、mime_type、质量标签、分辨率、比特率等
    • url 字段包含已解密的播放地址,但不保证从不同公网出口可下载
    • has_signature 为 false 表示 URL 已解密,不代表下载出口不受限制
  • hls_manifest_url: HLS流地址(如果有)
  • dash_manifest_url: DASH流地址(如果有)
  • available_qualities: 所有可用的清晰度列表
  • expires_in_seconds: URL 过期时间(约 6 小时 = 21600 秒)

与 get_video_streams 的区别:

  • get_video_streams: URL 为 null,需要搭配 get_signed_stream_url 使用(两步法)
  • get_video_streams_v2 (本接口): 自动返回所有已解密的 URL(一步到位)

注意事项:

  • 播放地址有时效性(约6小时),建议获取后尽快使用
  • 高清视频(720p+)通常需要分别下载音视频流并合并
  • 响应时间较长(约10秒),因为需要为所有格式解密 URL

价格:

  • $0.003 USD/请求

[English]

✅ Features:

  • Automatically returns decrypted playback URLs for all formats
  • No need to call get_signed_stream_url endpoint separately
  • Get all quality URLs in one request

Proxy requirements:

  • You do not need to configure or provide a proxy to call this endpoint. It does not accept proxy_url or let you choose the public exit for its URLs.
  • A returned URL is not guaranteed to download from any network; a downloader using a different public exit may receive 403. Prefer get_video_streams_v3 when you need to control the proxy used for downloading.
  • For V3, prefer a US residential proxy with a fixed exit or sticky session, or a static residential/ISP proxy with a fixed public exit. Datacenter proxies are not the first choice. The US is not mandatory: choose a region where the video is available and keep the same actual exit for retrieval and download.

Purpose:

  • Get all quality format information and playback URLs for YouTube video
  • Returns standard formats (merged audio/video) and adaptive formats (separate audio/video)
  • Suitable for scenarios that need to display all quality options

Parameters:

  • video_id: Video ID (recommended)
  • video_url: Full video URL (optional, ignored if video_id is provided)

Returns:

  • Basic video info (title, author, duration, view count, etc.)
  • formats: Standard format streams (audio and video combined)
  • adaptive_formats: Adaptive format streams (video-only or audio-only)
    • Each format contains: itag, mime_type, quality label, resolution, bitrate, etc.
    • url contains a decrypted playback URL, but download from a different exit is not guaranteed
    • has_signature=false means the URL is decrypted, not that its download exit is unrestricted
  • hls_manifest_url: HLS manifest URL (if available)
  • dash_manifest_url: DASH manifest URL (if available)
  • available_qualities: List of all available quality levels
  • expires_in_seconds: URL expiration time (about 6 hours = 21600 seconds)

Difference from get_video_streams:

  • get_video_streams: URLs are null, need to use get_signed_stream_url (two-step method)
  • get_video_streams_v2 (this endpoint): Automatically returns all decrypted URLs (one-step solution)

Notes:

  • Playback URLs expire after ~6 hours, use them promptly
  • High-quality videos (720p+) usually require separate download and merge of audio/video streams
  • Longer response time (~10 seconds) as it needs to decrypt URLs for all formats

Price:

  • $0.003 USD/request

[示例/Example]

获取所有格式和URL: video_id = "dQw4w9WgXcQ"

get/api/v1/youtube/web_v2/get_video_streams_v2

Request

  • Base URL
    https://api.tikhub.io (the document declares no server; this is the origin it was published from)
  • Auth
    HTTP bearer

Query parameters

video_idstring

视频ID/Video ID

video_urlstring

视频URL/Video URL (如果提供video_id则忽略此参数/Ignored if video_id is provided)

Response

Successful Response

codeinteger

HTTP status code | HTTP状态码

request_idstring nullable

Unique request identifier | 唯一请求标识符

messagestring

Response message (EN-US) | 响应消息 (English)

message_zhstring

Response message (ZH-CN) | 响应消息 (中文)

supportstring

Support message | 支持消息

timestring

The time the response was generated | 生成响应的时间

time_stampinteger

The timestamp the response was generated | 生成响应的时间戳

time_zonestring

The timezone of the response time | 响应时间的时区

docsstring nullable

Link to the API Swagger documentation for this endpoint | 此端点的 API Swagger 文档链接

cache_messagestring nullable

Cache message (EN-US) | 缓存消息 (English)

cache_message_zhstring nullable

Cache message (ZH-CN) | 缓存消息 (中文)

cache_urlstring nullable

The URL to access the cached result | 访问缓存结果的 URL

routerstring

The endpoint that generated this response | 生成此响应的端点

paramsunknown
dataunknown

Changes

    • info

      added the optional property // to the response with the status

    • info

      added the optional property // to the response with the status

    • info

      the response's property default value changed from This request will be cached. You can access the cached result directly using the URL below valid for 24 hours. Accessing the cache will not incur additional charges. to This response is cached and accessible via the URL below for 24 hours at no extra cost. The cache is for request tracing only — it doesn't affect the API's data freshness and won't be returned through the API again. for the status

    • info

      the response's property default value changed from 本次请求将被缓存,你可以使用下面的 URL 直接访问缓存结果,有效期为 24 小时,访问缓存不会产生额外费用。 to 本次响应已缓存,可通过下方 URL 直接查看,有效期 24 小时,访问缓存链接无额外费用。缓存仅用于请求溯源,不影响接口数据的时效性,也不会再次通过接口返回。 for the status