Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ActionConfig ¶
type ActionConfig struct {
BypassTurnstileTimeout time.Duration `koanf:"bypass_turnstile_timeout" validate:"required"`
TurnstileRetryTimeout time.Duration `koanf:"turnstile_retry_timeout" validate:"required"`
}
ActionConfig holds timeouts for browser automation actions.
type BrowserConfig ¶
type BrowserConfig struct {
Timeout time.Duration `koanf:"timeout" validate:"required"`
Headless bool `koanf:"headless"`
NoSandbox bool `koanf:"no_sandbox"`
ChromePath string `koanf:"chrome_path"`
}
BrowserConfig holds settings for headless browser extraction.
type CaptureConfig ¶
type CaptureConfig struct {
Patterns []string `koanf:"patterns" validate:"required,min=1"`
CollectionWindow time.Duration `koanf:"collection_window" validate:"required"`
GraceAfterActions time.Duration `koanf:"grace_after_actions" validate:"required"`
MaxConcurrency int `koanf:"max_concurrency" validate:"required,min=1"`
MaxCandidates int `koanf:"max_candidates" validate:"required,min=1"`
}
CaptureConfig holds patterns for intercepting stream URLs.
type Config ¶
type Config struct {
Device DeviceConfig `koanf:"device" validate:"required"`
Network NetworkConfig `koanf:"network" validate:"required"`
Browser BrowserConfig `koanf:"browser" validate:"required"`
Resolver ResolverConfig `koanf:"resolver" validate:"required"`
Capture CaptureConfig `koanf:"capture" validate:"required"`
Actions ActionConfig `koanf:"actions" validate:"required"`
Sources []SourceConfig `koanf:"sources" validate:"dive"`
Transcode TranscodeConfig `koanf:"transcode" validate:"required"`
}
Config holds all application configuration.
func ConfigFrom ¶
ConfigFrom extracts the Config from the CLI command metadata.
type DeviceConfig ¶
type DeviceConfig struct {
Name string `koanf:"name" validate:"required"`
Type device.Type `koanf:"type" validate:"required"`
}
DeviceConfig holds device selection settings.
type NetworkConfig ¶
type NetworkConfig struct {
Timeout time.Duration `koanf:"timeout" validate:"required"`
Interface string `koanf:"interface" validate:"required"`
}
NetworkConfig holds network settings.
type ResolverConfig ¶
type ResolverConfig struct {
FFprobePath string `koanf:"ffprobe_path" validate:"required"`
ProbeTimeout time.Duration `koanf:"probe_timeout" validate:"required"`
HLSTimeout time.Duration `koanf:"hls_timeout" validate:"required"`
ProbeMaxConcurrency int `koanf:"probe_max_concurrency" validate:"required,min=1"`
}
ResolverConfig holds URL resolution settings.
type SourceConfig ¶
type SourceConfig struct {
Name string `koanf:"name" validate:"required"`
Proxies []string `koanf:"proxies" validate:"required,min=1"`
Templates TemplateConfig `koanf:"templates" validate:"required"`
}
SourceConfig defines a YAML-configured source.
func (*SourceConfig) EpisodeURLs ¶
func (s *SourceConfig) EpisodeURLs(itemID string, season, episode uint) []string
EpisodeURLs expands the episode template across all proxies for a source.
func (*SourceConfig) MovieURLs ¶
func (s *SourceConfig) MovieURLs(itemID string) []string
MovieURLs expands the movie template across all proxies for a source.
type TemplateConfig ¶
type TemplateConfig struct {
Movie string `koanf:"movie" validate:"required"`
Episode string `koanf:"episode" validate:"required"`
}
TemplateConfig holds URL templates for movies and episodes.
type TranscodeConfig ¶
type TranscodeConfig struct {
FFmpegPath string `koanf:"ffmpeg_path" validate:"required"`
ReadRate int `koanf:"read_rate" validate:"required"`
ReadRateBurst int `koanf:"read_rate_burst" validate:"required"`
VideoCodec string `koanf:"video_codec" validate:"required"`
AudioCodec string `koanf:"audio_codec" validate:"required"`
AudioSampleRate int `koanf:"audio_sample_rate" validate:"required"`
AudioBitrate string `koanf:"audio_bitrate" validate:"required"`
OutputFormat string `koanf:"output_format" validate:"required"`
InitialDataThreshold int `koanf:"initial_data_threshold" validate:"required"`
}
TranscodeConfig holds ffmpeg transcode settings.