Skip to content

Commit 7cfd14e

Browse files
authored
[DOCS] Add ffmpeg path docs (#487)
1 parent 196b99c commit 7cfd14e

2 files changed

Lines changed: 25 additions & 5 deletions

File tree

src/ytdl_sub/config/config_validator.py

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66

77
from ytdl_sub.prebuilt_presets import PREBUILT_PRESETS
88
from ytdl_sub.utils.system import IS_WINDOWS
9+
from ytdl_sub.validators.file_path_validators import ExistingFileValidator
910
from ytdl_sub.validators.strict_dict_validator import StrictDictValidator
1011
from ytdl_sub.validators.validators import LiteralDictValidator
1112
from ytdl_sub.validators.validators import StringValidator
@@ -39,12 +40,11 @@ def __init__(self, name: str, value: Any):
3940
self._lock_directory = self._validate_key(
4041
key="lock_directory", validator=StringValidator, default=_DEFAULT_LOCK_DIRECTORY
4142
)
42-
# TODO: Validate these exist
4343
self._ffmpeg_path = self._validate_key(
44-
key="ffmpeg_path", validator=StringValidator, default=_DEFAULT_FFMPEG_PATH
44+
key="ffmpeg_path", validator=ExistingFileValidator, default=_DEFAULT_FFMPEG_PATH
4545
)
4646
self._ffprobe_path = self._validate_key(
47-
key="ffprobe_path", validator=StringValidator, default=_DEFAULT_FFPROBE_PATH
47+
key="ffprobe_path", validator=ExistingFileValidator, default=_DEFAULT_FFPROBE_PATH
4848
)
4949

5050
@property
@@ -102,14 +102,16 @@ def lock_directory(self) -> str:
102102
@property
103103
def ffmpeg_path(self) -> str:
104104
"""
105-
TODO: Fill out!
105+
Optional. Path to ffmpeg executable. Defaults to ``/usr/bin/ffmpeg`` for Linux, and
106+
``ffmpeg.exe`` for Windows (in the same directory as ytdl-sub).
106107
"""
107108
return self._ffmpeg_path.value
108109

109110
@property
110111
def ffprobe_path(self) -> str:
111112
"""
112-
TODO: Fill out!
113+
Optional. Path to ffprobe executable. Defaults to ``/usr/bin/ffprobe`` for Linux, and
114+
``ffprobe.exe`` for Windows (in the same directory as ytdl-sub).
113115
"""
114116
return self._ffprobe_path.value
115117

src/ytdl_sub/validators/file_path_validators.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,27 @@
11
import os
22
from pathlib import Path
3+
from typing import Any
34
from typing import Dict
45

56
from ytdl_sub.validators.string_formatter_validators import OverridesStringFormatterValidator
67
from ytdl_sub.validators.string_formatter_validators import StringFormatterValidator
8+
from ytdl_sub.validators.validators import StringValidator
9+
10+
11+
class ExistingFileValidator(StringValidator):
12+
_expected_value_type_name = "file"
13+
14+
def __init__(self, name: str, value: Any):
15+
super().__init__(name, value)
16+
if not os.path.isfile(self._value):
17+
raise self._validation_exception(
18+
f"Expects an existing file, but '{self.value}' is not a file"
19+
)
20+
21+
@property
22+
def value(self) -> str:
23+
"""Turn into a Path, then a string, to get correct directory separators"""
24+
return str(Path(self._value))
725

826

927
class StringFormatterFilePathValidator(StringFormatterValidator):

0 commit comments

Comments
 (0)