---
title: "获取已签名的视频流URL/Get signed video stream URL"
method: GET
path: "/api/v1/youtube/web_v2/get_signed_stream_url"
tags: ["YouTube-Web-V2-API"]
---

# 获取已签名的视频流URL/Get signed video stream URL

`GET /api/v1/youtube/web_v2/get_signed_stream_url`

## Request

- Base URL: `https://api.tikhub.io` (the document declares no server; this is the origin it was published from)
- URL: `https://api.tikhub.io/api/v1/youtube/web_v2/get_signed_stream_url`
- Auth: HTTP bearer

# [中文]
### 用途:
- 获取指定 itag 的已签名播放地址
- 配合 get_video_streams 接口使用，先获取所有格式，再选择 itag 获取播放地址

### 代理要求:
- **调用本接口无需配置或传入代理**；本接口不接受 `proxy_url`，无法指定签名链接的公网出口。
- 已签名不等于可从任意网络下载；下载端出口不同可能收到 403。
  需要自带代理完成下载时，**推荐 get_video_streams_v3**。
- V3 首选固定出口或粘性会话的**美国住宅代理**，也可用固定公网出口的静态住宅/ISP 代理；
  数据中心代理不作为首选。美国并非强制地区：地区受限视频应选允许访问的国家/地区，
  并在获取链接与下载时保持同一实际公网出口。

### 参数:
- video_id: 视频ID（推荐）
- video_url: 完整的视频URL（可选）
- itag: 格式标识符，从 get_video_streams 接口返回的格式列表中选择

### 返回数据:
- itag: 格式标识符
- url: 已签名的播放地址（不保证跨公网出口可下载）
- expires_in_seconds: URL有效期（通常为6小时 = 21600秒）

### 注意事项:
- 播放地址有时效性（约6小时），过期后需重新获取
- URL 长度较长（约1000-2000字符）
- 某些视频可能受地区限制

# [English]
### Purpose:
- Get a signed playback URL for a specific itag
- Use with get_video_streams endpoint: first get all formats, then select itag to get playback URL

### 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 the signed URL.
- A signed URL is not guaranteed to download from every network; a different
  downloader exit may receive 403. **Prefer get_video_streams_v3** when using
  your own download proxy.
- 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.

### Parameters:
- video_id: Video ID (recommended)
- video_url: Full video URL (optional)
- itag: Format identifier, selected from formats list returned by get_video_streams

### Returns:
- itag: Format identifier
- url: Signed playback URL (download from another public exit is not guaranteed)
- expires_in_seconds: URL validity period (typically 6 hours = 21600 seconds)

### Notes:
- Playback URLs expire after approximately 6 hours, need to regenerate after expiration
- URL length is long (approximately 1000-2000 characters)
- Some videos may have regional restrictions

# [示例/Example]
video_id = "dQw4w9WgXcQ"
itag = 18  # 360p mp4 with audio

## Query parameters

- `video_id` string: 视频ID/Video ID
- `video_url` string: 视频URL/Video URL (如果提供video_id则忽略此参数/Ignored if video_id is provided)
- `itag` integer, required: 格式标识符 itag (从 get_video_streams 接口获取)/Format identifier itag (obtained from get_video_streams endpoint)

## Response `200`

Successful Response

- ResponseModel
  - `code` integer: HTTP status code | HTTP状态码
  - `request_id` string, nullable: Unique request identifier | 唯一请求标识符
  - `message` string: Response message (EN-US) | 响应消息 (English)
  - `message_zh` string: Response message (ZH-CN) | 响应消息 (中文)
  - `support` string: Support message | 支持消息
  - `time` string: The time the response was generated | 生成响应的时间
  - `time_stamp` integer: The timestamp the response was generated | 生成响应的时间戳
  - `time_zone` string: The timezone of the response time | 响应时间的时区
  - `docs` string, nullable: Link to the API Swagger documentation for this endpoint | 此端点的 API Swagger 文档链接
  - `cache_message` string, nullable: Cache message (EN-US) | 缓存消息 (English)
  - `cache_message_zh` string, nullable: Cache message (ZH-CN) | 缓存消息 (中文)
  - `cache_url` string, nullable: The URL to access the cached result | 访问缓存结果的 URL
  - `router` string: The endpoint that generated this response | 生成此响应的端点
  - `params` unknown
  - `data` unknown

## Other responses

- `422`: Validation Error

## Changes

- **2026-10-08** `96a122a5f220`: 2 info
  - added the optional property `detail/items/ctx` to the response with the `422` status
  - added the optional property `detail/items/input` to the response with the `422` status
- **2026-09-01** `50f9ec6e1cd3`: 2 info
  - the `cache_message` 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 `200`
  - the `cache_message_zh` response's property default value changed from `本次请求将被缓存，你可以使用下面的 URL 直接访问缓存结果，有效期为 24 小时，访问缓存不会产生额外费用。` to `本次响应已缓存，可通过下方 URL 直接查看，有效期 24 小时，访问缓存链接无额外费用。缓存仅用于请求溯源，不影响接口数据的时效性，也不会再次通过接口返回。` for the status `200`
- **2026-04-14** `ee5b7c9c88f5`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/tikhub/apis/tikhub-douyin-tiktok-xiaohongshu-lemon8-bilibili-kuaishou-pi/changes/api/v1/youtube/web_v2/get_signed_stream_url/get.md)

---

[API](https://skmtc.dev/tikhub/apis/tikhub-douyin-tiktok-xiaohongshu-lemon8-bilibili-kuaishou-pi.md) - [All operations](https://skmtc.dev/tikhub/apis/tikhub-douyin-tiktok-xiaohongshu-lemon8-bilibili-kuaishou-pi/llms.txt) - [OpenAPI document](https://skmtc.dev/tikhub/apis/tikhub-douyin-tiktok-xiaohongshu-lemon8-bilibili-kuaishou-pi/revisions/86a3483c705a?raw)
