#5508 [notice] A new release of pip is available: 25.1.1 -> 26.1.2[notice] To update, run: pip install --upgrade pip➜ pyvi

2401:4900* Posted at: 2 hours ago

[notice] A new release of pip is available: 25.1.1 -> 26.1.2
[notice] To update, run: pip install --upgrade pip
➜ pyvideotrans git:(main) uv sync
Resolved 375 packages in 896ms
Uninstalled 1 package in 12ms
Installed 1 package in 9ms
~ grpcio==1.60.0
➜ pyvideotrans git:(main) uv run sp.py
Uninstalled 1 package in 5ms
Installed 1 package in 3ms
1782549941:Loading resources...
1782549941:Loading main window...
1782549941:Initializing UI...
1782549941:SetupUI end...
1782549941:import recognition ...
1782549941:import tts ...
1782549942:import translate ...
1782549942:Get cache ...
1782549942:Set default value ...

System Error (None): None
Traceback (most recent call last):
File "/Users/bodhijain/Documents/2026/pyvideotrans/.venv/lib/python3.10/site-packages/soundfile.py", line 267, in

_snd = _ffi.dlopen('sndfile')

File "/Users/bodhijain/Documents/2026/pyvideotrans/.venv/lib/python3.10/site-packages/cffi/api.py", line 150, in
......
on, another exception occurred:

Traceback (most recent call last):
File "/Users/bodhijain/Documents/2026/pyvideotrans/videotrans/task/only_one.py", line 46, in run

trk.recogn()

File "/Users/bodhijain/Documents/2026/pyvideotrans/videotrans/task/trans_create.py", line 319, in recogn

