# LBRY Downloader Configuration # Place this file at ~/Documents/lbry-downloads/config.yaml # or specify a different path with --config lbrynet: # URL of the local LBRY daemon (lbrynet) # Only used when running with --p2p api_url: "http://127.0.0.1:5279" # Timeout for daemon requests in seconds # Only used when running with --p2p timeout_seconds: 60 general: # Base directory for all downloads and state base_dir: "~/Documents/lbry-downloads" # Path to the state database state_file: "~/Documents/lbry-downloads/state/database.json" # Number of concurrent downloads (keep low to avoid daemon issues) max_workers: 2 # Logging level: DEBUG, INFO, WARNING, ERROR, CRITICAL log_level: "INFO" # If true, show what would be downloaded without actually downloading dry_run: false # Verify that previously downloaded files still exist verify_existing_files: true # Write SHA256 checksums for downloaded files write_checksums: true # Filename handling: 'original' or 'safe' (aggressively sanitized) filename_mode: "original" # Include reposts in downloads (default: false) include_reposts: false # Number of claims to fetch per page from the daemon channel_page_size: 50 # Keep records of claims even if they disappear from the channel keep_missing_claim_records: true # Direct download base URLs to try in order. Keep Odysee first unless you # explicitly want a mirror-first strategy. direct_base_urls: - "https://odysee.com" # - "https://your-mirror.example" # How many times to retry the same direct URL after HTTP 429 direct_max_retries_per_url: 2 # Base delay in seconds for exponential backoff after HTTP 429 direct_retry_backoff_seconds: 2.0 # If true, direct-mode runs will try the local lbrynet daemon as a fallback # after repeated rate-limit failures. Requires a working local daemon. direct_auto_fallback_to_p2p: false # Build a static browseable offline site from the archive after each run. build_offline_site: true # Output directory for the generated static site. offline_site_dir: "~/Documents/lbry-downloads/site" # Fetch missing channel/claim images and sidecar metadata on reruns. fetch_missing_metadata_assets: true # Download limit: Maximum number of downloads per channel per run # # This limits how many NEW downloads the tool will perform for each channel # in a single run. Useful for: # - Testing (download just a few files to verify everything works) # - Bandwidth management (don't overwhelm your connection) # - Gradual syncing (download a bit at a time for large channels) # # The tool will download the MOST RECENT items first (sorted by publish date). # # Values: # - 0 or "all": No limit, download everything new (use with caution on large channels!) # - 1, 2, 3, etc.: Download only this many most recent items per channel # # Examples: # download_limit: 10 # Download only 10 most recent items (default) # download_limit: 0 # Download all new items # download_limit: 5 # Download only 5 most recent items (good for testing) download_limit: 10 channels: # Add your channels here. The tool will download all downloadable content # from each enabled channel. # # Supported input formats: # - Odysee URL: https://odysee.com/@ChannelName:1 # - LBRY URI: lbry://@ChannelName#1 # - Short form: @ChannelName:1 # - Claim ID: f3b9b2b7c1c3d8e9a1234567890abcdef123456 # # Per-channel options: # - input: (required) Channel URL/URI/ID # - enabled: (optional) true/false - default: true # - download_path: (optional) Custom download location for this channel # If not set, uses general.base_dir/channels/ # - content_mode: (optional) What file types to download for this channel # Values: # - all = video and non-video files # - video_only = only video files such as mp4/webm/mkv # - non_video_only = only non-video files such as zip/pdf # Default: all # Note: CLI flags --video-only and --non-video-only override # all channel content_mode settings for that run. # - tags_include: (optional) List of tags to include (empty = all) # - tags_exclude: (optional) List of tags to exclude # # Example 1: Basic channel # - input: "https://odysee.com/@SomeChannel:1" # enabled: true # content_mode: "all" # # Example 2: Channel with custom download location and only videos # - input: "https://odysee.com/@TechChannel:1" # enabled: true # download_path: "/mnt/media/videos/tech" # content_mode: "video_only" # # Example 3: Channel that downloads only file bundles, docs, and other non-video claims # - input: "https://odysee.com/@FileArchive:1" # enabled: true # content_mode: "non_video_only" # # Example 4: Channel with tag filtering # - input: "lbry://@AnotherChannel#5" # enabled: true # content_mode: "all" # tags_include: ["documentary", "science"] # tags_exclude: ["shorts"]