菜单

故障排除

相关源文件

本页面提供了使用you-get(一个用于从网络下载媒体内容的命令行工具)时可能遇到的常见问题的解决方案。本文档侧重于运行时问题及其解决方案,而非安装相关问题,安装问题请参考安装与设置

常见错误消息及解决方案

以下是使用you-get时可能遇到的常见错误消息及其解决方案的细分。

连接和网络问题

来源:README.md329-342

SSL/TLS 错误

如果您看到与 SSL 或 TLS 相关的错误,可能是由于以下原因:

  1. 过时的 Python 版本,已弃用 TLS 支持
  2. 缺少证书

解决方案

  • 升级到 Python 3.7.4 或更高版本(推荐)
  • 使用 --no-check-certificate 选项作为临时解决方法

代理故障排除

对于您所在地区被屏蔽的网站

  1. 使用常规 HTTP 代理:you-get -x [代理地址:端口] [URL]
  2. 对仅需要代理信息提取的网站使用特定于站点的提取器代理
    you-get -y [PROXY_ADDRESS:PORT] [URL]
    
  3. 对于频繁使用代理,请考虑为 you-get 设置 proxychains

来源:README.md329-342

文件名和路径问题

来源:src/you_get/util/fs.py5-47 tests/test_util.py8-13 src/you_get/util/os.py5-32

下载文件名中包含特殊字符的文件时,您可能会遇到文件系统错误。legitimize() 函数会自动处理此问题,但您可能需要了解其限制。

  • Windows/WSL/Cygwin:避免使用 :*?\"<>[] 等字符
  • macOS:主要避免使用 : 字符
  • Linux/Unix:主要避免使用 / 字符

解决方案

  1. 使用 --output-filename/-O 指定一个更简单的文件名
    you-get -O simple_name.mp4 [URL]
    
  2. 使用 --output-dir/-o 指定一个不同的输出目录
    you-get -o ~/Downloads [URL]
    

来源:README.md315-326 src/you_get/util/fs.py5-47

下载中断与续传

如果您的下载被中断(通过 Ctrl+C 或网络问题),you-get 会创建一个临时文件 .download。当您再次运行相同的命令时,它会从中断处继续。

续传问题

  1. 无法续传下载:

    • 检查 .download 临时文件是否存在
    • 尝试使用 --force/-f 开始新下载(将覆盖现有文件)
  2. 下载损坏:

    • 删除部分文件和 .download 文件
    • 使用相同的命令重新开始下载

来源:README.md307-314

媒体格式选择问题

来源:README.md164-233 README.md261-266

当您无法下载首选格式时

  1. 使用 --info/-i 查看所有可用格式

    you-get -i [URL]
    
  2. 如果您的所需格式需要 FFmpeg(用于处理、合并片段或高分辨率视频)

    • 验证 FFmpeg 是否已安装:ffmpeg -version
    • 如果缺少,请根据您的操作系统安装 FFmpeg
    • 尝试使用 --no-merge/-n 下载而不合并片段

来源:README.md164-233 README.md261-266

调试技巧

使用错误日志系统

You-get 具有内置的日志记录系统,包含不同的严重级别,有助于诊断问题。

来源:src/you_get/util/log.py16-102

理解错误消息

  • 蓝色文本:调试信息(d() 函数)
  • 黄色文本:警告(w() 函数)
  • 粗体黄色文本:错误(e() 函数)
  • 粗体红色文本:致命错误/WTF消息(wtf() 函数)

如果您遇到错误,阅读这些彩色编码的消息可以帮助您识别问题的严重性和来源。

用于调试的详细输出

获取更详细的输出以进行故障排除

  1. 使用 --debug 启用调试日志记录
  2. 使用 --json 以 JSON 格式获取提取的数据
    you-get --json [URL]
    
  3. 使用 --url 仅获取可下载的 URL
    you-get --url [URL]
    

这些选项可以帮助确定问题是出在从网站提取信息上,还是出在下载过程本身。

来源:README.md370-376

常见的特定网站问题

来源:README.md362-368 README.md378-459

区域限制内容

一些网站(例如:优酷)会根据地理位置限制内容

  1. 使用 --extractor-proxy/-y 选项,用于只需要代理提取的网站

    you-get -y 127.0.0.1:8087 [URL]
    
  2. 对于完全受限的网站,请使用常规代理选项

    you-get -x 127.0.0.1:8087 [URL]
    

来源:README.md329-342

私人或需要登录的内容

对于需要登录的内容

  1. 使用 --cookies/-c 选项并提供您的浏览器 Cookie

    you-get -c /path/to/cookies.txt [URL]
    
  2. 支持的 Cookie 格式

    • Mozilla cookies.sqlite
    • Netscape cookies.txt

来源:README.md362-368

检测和处理已知错误

如果您遇到的问题不在上述范围内,它可能是一个已知错误

  1. 请查看 已知错误 Wiki 页面
  2. 在 GitHub 仓库中搜索该问题
  3. 如果未列出,请考虑按照贡献指南报告该问题

you-get 的维护者会跟踪已知错误,并且有特定的流程来正确报告新问题。

来源:README.md462-466

操作系统特定的故障排除

来源:src/you_get/util/os.py5-32 src/you_get/util/fs.py5-47

Windows 特定问题

  1. 路径长度限制:

    • 使用更短的路径配合 -o
    • 使用驱动器根目录,例如 C:\Downloads,而不是深度嵌套的文件夹
  2. 特殊字符问题:

    • Windows 的文件名限制比 Unix 系统更多
    • 考虑使用 -O 指定更简单的文件名

macOS 特定问题

  1. 权限问题:
    • 确保您对目标目录具有写入权限
    • 注意 macOS 对某些位置的安全限制

WSL(Windows Subsystem for Linux)问题

  1. 文件系统翻译问题:
    • You-get 会检测 WSL 并应用 Windows 文件名规则
    • 为获得最佳效果,请将下载内容存储在 Linux 文件系统中,而不是挂载的 Windows 驱动器中

来源:src/you_get/util/os.py5-32 tests/test_util.py8-13

正确报告问题

当向 you-get 开发者报告问题时

  1. 首先检查是否是已知错误
  2. 包含完整的错误输出
  3. 指定导致问题的 URL
  4. 包含您的操作系统、Python 版本和 you-get 版本
  5. 遵循仓库中的贡献指南

正确报告的问题有更高的几率被快速解决。

来源:README.md462-466