Configuration API¶
StreamFlow separates general application configuration from video-specific settings.
AppConfig¶
AppConfig represents application-level configuration.
The primary configuration value is the download directory.
Global application configuration¶
The module exposes a configured app_config instance.
VideoSettings¶
VideoSettings contains video-specific configuration.
It defines:
- quality mappings;
- supported output formats.
Configuration separation¶
The separation between AppConfig and VideoSettings prevents application paths and media settings from becoming tightly coupled.
This makes it easier to change one category without modifying the other.
Class reference¶
App config¶
src.config.app_config
¶
This module defines the application's configuration settings using Pydantic. It loads variables and provides a centralized way to access configuration values throughout the project.
app_config = AppConfig()
module-attribute
¶
app_config: Global configuration instance for app.
AppConfig
¶
Bases: BaseModel
Application configuration settings.
This class loads and manages application-wide configuration variables.
Attributes:
| Name | Type | Description |
|---|---|---|
download_folder |
str
|
The default folder where downloaded videos will be saved. |
Example
app_config = AppConfig()
print(app_config.download_folder)
Video settings¶
src.config.video_settings
¶
This module provides default settings for video downloading or processing. It defines a Pydantic model for video quality mapping and supported output formats.
video_settings = VideoSettings()
module-attribute
¶
video_settings: Global video settings instance.
VideoSettings
¶
Bases: BaseModel
Defines default configurations for video downloads.
Attributes:
| Name | Type | Description |
|---|---|---|
quality_map |
Dict[str, str]
|
Mapping of human-readable quality labels to video format selectors. Keys include: - 'The best' - 'Medium (1440p)' - 'Above High (1080p)' - 'High (720p)' - 'Low (<=480p)' |
output_formats |
List[str]
|
List of supported output file formats, e.g., 'Mp4' and 'Mkv'. |
Example
from config.video_settings import video_settings
print(video_settings.quality_map)
print(video_settings.output_formats)