Import AITURK IDE 1.0.0-beta.1 from Hermes 63279301; preserve MIT license
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
"""Shared ffmpeg executable discovery for Discord voice paths.
|
||||
|
||||
Discovery itself is owned by ``tools.transcription_tools`` (the same helper
|
||||
the STT pipeline uses — PATH plus common Homebrew/local prefixes); this module
|
||||
only layers the Discord-voice-specific extras on top: an explicit
|
||||
``FFMPEG_PATH`` override and a Windows winget fallback for installs that
|
||||
never touch PATH.
|
||||
"""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import os
|
||||
import shutil
|
||||
from pathlib import Path
|
||||
|
||||
|
||||
def _shared_find_ffmpeg():
|
||||
"""Delegate to the repo-wide ffmpeg discovery helper when importable."""
|
||||
try:
|
||||
from tools.transcription_tools import _find_ffmpeg_binary
|
||||
except ImportError: # standalone plugin import (tests / sandboxes)
|
||||
return shutil.which("ffmpeg")
|
||||
return _find_ffmpeg_binary()
|
||||
|
||||
|
||||
def resolve_ffmpeg_executable() -> str:
|
||||
"""Return an ffmpeg command that also covers common Windows installs."""
|
||||
explicit = os.getenv("FFMPEG_PATH")
|
||||
if explicit and explicit.strip():
|
||||
return os.path.expandvars(os.path.expanduser(explicit.strip()))
|
||||
|
||||
discovered = _shared_find_ffmpeg()
|
||||
if discovered:
|
||||
return discovered
|
||||
|
||||
local_appdata = os.getenv("LOCALAPPDATA")
|
||||
if local_appdata:
|
||||
packages_dir = Path(local_appdata) / "Microsoft" / "WinGet" / "Packages"
|
||||
candidates = sorted(packages_dir.glob("Gyan.FFmpeg_*/*/bin/ffmpeg.exe"))
|
||||
if candidates:
|
||||
return str(candidates[-1])
|
||||
|
||||
return "ffmpeg"
|
||||
Reference in New Issue
Block a user