Skip to content

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)