Improvements:
- Shows current filename being downloaded prominently
- Displays file size before download starts
- Real-time progress bar with 50-character width
- Shows download speed (MB/s)
- Shows ETA (estimated time remaining)
- Visual progress with █ and ░ characters
- Final summary shows total size and average speed
- Clear success/failure messages with emojis
Example output:
📥 Downloading: Video-Title
Filename: Video-Title.mp4
Size: 45.23 MB
[████████████████████████░░░░░░░░░░░░░░░░] 50% | 2.34 MB/s | ETA: 10s
✅ Complete: 45.23 MB @ 2.34 MB/s
Users can now see exactly what's happening and know the tool isn't frozen.
When reinstalling LBRY Downloader, the setup script now:
- Checks if config.yaml exists in ~/Documents/lbry-downloads/
- If found, asks user if they want to use existing config
- If yes, skips all configuration prompts and preserves channels/settings
- If no, proceeds with normal interactive setup
This prevents users from having to re-enter all their channels
and settings every time they reinstall or update the tool.
Fixes#2 - Config is no longer overwritten on reinstall.
New features:
- Added direct_downloader.py module for downloading from Odysee CDN
- Added --direct/-d CLI flag to use CDN instead of P2P
- Direct mode bypasses P2P network availability issues
- Still requires daemon for channel/claim metadata resolution
- Both modes use same file structure and metadata format
Usage:
lbry-downloader --direct # Download from Odysee CDN
lbry-downloader # Use P2P (default)
The CDN mode is more reliable when P2P peers are unavailable.
Downloads work immediately without waiting for peer discovery.
Fixes#1 - Downloads now complete successfully via CDN.
Changes:
- Removed prohibition on Odysee scraping for metadata
- Added explicit section documenting the two download modes (P2P and Direct)
- Explained that direct mode is acceptable when user explicitly requests it
- Added direct_downloader.py to expected architecture
- Documented rationale: better reliability, user choice, same metadata tracking
This allows the tool to work reliably when LBRY P2P network has no peers.
- Added _wait_for_download method that polls for files to appear
- Waits up to 5 minutes (300s) checking every 5 seconds
- Checks both filesystem and daemon file_list API
- Added comprehensive troubleshooting section about incomplete downloads
- Documents why downloads fail (peer availability)
- Provides solutions: using Odysee web player, LBRY Desktop app, timing
- Explains P2P nature of LBRY network
Downloads now properly wait for content instead of giving up immediately.
- Fixed _extract_file_info to handle None download_path values
- Added retry logic with time.sleep() to wait for daemon to complete download
- Added fallback to file_list API when initial result doesn't have path
- Better error handling when file path is not found
- Gracefully handles cases where daemon returns different response formats
- File search fallback: looks in version_dir if expected path not found
- Added time import for retry delays
This fixes the 'argument should be a str or an os.PathLike object' error
that occurred when the daemon returned None for download_path.
Corrected previous misinformation:
- LBRY SDK DOES require blockchain header sync (not full blocks)
- First run: 5-10 minutes to download ~1.7M headers
- Added troubleshooting entry for BlockHeightEvent messages
- Users now understand what the sync process looks like
- Provided commands to stop the daemon
This addresses user concerns about the invasive blockchain sync
and ensures users know what to expect on first run.
Added FAQ-style notes to both README.md and LINUX_SETUP.md explaining:
- LBRY SDK is a light client, not a full node
- Does NOT download the blockchain
- Only downloads requested content
- Minimal disk space usage
This addresses common concerns about blockchain size and sync time.
- Added print_info() function for blue info messages
- Added BLUE color code
- Fixes: line 114: print_info: command not found
- Install script now fully functional
Changes:
- Fixed download URL: lbrynet-linux.zip (not lbry-sdk-linux.zip)
- Added better error handling and progress display
- Shows download progress with wget progress bar
- Verifies file exists before extraction
- Provides clear error messages if download fails
- Tested: Download and extraction now work correctly
The install script should now successfully download and install lbrynet automatically.
The install script now:
- Checks if lbrynet (LBRY SDK) is installed
- If not, offers to download and install it automatically
- Downloads latest version from GitHub releases
- Extracts to ~/.local/bin
- Adds to PATH if needed
- Shows clear status messages throughout
This means users no longer need to manually install lbrynet.
The script handles Python dependencies AND lbrynet installation.
The lbry-downloader and lbry-test scripts now:
- Check if lbrynet daemon is running before executing
- Automatically start daemon if it's not running
- Wait up to 30 seconds for daemon to become available
- Show clear error messages if daemon fails to start
- Check if lbrynet is installed and provide install link if not
This means users can simply run:
lbry-downloader
Without needing to manually start lbrynet first. The script handles it automatically.
setup.py:
- Automatically adds lbry-downloader to PATH in .bashrc/.zshrc
- Shows clear 'QUICK START' section with numbered steps
- Explicitly states the command to run: 'lbry-downloader'
- Shows config and download locations
- Better formatting with emojis and sections
remote-install.sh:
- Instructs user to 'source ~/.bashrc' to reload shell
- Shows numbered next steps clearly
- Explains what to do if command not found
- Shows config file location
Users now get clear instructions:
1. Reload shell: source ~/.bashrc
2. Start daemon: lbrynet start
3. Test: lbry-downloader --dry-run
4. Download: lbry-downloader
All three main documentation files updated with detailed instructions:
README.md:
- New section 'Finding Channel URLs'
- Method 1: From Odysee website (easiest)
- Method 2: From video page
- Method 3: Using LBRY Desktop app
- All supported URL formats with examples
QUICKSTART.md:
- Added 'Finding Channel URLs' subsection
- Simple 4-step instructions
- Tip about copy-pasting Odysee URLs
LINUX_SETUP.md:
- Expanded 'Add Your Channels' section significantly
- Detailed 3 methods with step-by-step instructions
- Example popular channels
- All URL format examples
- Clear recommendation to use Odysee URLs
Users now have clear guidance on:
- Where to find channels (Odysee.com)
- How to copy channel URLs
- What URL formats work
- Examples of popular channels