#5656 AttributeError: 'NoneType' object has no attribute 'get'

123.110* Posted at: 12 hours ago

程序内部错误:'NoneType' object has no attribute 'get':Traceback (most recent call last):
File "videotrans\translator\_base.py", line 69, in run
File "videotrans\translator\_base.py", line 143, in _run_srt
File "tenacity\__init__.py", line 338, in wrapped_f
File "tenacity\__init__.py", line 477, in call
File "tenacity\__init__.py", line 378, in iter
File "tenacity\__init__.py", line 421, in exc_check
tenacity.RetryError: RetryError[]

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "videotrans\util\TestSrtTrans.py", line 19, in run
File "videotrans\translator\_runner.py", line 63, in run
File "videotrans\translator\_base.py", line 72, in run
File "tenacity\__init__.py", line 480, in call
File "videotrans\translator\_openaicompat.py", line 79, in _item_task
AttributeError: 'NoneType' object has no attribute 'get'


=
system:Windows-10-10.0.19043-SP0
version:v4.04
frozen:True
language:zh
root_dir:D:/pyvideotrans4040704

5 Replies

报错原因是翻译渠道(如 DeepSeek、OpenAI、本地大模型等)在调用时返回了空响应,导致后续代码出错。这通常由以下问题引起:

  1. API 配置错误:API 地址、密钥或模型名称填写不正确。
  2. API 服务不可用:本地服务未启动、网络不通、余额不足或密钥过期。
  3. 代理问题:使用国外 API(如 OpenAI)但未正确设置代理,或代理配置错误导致请求失败。

