Skip to content

fix: cap PyAV below 19 so faster-whisper can decode audio (#127) - #130

Draft
raphaelm22 wants to merge 2 commits into
ObscureAintSecure:masterfrom
raphaelm22:fix/pin-pyav-below-19
Draft

raphaelm22 wants to merge 2 commits into
ObscureAintSecure:masterfrom
raphaelm22:fix/pin-pyav-below-19

Conversation

@raphaelm22

Copy link
Copy Markdown

Summary

  • Name av directly in requirements.txt and pyproject.toml with >=11,<19. It is a transitive dependency of faster-whisper. PyAV 19 dropped the metadata_errors kwarg that faster-whisper 1.2.1's decode_audio still passes, so every plain-pip install fails its first transcription (Transcription fails on plain-pip installs: PyAV 19 removed metadata_errors (pin av<19) #127).
  • uv.lock: only the two new direct-dependency entries. No resolved version changes. uv lock --check passes with uv 0.12.7 and 0.13.0.
  • CI: a new Audio decode smoke step runs a real faster_whisper.decode_audio on a 1 s WAV after the pip install. The suite mocks faster-whisper and the import smoke never decodes audio, so CI could not see this break.
  • packaging-and-launch.md documents the transitive-dependency pattern and the new CI step.

Verification

  • av==18.1.0 accepts av.open(..., metadata_errors="ignore"). av==19.0.0 raises TypeError, so the cap is <19.
  • With av==17.1.0 in a plain-pip venv, a real 7.5 min recording transcribes (large-v3-turbo, pt) and diarizes normally.
  • The decode smoke command passes locally. Full suite: 408 passed.

A note on uv.lock

Regenerating with the newest uv (0.13.0) bumps the lock revision from 3 to 5 and re-resolves onnxruntime in one fork. uv 0.12.7, current when the lock was last written, only reorders resolution markers. To keep the diff limited to the actual change, I added the two entries on top of master's lock and verified them with uv lock --check on both versions. I can commit a full regeneration instead if you prefer.

Closes #127

🤖 Generated with Claude Code

…tSecure#127)

PyAV 19 removed the metadata_errors kwarg that faster-whisper 1.2.1's
decode_audio still passes, so every plain-pip install failed its first
transcription with "open() got an unexpected keyword argument
'metadata_errors'". uv users were unaffected: uv.lock pins av 17.1.0.

Name av directly in requirements.txt and pyproject.toml with a <19 cap
(18.1.0 verified working, 19.0.0 verified broken). The uv.lock change is
only the two new direct-dependency entries: resolved versions are
unchanged and `uv lock --check` passes.

Closes ObscureAintSecure#127
…ntSecure#127)

The suite mocks faster-whisper (torch DLL gotcha) and the import smoke
never decodes audio, so the PyAV 19 break was invisible to CI even though
the test job installs through the exact pip path that broke. Decode one
second of silence with faster_whisper.decode_audio after installing.
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.

Transcription fails on plain-pip installs: PyAV 19 removed metadata_errors (pin av<19)

1 participant