> ## Documentation Index
> Fetch the complete documentation index at: https://help.decodo.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 视频下载代理

> 为 yt_dlp 集成优化的代理

## 什么是视频下载代理，如何开始使用？

视频下载代理是专门设计用于优化和促进访问视频内容的服务器。它们充当用户设备和服务器之间的中介，允许用户隐藏其 IP 地址、绕过地区限制并访问可能被阻止的内容。

联系我们的销售团队以访问我们的视频下载代理，并获得根据您的特定需求定制的代理端点。我们的专家将与您密切合作，了解您的需求并确保无缝集成，提供旨在支持您内容交付的高性能解决方案。

### 身份验证

我们将为您提供 `user:pass` 身份验证和带端口的代理端点（默认为 `7001`）

### cURL 示例

```shellscript cURL theme={null}
curl -x "username-test:password@endpoint:7001" "https://ip.decodo.com/json"
```

> 📘 维持会话
>
> 在用户名中添加会话变量 `-test` 将允许 IP 地址在多个请求中保持不变。

### 获取新 IP

要将 IP 轮换为新的，请在用户名中添加一个 `1`-`100000` 之间的随机值作为参数（`$((1 + RANDOM % 100000))`）

```shellscript cURL theme={null}
curl -x "username-$((1 + RANDOM % 100000)):password@endpoint:7001" \
     "https://ip.decodo.com/json"
```

***

## 与 (yt\_dlp) 视频下载工具集成

### 示例请求

<CodeGroup>
  ```text Command Line theme={null}
  yt-dlp --proxy username-test:password@endpoint:7001 \
  "https://www.youtube.com/watch?v=zJwHKgj5BwM"
  ```

  ```python Python theme={null}
  import yt_dlp

  username = 'YOUR_USERNAME'
  password = 'YOUR_PASSWORD'

  if not username.endswith("-test"):
      username += "-test"

  proxy = f'http://\{username\}:{password}@endpoint:7001'
  ydl_opts = {
      'proxy': proxy,
  }

  with yt_dlp.YoutubeDL(ydl_opts) as ydl:
      ydl.download(['https://www.youtube.com/watch?v=zJwHKgj5BwM'])
  ```
</CodeGroup>

<Info>
  * 默认情况下，系统对所有视频下载使用相同的 IP，但是，**相同的 IP 应仅用于一次性测试**。
  * 为了获得最佳性能并防止潜在的限流，必须为每个视频使用不同的 IP 地址进行下载。有关如何实现此操作的详细说明，请参阅以下部分。
</Info>

### 使用唯一 IP 下载多个 URL

下载多个视频时，请考虑为每个视频使用不同的 IP。以下是实现此目的的示例：

<CodeGroup>
  ```text Command Line theme={null}
  # 第一个视频使用一个 IP
  yt-dlp --proxy username-$((1 + RANDOM % 100000)):password@endpoint:7001 \
  "https://www.youtube.com/watch?v=7NrKMceE6Wk"

  # 第二个视频使用不同的 IP
  yt-dlp --proxy username-$((1 + RANDOM % 100000)):password@endpoint:7001 \
  "https://www.youtube.com/watch?v=mQqw0pLcGXU"
  ```

  ```python Python theme={null}
  import random
  import yt_dlp

  def download_with_new_ip(url, username, password):
      session_id = random.randint(1, 100000)
      proxy = f'http://\{username\}-{session_id}:{password}@endpoint:7001'

      ydl_opts = {
          'proxy': proxy
      }
      
      with yt_dlp.YoutubeDL(ydl_opts) as ydl:
          try:
              print(f"正在使用新 IP (\{username\}-{session_id}) 下载 {url}...")
              ydl.download([url])
              print(f"成功下载 {url}")
          except Exception as e:
              print(f"下载 {url} 时出错：{str(e)}")

  def main():
      username = 'YOUR_USERNAME'
      password = 'YOUR_PASSWORD'
      
      videos = [
          'https://www.youtube.com/watch?v=7NrKMceE6Wk',
          'https://www.youtube.com/watch?v=mQqw0pLcGXU'
      ]
      
      for video in videos:
          download_with_new_ip(video, username, password)

  if __name__ == "__main__":
      main()
  ```
</CodeGroup>