解决方案:

  1. 检查翻译渠道配置:进入菜单 → 翻译设置 → 选择你使用的渠道(例如 DeepSeek / OpenAI / 硅基流动等),确认:

    • API 地址格式正确(例如 https://api.deepseek.com/v1,本地模型为 http://127.0.0.1:8000/v1
    • API Key 正确且未失效
    • 使用的模型名称(如 deepseek-chat)与平台实际名称一致
  2. 测试连接:如果渠道面板有“测试”按钮,点击测试。若无测试按钮,可尝试在“高级选项”中临时切换为“Google翻译”或“微软翻译”等免费渠道,看是否仍然报错。若不再报错,则确认是渠道配置问题。
  3. 检查代理设置:如果使用国外 API 且位于中国大陆,请在主界面“网络代理”栏填写正确的代理地址(如 http://127.0.0.1:7890)。若无需代理,请清空代理文本框。
  4. 尝试勾选“发送完整字幕”:在翻译渠道行勾选此项,有时可改善请求稳定性(特别是使用大模型时)。

如果以上步骤仍无法解决,请提供 logs/ 目录下最新的日志文件顶部30行(或整个文件),以便进一步诊断。

请查阅相关文档:


Application started at 2026-07-06 07:51:41

1783295501:Loading resources...
1783295501:Loading main window...
1783295501:Initializing UI...
1783295501:SetupUI end...
1783295501:import recognition ...
1783295501:import tts ...
1783295501:import translate ...
1783295501:Get cache ...
1783295501:Set default value ...
1783295501:import voices list ...
1783295501:Set tts voice ...
[DEBUG] 上次缓存的角色:No,字幕嵌入类型:1,发音语言:en,目标语言:zh-cn,目标语言代码:None,模型:large-v3-turbo,TTS渠道[0]
1783295501:show main window ...
1783295501:Bind signal...
1783295501:set cursor...
1783295501:preload TTS win...
1783295502:preload STT win...
1783295502:preload translate srt win...
1783295502:end
[DEBUG] 平台: Windows。正在按优先级检测最佳的 'h264' 编码器: ['nvenc', 'qsv', 'amf']
[DEBUG] 正在测试编码器是否可用: h264_nvenc...
[DEBUG] 可用 Nvidia 显卡数: 1
[DEBUG] 找到 1 个 Nvidia GPUs, 耗时: 5s

[DEBUG] start 9 jobs
[DEBUG] 硬件编码器 'h264_nvenc' 可用。
[DEBUG] 已选择硬件编码器: h264_nvenc
[DEBUG] 最终确定使用的编码器: h264_nvenc
[DEBUG] 平台: Windows。正在按优先级检测最佳的 'hevc' 编码器: ['nvenc', 'qsv', 'amf']
[DEBUG] 正在测试编码器是否可用: hevc_nvenc...
[DEBUG] 硬件编码器 'hevc_nvenc' 可用。
[DEBUG] 已选择硬件编码器: hevc_nvenc
[DEBUG] 最终确定使用的编码器: hevc_nvenc
[DEBUG] app_cfg.proxy='http://127.0.0.1:2023'
[DEBUG] 无法连接 huggingface.co, 使用镜像替换: hf-mirror.com
[DEBUG] 以SRT字幕块翻译,每次翻译 50 条字幕块,翻译后暂停0.0s

从日志看,你设置了代理 http://127.0.0.1:2023,但该代理可能不可用或端口不正确,导致调用 OpenAI 兼容的翻译 API(如 DeepSeek、硅基流动等)时返回空响应,从而报 'NoneType' object has no attribute 'get'

请按以下顺序排查:

  1. 检查代理

    • 确认你确实运行着端⼝2023的代理程序(如 VPN/Clash/V2ray)。如不确定,请清空主界面的“网络代理”文本框,保存后重试。
    • 如果使用国外 API(如 OpenAI / Gemini),且身处国内,必须配置有效代理;如果使用国内 API(如 DeepSeek、百度翻译),无需代理,清空该文本框。
  2. 检查翻译渠道配置
    进入 菜单 → 翻译设置,找到你当前使用的翻译渠道(例如 DeepSeek / 硅基流动 / 本地大模型等),确保:

    • API 地址 格式正确(例如 https://api.deepseek.com,本地服务应为 http://127.0.0.1:端口不能是 0.0.0.0
    • API Key 填写正确且余额充足
    • 模型名称 与平台实际名称一致(如 deepseek-chatgpt-4o
  3. 临时切换免费翻译渠道测试
    将翻译渠道临时改为 Google 翻译微软翻译(无需 API Key,但 Google 需代理)。如果不再报错,说明原翻译渠道配置有问题。
  4. 勾选“发送完整字幕”
    在主界面翻译渠道行勾选该选项,有时能改善大模型响应稳定性。

如果以上步骤仍无法解决,请提供以下信息以便进一步定位:

  • 你正在使用哪个翻译渠道?
  • 该渠道设置页面里的 API 地址、模型名称、API Key(可省略中间字符)
  • 是否有使用 VPN 或代理?代理软件实际监听的端口是多少?

仍然無法解決問題

OpenRouter
API 地址:無
模型名稱:google/gemini-2.5-flash-lite
API 密鑰:sk


9xxxxx

问题核心是最常见的 API 地址未填写。OpenRouter 的 API 地址并非空着就能用,必须手动填入 https://openrouter.ai/api/v1。此外你使用的模型 google/gemini-2.5-flash-lite 可能因过旧或名称拼写问题导致 OpenRouter 无法识别(返回空响应)。请按以下步骤操作:

  1. 填写正确的 API 地址
    在菜单 → 翻译设置 → OpenRouter 设置中,将 API 地址 一项填入(注意不要带末尾斜杠):
    https://openrouter.ai/api/v1
  2. 更换模型名称
    尝试改为知识库中确认有效的 OpenRouter 模型:
    google/gemini-3-flash-preview
    或更通用的 openai/gpt-4o(确保余额充足)。如果仍要用 gemini-2.5-flash-lite,请去 OpenRouter 官网确认该模型 ID 是否仍有效(可能已改名或下线)。
  3. 确认代理可用
    你当前设置了代理 http://127.0.0.1:2023,请确保该代理正在运行且能正常访问 openrouter.ai(部分地区无需代理,可先清空代理文本框再试)。
  4. 测试连接
    完成上述修改后,点击 OpenRouter 设置面板中的“测试”按钮(如果有),或直接重新运行一次翻译任务。如果仍失败,请提供 OpenRouter 设置面板的完整截图(包括 API 地址、模型名称),以及新日志中相关报错行。

参考文档

Post Your Reply
Open source and free maintenance is not easy. If this project is helpful to you, please consider making a small donation to help the project continue to maintain and update. Dondate: ko-fi.com/jianchang512

Related resource