Skip to content

yt-dlp: 添加 cookie 支持和代理绕过功能#90

Open
shawnhdx0710 wants to merge 1 commit into
lanbinleo:mainfrom
shawnhdx0710:main
Open

yt-dlp: 添加 cookie 支持和代理绕过功能#90
shawnhdx0710 wants to merge 1 commit into
lanbinleo:mainfrom
shawnhdx0710:main

Conversation

@shawnhdx0710
Copy link
Copy Markdown

@shawnhdx0710 shawnhdx0710 commented May 22, 2026

Closes #82

简介

为 yt-dlp 下载器添加两个功能,提升 Bilibili 访问的稳定性:

  1. Cookie 文件自动检测 — 如果工作目录下存在 cookies.txt(或设置了 B2T_COOKIE_FILE 环境变量),会自动传递给 yt-dlp,用于需要登录才能访问的视频。

  2. 默认绕过系统代理 — 代理/VPN(如 Clash Verge)的节点经常被 Bilibili CDN 封锁,导致 HTTP 412 或 SSL 错误。直连通常更稳定,因此默认关闭代理。如需使用代理,设置 B2T_USE_PROXY=1 即可恢复。

问题背景

国内用户在使用 Clash Verge 等代理软件时,经常遇到以下错误而无法下载 Bilibili 视频:

ERROR: [BiliBili] BV...: Unable to download webpage: HTTP Error 412: Precondition Failed

根本原因是 Bilibili 的反爬虫系统会拦截代理节点的请求。由于直连 Bilibili 对大多数用户来说是稳定可用的,默认绕过代理可以避免这个问题。

改动内容

  • src/b2t/downloaders/ytdlp.py_build_ydl_opts 方法新增 18 行
  • Cookie 路径优先级:$B2T_COOKIE_FILE > $WORKSPACE/cookies.txt
  • 代理绕过:默认开启,通过 B2T_USE_PROXY=1 可恢复使用系统代理

Bilibili's CDN frequently blocks proxy/VPN nodes, causing HTTP 412
or SSL errors during download. This adds two features:

- Auto-detect cookies.txt in the workspace (or B2T_COOKIE_FILE env var)
  for authenticated Bilibili access.
- Default to bypassing the system proxy for Bilibili requests, since
  direct connections are typically more reliable. Set B2T_USE_PROXY=1
  to re-enable proxy if needed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

【有解决方案】因为上游下载器yt-dlp下载B站视频失效导致的报错问题

1 participant