47 lines
1.0 KiB
Python
47 lines
1.0 KiB
Python
|
import shutil
|
||
|
import sys
|
||
|
from pathlib import Path
|
||
|
from typing import Optional
|
||
|
|
||
|
__shaka_platform = {
|
||
|
"win32": "win",
|
||
|
"darwin": "osx"
|
||
|
}.get(sys.platform, sys.platform)
|
||
|
|
||
|
|
||
|
def find(*names: str) -> Optional[Path]:
|
||
|
"""Find the path of the first found binary name."""
|
||
|
for name in names:
|
||
|
path = shutil.which(name)
|
||
|
if path:
|
||
|
return Path(path)
|
||
|
return None
|
||
|
|
||
|
|
||
|
FFMPEG = find("ffmpeg")
|
||
|
FFProbe = find("ffprobe")
|
||
|
FFPlay = find("ffplay")
|
||
|
SubtitleEdit = find("SubtitleEdit")
|
||
|
ShakaPackager = find(
|
||
|
"shaka-packager",
|
||
|
"packager",
|
||
|
f"packager-{__shaka_platform}",
|
||
|
f"packager-{__shaka_platform}-arm64",
|
||
|
f"packager-{__shaka_platform}-x64"
|
||
|
)
|
||
|
Aria2 = find("aria2c", "aria2")
|
||
|
CCExtractor = find(
|
||
|
"ccextractor",
|
||
|
"ccextractorwin",
|
||
|
"ccextractorwinfull"
|
||
|
)
|
||
|
HolaProxy = find("hola-proxy")
|
||
|
MPV = find("mpv")
|
||
|
Caddy = find("caddy")
|
||
|
MP4Decrypt = find("mp4decrypt")
|
||
|
|
||
|
__all__ = (
|
||
|
"FFMPEG", "FFProbe", "FFPlay", "SubtitleEdit", "ShakaPackager",
|
||
|
"Aria2", "CCExtractor", "HolaProxy", "MPV", "Caddy", "MP4Decrypt", "find"
|
||
|
)
|