raw_subtitles = run_recogn(

File "/Users/bodhijain/Documents/2026/pyvideotrans/videotrans/recognition/__init__.py", line 187, in run

_cls: Union[Type[BaseRecogn], None] = get_class(recogn_type, "recognition", _ID_NAME_DICT)

File "/Users/bodhijain/Documents/2026/pyvideotrans/videotrans/__init__.py", line 28, in get_class

module = importlib.import_module(f'videotrans.{provider_type}{_module_map.imp}', __name__)

File "/Users/bodhijain/.local/share/uv/python/cpython-3.10.19-macos-aarch64-none/lib/python3.10/importlib/__init__.py", line 126, in import_module

return _bootstrap._gcd_import(name[level:], package, level)

File "", line 1050, in _gcd_import
File "", line 1027, in _find_and_load
File "", line 1006, in _find_and_load_unlocked
File "", line 688, in _load_unlocked
File "", line 883, in exec_module
File "", line 241, in _call_with_frames_removed
File "/Users/bodhijain/Documents/2026/pyvideotrans/videotrans/recognition/_whisper.py", line 13, in

from videotrans.process import openai_whisper, faster_whisper

File "/Users/bodhijain/Documents/2026/pyvideotrans/videotrans/process/__init__.py", line 2, in

from .tts_fun import qwen3tts_fun

File "/Users/bodhijain/Documents/2026/pyvideotrans/videotrans/process/tts_fun.py", line 9, in

import soundfile as sf

File "/Users/bodhijain/Documents/2026/pyvideotrans/.venv/lib/python3.10/site-packages/soundfile.py", line 276, in

_snd = _ffi.dlopen(_os.path.join(

File "/Users/bodhijain/Documents/2026/pyvideotrans/.venv/lib/python3.10/site-packages/cffi/api.py", line 150, in dlopen

lib, function_cache = _make_ffi_library(self, name, flags)

File "/Users/bodhijain/Documents/2026/pyvideotrans/.venv/lib/python3.10/site-packages/cffi/api.py", line 834, in _make_ffi_library

backendlib = _load_backend_lib(backend, libname, flags)

File "/Users/bodhijain/Documents/2026/pyvideotrans/.venv/lib/python3.10/site-packages/cffi/api.py", line 829, in _load_backend_lib

raise OSError(msg)

OSError: cannot load library '/Users/bodhijain/Documents/2026/pyvideotrans/.venv/lib/python3.10/site-packages/_soundfile_data/libsndfile.dylib': dlopen(/Users/bodhijain/Documents/2026/pyvideotrans/.venv/lib/python3.10/site-packages/_soundfile_data/libsndfile.dylib, 0x0002): tried: '/Users/bodhijain/Documents/2026/pyvideotrans/.venv/lib/python3.10/site-packages/_soundfile_data/libsndfile.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/Users/bodhijain/Documents/2026/pyvideotrans/.venv/lib/python3.10/site-packages/_soundfile_data/libsndfile.dylib' (no such file), '/Users/bodhijain/Documents/2026/pyvideotrans/.venv/lib/python3.10/site-packages/_soundfile_data/libsndfile.dylib' (no such file). Additionally, ctypes.util.find_library() did not manage to locate a library called '/Users/bodhijain/Documents/2026/pyvideotrans/.venv/lib/python3.10/site-packages/_soundfile_data/libsndfile.dylib'

cfg=[TaskCfgVTT]当前工作模式: 翻译视频或音频 单视频模式
原始输入文件名: /Users/bodhijain/Movies/Backend Development/@couste 01 Backend Domination_ Create efficient backend.mp4,
输出结果保存到文件夹: /Users/bodhijain/Movies/Backend Development/_video_out/@couste 01 Backend Domination_ Create efficient backend-mp4,
临时文件夹: /Users/bodhijain/Documents/2026/pyvideotrans/tmp/9353/1d5f78bdc8
已选 清理已存在
未选 启用CUDA加速
未选 降噪
ASR Channel:faster-whisper(LocalBuilt-in), model_name: large-v3-turbo, 发音语言: English, 断句方式:默认断句
发音语言和目标语言相同,不翻译字幕
未选 配音角色,不进行配音
字幕: Embed Hard Subs
代理地址:


=
system:macOS-26.5.1-arm64-arm-64bit
version:v4.03
frozen:False
language:en
root_dir:/Users/bodhijain/Documents/2026/pyvideotrans
Python: 3.10.19 (main, Feb 12 2026, 00:36:33) [Clang 21.1.4 ]

19 Replies

The crash is caused by a missing system library libsndfile, which is required by the soundfile Python package (used for audio processing). This is a known dependency on macOS.

Solution:

  1. Install libsndfile via Homebrew:

    brew install libsndfile
  2. After installation, re-sync the Python environment to ensure soundfile can find the library:

    uv sync
  3. Run the app again:

    uv run sp.py

If the error persists, try reinstalling the soundfile package explicitly:

uv pip install --force-reinstall soundfile

Reference

have done all this cmds but still the error
Install libsndfile via Homebrew:

brew install libsndfile
After installation, re-sync the Python environment to ensure soundfile can find the library:

uv sync
Run the app again:

uv run sp.py
If the error persists, try reinstalling the soundfile package explicitly:

uv pip install --force-reinstall soundfile

问题在于 Homebrew 安装的 libsndfile 动态库并未被 Python 的 soundfile 包自动找到。错误日志显示它尝试加载 .venv/lib/python3.10/site-packages/_soundfile_data/libsndfile.dylib,但这个文件不存在。

请按以下步骤逐一排查:

  1. 确认 libsndfile 已安装并找到其位置

    brew list libsndfile
    brew --prefix libsndfile

    输出类似 /opt/homebrew/opt/libsndfile(Apple Silicon Mac)或 /usr/local/opt/libsndfile(Intel Mac)。

  2. 手动创建符号链接,使 soundfile 能找到库

    # 进入你的虚拟环境 soundfile 目录
    cd /Users/bodhijain/Documents/2026/pyvideotrans/.venv/lib/python3.10/site-packages/_soundfile_data
    # 创建指向 Homebrew 安装的 libsndfile.dylib 的符号链接(路径根据上一步结果调整)
    ln -sf /opt/homebrew/opt/libsndfile/lib/libsndfile.dylib libsndfile.dylib
  3. 验证链接

    ls -la /Users/bodhijain/Documents/2026/pyvideotrans/.venv/lib/python3.10/site-packages/_soundfile_data/

    应显示 libsndfile.dylib -> /opt/homebrew/opt/libsndfile/lib/libsndfile.dylib

  4. 启动软件前设置动态库路径(备用方案)
    如果上述符号链接无效,运行前先 export 环境变量:

    export DYLD_LIBRARY_PATH=/opt/homebrew/lib:$DYLD_LIBRARY_PATH
    uv run sp.py
  5. 完全重建 soundfile(强制从源码编译)

    uv pip install --force-reinstall --no-binary soundfile soundfile

    这会让 soundfile 在安装时自动搜索系统 libsndfile。

完成以上步骤后,再次执行 uv run sp.py。如果仍然失败,请提供以下信息以便进一步分析:

  • brew config 输出
  • ls -la /opt/homebrew/lib/libsndfile*/usr/local/lib/libsndfile* 的实际存在情况
  • 软件版本号(左上角)

请查阅相关文档:

➜ ~ brew list libsndfile
brew --prefix libsndfile
/opt/homebrew/Cellar/libsndfile/1.2.2_1/bin/sndfile-cmp
/opt/homebrew/Cellar/libsndfile/1.2.2_1/bin/sndfile-concat
/opt/homebrew/Cellar/libsndfile/1.2.2_1/bin/sndfile-convert
/opt/homebrew/Cellar/libsndfile/1.2.2_1/bin/sndfile-deinterleave
/opt/homebrew/Cellar/libsndfile/1.2.2_1/bin/sndfile-info
/opt/homebrew/Cellar/libsndfile/1.2.2_1/bin/sndfile-interleave
/opt/homebrew/Cellar/libsndfile/1.2.2_1/bin/sndfile-metadata-get
/opt/homebrew/Cellar/libsndfile/1.2.2_1/bin/sndfile-metadata-set
/opt/homebrew/Cellar/libsndfile/1.2.2_1/bin/sndfile-play
/opt/homebrew/Cellar/libsndfile/1.2.2_1/bin/sndfile-salvage
/opt/homebrew/Cellar/libsndfile/1.2.2_1/include/ (2 files)
/opt/homebrew/Cellar/libsndfile/1.2.2_1/lib/libsndfile.1.0.37.dylib
/opt/homebrew/Cellar/libsndfile/1.2.2_1/lib/cmake/ (4 files)
/opt/homebrew/Cellar/libsndfile/1.2.2_1/lib/pkgconfig/sndfile.pc
/opt/homebrew/Cellar/libsndfile/1.2.2_1/lib/ (3 other files)
/opt/homebrew/Cellar/libsndfile/1.2.2_1/sbom.spdx.json
/opt/homebrew/Cellar/libsndfile/1.2.2_1/share/doc/ (16 files)
/opt/homebrew/Cellar/libsndfile/1.2.2_1/share/man/ (10 files)
/opt/homebrew/opt/libsndfile
➜ ~
➜ ~ ls -la /Users/bodhijain/Documents/2026/pyvideotrans/.venv/lib/python3.10/site-packages/_soundfile_data/

total 6248
-rw-r--r-- 1 bodhijain staff 125 27 Jun 13:00 __init__.py
drwxr-xr-x 5 bodhijain staff 160 27 Jun 13:04 .
drwxr-xr-x 640 bodhijain staff 20480 27 Jun 14:16 ..
-rw-r--r-- 1 bodhijain staff 26518 27 Jun 13:00 COPYING
-rw-r--r-- 1 bodhijain staff 3048520 27 Jun 13:00 libsndfile_arm64.dylib

从你提供的输出可以看到,Homebrew 已经安装了 libsndfile,其库文件位于 /opt/homebrew/Cellar/libsndfile/1.2.2_1/lib/libsndfile.1.0.37.dylib。但 Python 的 soundfile 包在它的数据目录 _soundfile_data 下只放置了 libsndfile_arm64.dylib(这可能是旧版本或不同架构的库),导致它找不到所需的 libsndfile.dylib

解决方案:_soundfile_data 目录下创建一个符号链接,指向 Homebrew 安装的 libsndfile.dylib,或者直接使用已有的 libsndfile_arm64.dylib 作为备选。推荐方案如下:

方案一:创建符号链接(最直接)

运行以下命令:

cd /Users/bodhijain/Documents/2026/pyvideotrans/.venv/lib/python3.10/site-packages/_soundfile_data
ln -sf /opt/homebrew/Cellar/libsndfile/1.2.2_1/lib/libsndfile.1.0.37.dylib libsndfile.dylib

验证符号链接已创建:

ls -la libsndfile.dylib

应该显示类似 libsndfile.dylib -> /opt/homebrew/Cellar/libsndfile/1.2.2_1/lib/libsndfile.1.0.37.dylib

然后重新运行软件:

uv run sp.py

方案二:使用已有的 libsndfile_arm64.dylib(如果方案一无效)

soundfile 有时会识别 libsndfile_arm64.dylib。你可以尝试复制或重命名该文件:

cd /Users/bodhijain/Documents/2026/pyvideotrans/.venv/lib/python3.10/site-packages/_soundfile_data
cp libsndfile_arm64.dylib libsndfile.dylib

然后再次运行软件。

方案三:强制重新安装 soundfile 并避免使用预编译 wheel(可能需要互联网)

uv pip install --force-reinstall --no-binary soundfile soundfile

这会让 soundfile 在安装过程中自动搜索系统上的 libsndfile,并生成正确的符号链接。安装后再次运行软件。


完成以上任意一步后,启动 uv run sp.py 即可解决 OSError: cannot load library 错误。如果问题依然存在,请提供软件左上角的版本号以及执行 ls -la /opt/homebrew/lib/libsndfile* 的输出。

Please in english langauge

The error persists because the Python soundfile package cannot locate a library named libsndfile.dylib inside _soundfile_data/. You already have the library installed by Homebrew at:
/opt/homebrew/Cellar/libsndfile/1.2.2_1/lib/libsndfile.1.0.37.dylib

A symbolic link is missing. Execute the following commands:

cd /Users/bodhijain/Documents/2026/pyvideotrans/.venv/lib/python3.10/site-packages/_soundfile_data
ln -sf /opt/homebrew/Cellar/libsndfile/1.2.2_1/lib/libsndfile.1.0.37.dylib libsndfile.dylib

Then launch the app again:

uv run sp.py

If the error still appears, try this alternative (use the existing arm64 file):

cp libsndfile_arm64.dylib libsndfile.dylib

Or force reinstall soundfile without prebuilt wheels (detects system libsndfile automatically):

uv pip install --force-reinstall --no-binary soundfile soundfile

Please confirm if the issue is resolved. If not, provide the exact version number shown at the top‑left corner of the software window.

it got stuck for long time
➜ pyvideotrans git:(main) uv run sp.py
Uninstalled 1 package in 10ms
Installed 1 package in 9ms
1782550344:Loading resources...
1782550344:Loading main window...
1782550344:Initializing UI...
1782550344:SetupUI end...
1782550344:import recognition ...
1782550344:import tts ...
1782550344:import translate ...
1782550344:Get cache ...
1782550344:Set default value ...
1782550344:import voices list ...
1782550344:Set tts voice ...
1782550344:show main window ...
1782550344:Bind signal...
1782550345:set cursor...
1782550345:preload TTS win...
1782550345:preload STT win...
1782550345:preload translate srt win...
1782550345:end
Fetching 5 files: 0%| | 0/5 [00:00

The startup is stuck at "Fetching 5 files: 0%" because the software is trying to download AI models (likely faster-whisper or other models) from Hugging Face or similar sources. This can take a very long time or fail due to network issues, especially in mainland China.

Solutions (try in order):

  1. Cancel the stuck process – Press Ctrl+C in the terminal to stop it. Then set up a proxy or use a mirror for model downloads.
  2. Set a Hugging Face mirror (recommended for mainland China):

    export HF_ENDPOINT=https://hf-mirror.com

    Then restart the software:

    uv run sp.py
  3. Manual model download – Instead of waiting for the automatic download, manually download the faster-whisper models. For example:

    • Go to https://hf-mirror.com/Systran/faster-whisper-large-v3/tree/main (or the model you need)
    • Download all files (.bin, .json, .txt) into the correct folder under models/ directory.
      The folder name should be something like models--Systran--faster-whisper-large-v3.
      (See the documentation for exact folder names: faster-whisper models)
  4. Use a VPN – If you are outside China or have access to global internet, a stable VPN may resolve the slow downloads.
  5. Skip model download temporarily – If you just want to test the software without a specific model, you can comment out the preload step in the code, but this is not recommended for normal use.

After the download completes, the software will continue loading normally. If it still hangs, please check your network connection and try again.

Reference:

maximum recursion depth exceeded while calling a Python object,Traceback (most recent call last):
File "/Users/bodhijain/Documents/2026/pyvideotrans/videotrans/process/stt_fun.py", line 174, in _create_model

model = WhisperModel(

File "/Users/bodhijain/Documents/2026/pyvideotrans/.venv/lib/python3.10/site-packages/faster_whisper/transcribe.py", line 689, in init

self.model = ctranslate2.models.Whisper(

RuntimeError: Unable to open file 'model.bin' in model '/Users/bodhijain/Documents/2026/pyvideotrans/models/models--mobiuslabsgmbh--faster-whisper-large-v3-turbo'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/Users/bodhijain/Documents/2026/pyvideotrans/videotrans/process/stt_fun.py", line 174, in _create_model

model = WhisperModel(

File "/Users/bodhijain/Documents/2026/pyvideotrans/.venv/lib/python3.10/site-packages/faster_whisper/transcribe.py", line 689, in init

self.model = c

......
/pyvideotrans/videotrans/process/stt_fun.py", line 192, in _create_model

return _create_model('int8')

File "/Users/bodhijain/Documents/2026/pyvideotrans/videotrans/process/stt_fun.py", line 196, in _create_model

return _create_model('float32')

File "/Users/bodhijain/Documents/2026/pyvideotrans/videotrans/process/stt_fun.py", line 191, in _create_model

logger.warning(f'faster-whisper CPU下 加载模型失败,更改为 [int8] 类型后重试{e}')

File "/Users/bodhijain/.local/share/uv/python/cpython-3.10.19-macos-aarch64-none/lib/python3.10/logging/__init__.py", line 1489, in warning

self._log(WARNING, msg, args, **kwargs)

File "/Users/bodhijain/.local/share/uv/python/cpython-3.10.19-macos-aarch64-none/lib/python3.10/logging/__init__.py", line 1624, in _log

self.handle(record)

File "/Users/bodhijain/.local/share/uv/python/cpython-3.10.19-macos-aarch64-none/lib/python3.10/logging/__init__.py", line 1634, in handle

self.callHandlers(record)

File "/Users/bodhijain/.local/share/uv/python/cpython-3.10.19-macos-aarch64-none/lib/python3.10/logging/__init__.py", line 1696, in callHandlers

hdlr.handle(record)

File "/Users/bodhijain/.local/share/uv/python/cpython-3.10.19-macos-aarch64-none/lib/python3.10/logging/__init__.py", line 968, in handle

self.emit(record)

File "/Users/bodhijain/.local/share/uv/python/cpython-3.10.19-macos-aarch64-none/lib/python3.10/logging/__init__.py", line 1218, in emit

StreamHandler.emit(self, record)

File "/Users/bodhijain/.local/share/uv/python/cpython-3.10.19-macos-aarch64-none/lib/python3.10/logging/__init__.py", line 1100, in emit

msg = self.format(record)

File "/Users/bodhijain/.local/share/uv/python/cpython-3.10.19-macos-aarch64-none/lib/python3.10/logging/__init__.py", line 943, in format

return fmt.format(record)

File "/Users/bodhijain/.local/share/uv/python/cpython-3.10.19-macos-aarch64-none/lib/python3.10/logging/__init__.py", line 679, in format

if self.usesTime():

File "/Users/bodhijain/.local/share/uv/python/cpython-3.10.19-macos-aarch64-none/lib/python3.10/logging/__init__.py", line 647, in usesTime

return self._style.usesTime()

File "/Users/bodhijain/.local/share/uv/python/cpython-3.10.19-macos-aarch64-none/lib/python3.10/logging/__init__.py", line 424, in usesTime

return self._fmt.find(self.asctime_search) >= 0

RecursionError: maximum recursion depth exceeded while calling a Python object

cfg=[TaskCfgVTT]当前工作模式: 翻译视频或音频 单视频模式
原始输入文件名: /Users/bodhijain/Movies/Backend Development/@couste 01 Backend Domination_ Create efficient backend.mp4,
输出结果保存到文件夹: /Users/bodhijain/Movies/Backend Development/_video_out/@couste 01 Backend Domination_ Create efficient backend-mp4,
临时文件夹: /Users/bodhijain/Documents/2026/pyvideotrans/tmp/10419/1d5f78bdc8
已选 清理已存在
未选 启用CUDA加速
未选 降噪
ASR Channel:faster-whisper(LocalBuilt-in), model_name: large-v3-turbo, 发音语言: English, 断句方式:默认断句
发音语言和目标语言相同,不翻译字幕
未选 配音角色,不进行配音
字幕: Embed Hard Subs
代理地址:

模型文件缺失导致递归加载失败。需手动下载 faster-whisper-large-v3-turbo 模型文件到指定目录。

操作步骤:

# 1. 进入模型目录
cd /Users/bodhijain/Documents/2026/pyvideotrans/models

# 2. 确认目录是否存在,若不存在则创建
mkdir -p models--mobiuslabsgmbh--faster-whisper-large-v3-turbo

# 3. 使用镜像站下载所有必要文件(推荐使用 hf-mirror.com)
export HF_ENDPOINT=https://hf-mirror.com
# 如果需要使用 Python 下载,可用 huggingface_hub,或者直接用浏览器下载

手动下载文件清单(浏览器打开镜像链接):

或者使用命令行工具 huggingface-cli 下载(需先安装):

# 安装 huggingface-cli(如果未安装)
pip install -U huggingface_hub

# 设定镜像
export HF_ENDPOINT=https://hf-mirror.com

# 下载模型到指定目录
huggingface-cli download mobiuslabsgmbh/faster-whisper-large-v3-turbo --local-dir /Users/bodhijain/Documents/2026/pyvideotrans/models/models--mobiuslabsgmbh--faster-whisper-large-v3-turbo

下载完成后,重新启动软件:

cd /Users/bodhijain/Documents/2026/pyvideotrans
uv run sp.py

额外提示: 日志递归错误(RecursionError)是由于模型不存在导致的日志记录异常,模型文件就位后会自动解决。如果仍然遇到,可清理日志文件后重试。


相关文档

In english pls

The error maximum recursion depth exceeded is caused by a missing model file (model.bin). The software attempts to load the model, fails, retries with different precision types, and gets stuck in a recursive loop during error logging. The root cause is that the model directory /Users/bodhijain/Documents/2026/pyvideotrans/models/models--mobiuslabsgmbh--faster-whisper-large-v3-turbo is incomplete or the model.bin file is missing.

Solution: Manually download the missing model files.

Steps:

  1. Go to the models directory:

    cd /Users/bodhijain/Documents/2026/pyvideotrans/models
  2. Check if the folder exists:

    ls -la models--mobiuslabsgmbh--faster-whisper-large-v3-turbo/

    If the folder is missing or empty, create it:

    mkdir -p models--mobiuslabsgmbh--faster-whisper-large-v3-turbo
  3. Download the model files. Use a mirror (especially if you're in a region with slow access to Hugging Face):

    • Set a mirror:

      export HF_ENDPOINT=https://hf-mirror.com
    • Install huggingface_hub if needed:

      pip install -U huggingface_hub
    • Download the model directly into the folder:

      huggingface-cli download mobiuslabsgmbh/faster-whisper-large-v3-turbo --local-dir /Users/bodhijain/Documents/2026/pyvideotrans/models/models--mobiuslabsgmbh--faster-whisper-large-v3-turbo

      This will download model.bin (~1.5 GB), config.json, tokenizer files, etc.

    Alternatively, manually download from the mirror URL:
    https://hf-mirror.com/mobiuslabsgmbh/faster-whisper-large-v3-turbo/tree/main
    and place all files into the folder.

  4. Restart the software:

    uv run sp.py

The recursion error will disappear once the model file is present. If you still see issues, confirm that the file model.bin exists in the folder:

ls -lh /Users/bodhijain/Documents/2026/pyvideotrans/models/models--mobiuslabsgmbh--faster-whisper-large-v3-turbo/model.bin

Reference:

huggingface-cli download mobiuslabsgmbh/faster-whisper-large-v3-turbo --local-dir /Users/bodhijain/Documents/2026/pyvideotrans/models/models--mobiuslabsgmbh--faster-whisper-large-v3-turbo

Warning: huggingface-cli is deprecated and no longer works. Use hf instead.

Hint: hf is already installed! Use it directly.

Hint: Examples:
hf auth login
hf download unsloth/gemma-4-31B-it-GGUF
hf upload my-cool-model . .
hf models ls --search "gemma"
hf repos ls --format json
hf jobs run python:3.12 python -c 'print("Hello!")'

Understood. The huggingface-cli tool has been deprecated in favor of the new hf CLI. Use the following command to download the model:First, set the mirror if needed:export HF_ENDPOINT=https://hf-mirror.comThen use the hf tool:hf download mobiuslabsgmbh/faster-whisper-large-v3-turbo --local-dir /Users/bodhijain/Documents/2026/pyvideotrans/models/models--mobiuslabsgmbh--faster-whisper-large-v3-turboIf the hf tool is not recognized, you can install it via pip:pip install -U huggingface-hub[hf]Alternatively, manually download the files from the mirror using a browser:Open https://hf-mirror.com/mobiuslabsgmbh/faster-whisper-large-v3-turbo/tree/mainDownload all the listed files (especially model.bin, config.json, tokenizer.json, vocabulary.json) into the folder.Then restart the software:cd /Users/bodhijain/Documents/2026/pyvideotrans
uv run sp.pyIf you still get the recursion error, verify the model.bin file exists:ls -lh /Users/bodhijain/Documents/2026/pyvideotrans/models/models--mobiuslabsgmbh--faster-whisper-large-v3-turbo/model.binThe file should be around 1.5 GB. If it's smaller or missing, re-download.Reference:faster-whisper model manual download guide

Error embedding final dub: Filter not found
Traceback (most recent call last):
File "/Users/bodhijain/Documents/2026/pyvideotrans/videotrans/task/trans_create.py", line 1666, in _subprocess

subprocess.run(

File "/Users/bodhijain/.local/share/uv/python/cpython-3.10.19-macos-aarch64-none/lib/python3.10/subprocess.py", line 526, in run

raise CalledProcessError(retcode, process.args,

subprocess.CalledProcessError: Command '['ffmpeg', '-nostdin', '-y', '-progress', 'compose1782553451.524069.txt', '-i', 'novoice.mp4', '-i', 'will_embed.m4a', '-filter_complex', "[0:v]subtitles=filename='end.ass'[v_out]", '-map', '[v_out]', '-map', '1:a', '-c:v', 'h264_videotoolbox', '-c:a', 'copy', '-q:v', '67', '-movflags', '+faststart', '-shortest', 'laste_target.mp4']' returned non-zero exit status 8.

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "/Users/bodhijain/Documents/2026/pyvideotrans/videotrans/task/trans_crea
......
', '-progress', 'compose1782553451.524069.txt', '-i', 'novoice.mp4', '-i', 'will_embed.m4a', '-filter_complex', "[0:v]subtitles=filename='end.ass'[v_out]", '-map', '[v_out]', '-map', '1:a', '-c:v', 'h264_videotoolbox', '-c:a', 'copy', '-q:v', '67', '-movflags', '+faststart', '-shortest', 'laste_target.mp4']' returned non-zero exit status 8.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/Users/bodhijain/Documents/2026/pyvideotrans/videotrans/util/help_ffmpeg.py", line 58, in runffmpeg

subprocess.run(

File "/Users/bodhijain/.local/share/uv/python/cpython-3.10.19-macos-aarch64-none/lib/python3.10/subprocess.py", line 526, in run

raise CalledProcessError(retcode, process.args,

subprocess.CalledProcessError: Command '['ffmpeg', '-hide_banner', '-nostdin', '-ignore_unknown', '-threads', '0', '-y', '-progress', 'compose1782553451.524069.txt', '-i', 'novoice.mp4', '-i', 'will_embed.m4a', '-filter_complex', "[0:v]subtitles=filename='end.ass'[v_out]", '-map', '[v_out]', '-map', '1:a', '-c:v', 'libx264', '-c:a', 'copy', '-crf', '23', '-preset', 'medium', '-movflags', '+faststart', '-shortest', 'laste_target.mp4']' returned non-zero exit status 8.

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "/Users/bodhijain/Documents/2026/pyvideotrans/videotrans/task/trans_create.py", line 1486, in _join_video_audio_srt

runffmpeg(cmd0 + cmd1 + subtitle_filter + cmd2 + enc_qua + cmd3,

File "/Users/bodhijain/Documents/2026/pyvideotrans/videotrans/util/help_ffmpeg.py", line 88, in runffmpeg

raise FFmpegError(err) from e

videotrans.configure.excepts.FFmpegError: : Filter not found

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "/Users/bodhijain/Documents/2026/pyvideotrans/videotrans/task/only_one.py", line 124, in run

trk.assembling()

File "/Users/bodhijain/Documents/2026/pyvideotrans/videotrans/task/trans_create.py", line 761, in assembling

self._join_video_audio_srt()

File "/Users/bodhijain/Documents/2026/pyvideotrans/videotrans/task/trans_create.py", line 1489, in _join_video_audio_srt

raise VideoTransError(tr('Error in embedding the final step of the subtitle dubbing')+str(e)) from e

videotrans.configure.excepts.VideoTransError: Error embedding final dub: Filter not found

cfg=[TaskCfgVTT]当前工作模式: 翻译视频或音频 单视频模式
原始输入文件名: /Users/bodhijain/Movies/Backend Development/@couste 01 Backend Domination_ Create efficient backend.mp4,
输出结果保存到文件夹: /Users/bodhijain/Movies/Backend Development/_video_out/@couste 01 Backend Domination_ Create efficient backend-mp4,
临时文件夹: /Users/bodhijain/Documents/2026/pyvideotrans/tmp/11174/1d5f78bdc8
已选 清理已存在
未选 启用CUDA加速
未选 降噪
ASR Channel:faster-whisper(LocalBuilt-in), model_name: large-v3-turbo, 发音语言: English, 断句方式:默认断句
发音语言和目标语言相同,不翻译字幕
未选 配音角色,不进行配音
字幕: Embed Hard Subs
代理地址:

The FFmpeg error "Filter not found" indicates that your system's FFmpeg was compiled without the subtitles filter (requires libass). This is a common issue on macOS when FFmpeg is installed via Homebrew without enabling subtitle support.

Solution: Reinstall FFmpeg with subtitle filter support

# 1. Remove current FFmpeg
brew uninstall ffmpeg

# 2. Reinstall with libass enabled
brew install ffmpeg --with-libass

If the above fails (Homebrew no longer supports --with-libass by default), use this alternative method:

# 3. Install from a custom formula that includes libass
brew tap homebrew-ffmpeg/ffmpeg
brew install homebrew-ffmpeg/ffmpeg/ffmpeg --with-libass

Or download a pre-built static FFmpeg binary that includes all filters:

  1. Download from https://evermeet.cx/ffmpeg/ (macOS builds include subtitles filter)
  2. Replace the FFmpeg binary in your project's ffmpeg/ folder (if present) or add it to your PATH

Verify the fix

After reinstallation, confirm the subtitles filter is available:

ffmpeg -filters | grep subtitles

You should see an entry like:

... subtitles  Render subtitles onto input video using the libass library.

Then restart pyVideoTrans and try the translation again.

Alternative workaround (if you cannot reinstall FFmpeg)

You can use soft subtitles instead of hard subtitles during the final embedding step:

  1. In the main interface, under "Embed subtitles type", select Soft Subs (not Hard Subs or Dual Hard Subs)
  2. Soft subtitles do not require the subtitles filter and will work with a basic FFmpeg installation.

This will produce a video with an embedded subtitle track that can be toggled on/off by the player.


Reference:
macOS/Linux deployment guide – FFmpeg dependencies

ubmitting packet to decoder: Invalid data found when processing input submitting packet to decoder: Invalid data found when processing input submitting packet to decoder: Invalid data found when processing input submitting packet to decoder: Invalid data found when processing input submitting packet to decoder: Invalid data found when processing input submitting packet to decoder: Invalid data found when processing input submitting packet to decoder: Invalid data found when processing input submitting packet to decoder: Invalid data found when processing input submitting packet to decoder: Invalid data found when processing input submitting packet to decoder: Invalid data found when processing input submitting packet to decoder: Invalid data found when processing input submitting packet to decoder: Invalid data found when processing input submitting packet to decoder: Invalid data found when processing input submitting packet to decoder: Invalid data found when processing input submitting packet to decoder: Invalid data found when processing input submitting packet to decoder: Invalid data found when processing input submitting packet to decoder: Invalid data found when processing input submitting packet to decoder: Invalid data found when processing input submitting packet to decoder: Invalid data found when processing input submitting packet to decoder: Invalid data found when processing input submitting packet to decoder: Invalid data found when processing input submitting packet to decoder: Invalid data found when processing input submitting packet to decoder: Invalid data found when processing input submitting packet to decoder: Invalid data found when processing input submitting packet to decoder: Invalid data found when processing input submitting packet to decoder: Invalid data found when processing input submitting packet to decoder: Invalid data found when processing input submitting packet to decoder: Invalid data found when processing input submitting packet to decoder: Invalid data found when processing input submitting packet to decoder: Invalid data found when processing input submitting packet to decoder: Invalid data found when processing input submitting packet to decoder: Invalid data found when processing input submitting packet to decoder: Invalid data found when processing input submitting packet to decoder: Invalid data found when processing input submitting packet to decoder: Invalid data found when processing input submitting packet to decoder: Invalid data found when processing input submitting packet to decoder: Invalid data found when processing input submitting packet to decoder: Invalid data found when processing input submitting packet to decoder: Invalid data found when processing input submitting packet to decoder: Invalid data found when processing input submitting packet to decoder: Invalid data found when processing input submitting packet to decoder: Invalid data found when processing input submitting packet to decoder: Invalid data found when processing input submitting packet to decoder: Invalid data found when processing input submitting packet to decoder: Invalid data found when processing input submitting packet to decoder: Invalid data found when proce

This FFmpeg error indicates the input video file is corrupted or contains unsupported/invalid data. The decoder is repeatedly failing to process packets from your source file @couste 01 Backend Domination_ Create efficient backend.mp4. This is not a pyVideoTrans bug; the source file itself is problematic.

Solutions (try in order):

1. Repair or re-encode the original video

Use FFmpeg to re-encode the corrupted video into a clean H.264 MP4 file:

ffmpeg -err_detect ignore_err -i "/Users/bodhijain/Movies/Backend Development/@couste 01 Backend Domination_ Create efficient backend.mp4" -c:v libx264 -c:a aac -strict experimental clean_input.mp4

Then import clean_input.mp4 into pyVideoTrans.

2. Verify the file is complete

Check the file size:

ls -lh "/Users/bodhijain/Movies/Backend Development/@couste 01 Backend Domination_ Create efficient backend.mp4"

If the file is unexpectedly small (e.g., a few KB), it likely downloaded incompletely. Re-download the video.

3. Use a different format

If the video uses an unusual codec, convert it first:

ffmpeg -i input.mp4 -c:v libx264 -preset fast -crf 23 -c:a aac converted.mp4

4. Rename the file (path issues)

The filename contains special characters (@ and space). While modern systems handle this, it's safer to use simple names:

  • Rename to backend.mp4
  • Move to a short path like /Users/bodhijain/Movies/

Then re-run the translation.

5. Check for damaged audio stream

The error may be specific to the audio track. Try extracting only the video:

ffmpeg -i input.mp4 -c:v copy -an video_only.mp4

If that succeeds, the audio stream is corrupted. Use a tool to repair the audio or replace it with a silent track.

If none work

  • Provide the exact FFmpeg output when trying the commands above.
  • Software version number (top-left corner of pyVideoTrans).

Reference

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