mirror of
https://github.com/ArchiveBox/ArchiveBox.git
synced 2025-05-13 06:34:25 -04:00

Some checks are pending
Build Debian package / build (push) Waiting to run
Build Docker image / buildx (push) Waiting to run
Build Homebrew package / build (push) Waiting to run
Run linters / lint (push) Waiting to run
Build Pip package / build (push) Waiting to run
Run tests / python_tests (ubuntu-22.04, 3.11) (push) Waiting to run
Run tests / docker_tests (push) Waiting to run
42 lines
1.5 KiB
Python
42 lines
1.5 KiB
Python
__package__ = 'plugins_extractor.ytdlp'
|
|
|
|
import subprocess
|
|
from typing import List
|
|
|
|
from pydantic import InstanceOf
|
|
from pydantic_pkgr import BinProvider, BinName, BinaryOverrides
|
|
|
|
from abx.archivebox.base_binary import BaseBinary, env, apt, brew
|
|
|
|
from plugins_pkg.pip.binproviders import LIB_PIP_BINPROVIDER, VENV_PIP_BINPROVIDER, SYS_PIP_BINPROVIDER
|
|
|
|
from .config import YTDLP_CONFIG
|
|
|
|
|
|
class YtdlpBinary(BaseBinary):
|
|
name: BinName = YTDLP_CONFIG.YTDLP_BINARY
|
|
binproviders_supported: List[InstanceOf[BinProvider]] = [LIB_PIP_BINPROVIDER, VENV_PIP_BINPROVIDER, SYS_PIP_BINPROVIDER, apt, brew, env]
|
|
|
|
YTDLP_BINARY = YtdlpBinary()
|
|
|
|
|
|
class FfmpegBinary(BaseBinary):
|
|
name: BinName = 'ffmpeg'
|
|
binproviders_supported: List[InstanceOf[BinProvider]] = [apt, brew, env]
|
|
|
|
overrides: BinaryOverrides = {
|
|
'env': {
|
|
# 'abspath': lambda: shutil.which('ffmpeg', PATH=env.PATH),
|
|
'version': lambda: subprocess.run(['ffmpeg', '-version'], capture_output=True, text=True).stdout,
|
|
},
|
|
'apt': {
|
|
# 'abspath': lambda: shutil.which('ffmpeg', PATH=apt.PATH),
|
|
'version': lambda: subprocess.run(['apt', 'show', 'ffmpeg'], capture_output=True, text=True).stdout,
|
|
},
|
|
'brew': {
|
|
# 'abspath': lambda: shutil.which('ffmpeg', PATH=brew.PATH),
|
|
'version': lambda: subprocess.run(['brew', 'info', 'ffmpeg', '--quiet'], capture_output=True, text=True).stdout,
|
|
},
|
|
}
|
|
|
|
FFMPEG_BINARY = FfmpegBinary()
|