Expand description
Library-first downloader API.
Re-exports§
pub use api::DownloadClient;pub use api::DownloadRequest;pub use api::LiveRecorder;pub use api::ProgressCallback;pub use backend::BackendPolicy;pub use backend::BackendSelection;pub use backend::Mp4BackendPolicy;pub use cancellation::CancellationToken;pub use cli::CLI_SCHEMA;pub use cli::CliApiBinding;pub use cli::CliOptionSchema;pub use cli::CliParseResult;pub use cli::CliSchemaValueKind;pub use cli::parse_args;pub use config::CompatibilityProfile;pub use config::CustomKey;pub use config::CustomRange;pub use config::DecryptionEngine;pub use config::DownloadOptions;pub use config::HlsMethod;pub use config::LogLevel;pub use config::MuxAfterDoneOptions;pub use config::MuxerKind;pub use config::StreamFilter;pub use config::SubtitleFormat;pub use config::TaskStartAt;pub use config::UiLanguage;pub use dash::DashManifest;pub use dash::DashParser;pub use decrypt::ExternalDecryptPlan;pub use decrypt::ExternalDecryptRequest;pub use decrypt::Mp4ProtectionInfo;pub use decrypt::PsshInfo;pub use decrypt::PsshSystem;pub use decrypt::SelectedKey;pub use decrypt::aes_128_cbc_decrypt;pub use decrypt::aes_128_ecb_decrypt;pub use decrypt::chacha20_decrypt_per_1024_bytes;pub use decrypt::custom_keys_to_pairs;pub use decrypt::decrypt_hls_segment_bytes;pub use decrypt::decrypt_hls_segment_file;pub use decrypt::plan_external_decrypt;pub use decrypt::read_mp4_protection_info;pub use decrypt::redact_secrets;pub use decrypt::search_key_text_file;pub use decrypt::select_key_pair;pub use download::DownloadMergePolicy;pub use download::DownloadScheduler;pub use download::SegmentDownloadResult;pub use download::SegmentDownloader;pub use download::SpeedState;pub use download::StreamDownloadResult;pub use download::cleanup_after_success;pub use download::merge_policy_for_stream;pub use download::planned_output_path;pub use download::split_large_single_file_by_size;pub use download::stream_output_extension;pub use download::stream_temp_dir;pub use error::Error;pub use error::Result;pub use event::ProgressEvent;pub use hardening::BenchmarkMetric;pub use hardening::BoundedEventQueue;pub use hardening::ResourceLimits;pub use hardening::contains_unredacted_secret;pub use hardening::estimate_segment_count;pub use hardening::redact_and_verify;pub use hardening::scan_unchecked_exit_paths;pub use hardening::validate_cleanup_paths;pub use hardening::validate_manifest_size;pub use hardening::validate_resource_limits;pub use hls::HlsManifest;pub use hls::HlsParser;pub use http::DefaultHttpClient;pub use http::HttpRequest;pub use http::HttpResponse;pub use http::ProxyMode;pub use live::HttpLiveTsState;pub use live::LiveIdentityMode;pub use live::LiveOptionEffects;pub use live::LiveRefreshResult;pub use live::LiveStreamState;pub use live::add_recorded_duration;pub use live::compute_live_wait_seconds;pub use live::filter_new_live_segments;pub use live::live_option_effects;pub use live::live_segment_name;pub use live::plan_live_pipe_mux;pub use live::sync_live_startup_windows;pub use live::update_http_live_ts_state;pub use manifest::ByteRange;pub use manifest::Choice;pub use manifest::EncryptionInfo;pub use manifest::EncryptionMethod;pub use manifest::ExtractorType;pub use manifest::KeySource;pub use manifest::Manifest;pub use manifest::MediaPart;pub use manifest::MediaSegment;pub use manifest::MediaType;pub use manifest::MssData;pub use manifest::Playlist;pub use manifest::RoleType;pub use manifest::Stream;pub use manifest::StreamSelector;pub use manifest::audio_channel_order;pub use manifest::compare_streams_compatible;pub use manifest::sort_streams_compatible;pub use mss::MssGeneratedInit;pub use mss::MssInitGenerator;pub use mss::MssManifest;pub use mss::MssParser;pub use mux::FfmpegMergeMetadata;pub use mux::FfmpegMergeRequest;pub use mux::MediaInfo;pub use mux::MergeOutputFormat;pub use mux::Mp4forgeSupport;pub use mux::Mp4forgeSupportMatrix;pub use mux::MuxCommandPlan;pub use mux::MuxFormat;pub use mux::MuxImport;pub use mux::MuxOptions;pub use mux::OutputArtifact;pub use mux::OutputFile;pub use mux::combine_files;pub use mux::merge_extension;pub use mux::mp4forge_support_for_stream;pub use mux::mux_extension;pub use mux::output_files_with_imports;pub use mux::partial_combine_files;pub use mux::plan_ffmpeg_merge;pub use mux::plan_ffmpeg_mux;pub use mux::plan_mkvmerge_mux;pub use mux::validate_mp4forge_merge_request;pub use mux::validate_mp4forge_mux_after_done;pub use observability::DEFAULT_UPDATE_CHECK_URL;pub use observability::LogFilePlan;pub use observability::LogPlanConfig;pub use observability::ProgressEventCollector;pub use observability::ProgressSummary;pub use observability::UpdateCheckClient;pub use observability::UpdateCheckHttpClient;pub use observability::UpdateCheckResult;pub use observability::append_log_file;pub use observability::check_update_with_client;pub use observability::format_duration;pub use observability::format_file_size;pub use observability::initialize_log_file;pub use observability::latest_version_from_release_redirect;pub use observability::plan_log_file;pub use observability::redact_progress_event;pub use observability::should_log;pub use observability::spawn_update_check_if_enabled;pub use observability::streams_metadata_json;pub use observability::summarize_events;pub use observability::write_metadata_jsons;pub use processor::ContentProcessor;pub use processor::DEFAULT_USER_AGENT;pub use processor::DefaultDashContentProcessor;pub use processor::DefaultHlsContentProcessor;pub use processor::DefaultHlsKeyProcessor;pub use processor::DefaultUrlProcessor;pub use processor::KeyProcessor;pub use processor::ParserConfig;pub use processor::SignedDashUrlProcessor;pub use processor::UrlProcessor;pub use processor::compatibility_headers;pub use processor::resolve_media_url;pub use processor::signed_dash_secure_value;pub use progress::AggregateProgress;pub use progress::SegmentProgress;pub use progress::StreamProgress;pub use selection::apply_custom_range;pub use selection::apply_stream_filters;pub use selection::auto_select_streams;pub use selection::clean_ad_segments;pub use selection::filter_drop;pub use selection::filter_keep;pub use selection::format_save_pattern;pub use selection::handle_file_collision;pub use selection::handle_file_collision_with_reserved;pub use selection::interactive_default_streams;pub use selection::order_streams;pub use selection::save_name_from_input;pub use selection::save_name_from_input_with_suffix;pub use selection::subtitle_only_streams;pub use selection::valid_file_name;pub use session::DownloadSession;pub use session::SessionState;pub use source::LoadedSource;pub use source::LoadedSourceKind;pub use source::SourceLoader;pub use source::write_raw_files;pub use subtitle::SubtitleCue;pub use subtitle::SubtitleImage;pub use subtitle::WebVttSubtitle;pub use subtitle::check_stpp_init;pub use subtitle::check_wvtt_init;pub use subtitle::extract_stpp_from_files;pub use subtitle::extract_stpp_from_segments;pub use subtitle::extract_ttml_documents;pub use subtitle::extract_ttml_from_files;pub use subtitle::extract_wvtt_from_files;pub use subtitle::extract_wvtt_from_segments;pub use subtitle::format_subtitle;pub use subtitle::parse_webvtt;pub use subtitle::parse_webvtt_bytes;pub use subtitle::write_image_pngs;
Modules§
- api
- High-level async API entry points.
- backend
- Backend selection policy.
- cancellation
- Cooperative cancellation primitives.
- cli
- CLI option parsing.
- config
- Request options and compatibility configuration.
- dash
- DASH MPD parsing.
- decrypt
- Decryption helpers and external decrypt command planning.
- download
- Segment downloading, scheduling, progress, and cleanup helpers.
- error
- Stable error type for the public API.
- event
- Progress and lifecycle event schema.
- hardening
- Performance, resource-bound, and security hardening helpers.
- hls
- HLS manifest parsing.
- http
- HTTP request and response abstractions.
- live
- Live playlist recording planners and state helpers.
- manifest
- Manifest, stream, playlist, segment, and encryption models.
- mss
- Smooth Streaming manifest parsing and initialization generation.
- mux
- Container, merge, mux, and output artifact models.
- observability
- Logging, metadata, progress formatting, and event collection helpers.
- processor
- Parser configuration and processor hooks.
- progress
- Progress counters used by events and API callbacks.
- rpc
- Optional JSON-RPC server for remote haki-dl control.
- selection
- Stream selection, filtering, range clipping, ad cleanup, and naming helpers.
- session
- Session state models.
- source
- Source and segment loading utilities.
- subtitle
- Subtitle parsing, conversion, extraction, and image helpers.
- traits
- Async-ready component traits.