25 Commits
Author SHA1 Message Date
thePR0M3TH3AN cbbb7c78f6 Add offline archive site with media thumbnails and player 2026-04-02 11:48:59 -04:00
thePR0M3TH3AN 5a8a36b060 Add proxy client tests and auxiliary direct downloader 2026-04-01 20:37:30 -04:00
thePR0M3TH3AN 7b50110f2a Add direct-first download modes and resilience controls 2026-04-01 20:36:35 -04:00
thePR0M3TH3AN 66d7a02458 docs: Update documentation for streaming fallback feature
- Add streaming endpoint fallback to README.md features
- Add 'How Downloads Work' section explaining P2P + streaming
- Update QUICKSTART.md with download process examples
- Update CHANGELOG.md with v1.1.0 release notes for streaming fix

The tool now automatically falls back to daemon streaming when P2P
peers are unavailable, ensuring reliable downloads.
2026-03-16 10:56:46 -04:00
thePR0M3TH3AN 1967f2d1e4 Fix: Use daemon streaming endpoint when P2P peers unavailable
- Add fallback to daemon's local streaming endpoint (http://localhost:5280/stream/{sd_hash})
- Reduces P2P wait timeout from 300s to 60s for faster fallback
- Downloads content reliably even when no P2P peers are available
- Shows progress bar during streaming download
- Preserves all metadata and checksums
2026-03-16 09:49:55 -04:00
thePR0M3TH3AN cc4cc51b5f Add progress bar and filename display for downloads
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.
2026-03-16 09:17:29 -04:00
thePR0M3TH3AN d76a1a1038 Preserve existing configuration during reinstallation
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.
2026-03-16 08:46:22 -04:00
thePR0M3TH3AN d570f4af60 Implement direct download mode from Odysee CDN
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.
2026-03-15 22:06:48 -04:00
thePR0M3TH3AN 74e8524897 Update AGENTS.md to allow direct Odysee CDN download mode
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.
2026-03-15 22:04:10 -04:00
thePR0M3TH3AN dfea928f7e Add proper download waiting and peer connectivity documentation
- 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.
2026-03-15 21:52:17 -04:00
thePR0M3TH3AN e6489949db Fix download path extraction and error handling
- 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.
2026-03-15 21:44:42 -04:00
thePR0M3TH3AN 3d902208f9 Update documentation: clarify blockchain header sync requirement
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.
2026-03-15 21:36:47 -04:00
thePR0M3TH3AN e218b76f97 Add clarification: LBRY SDK does NOT require blockchain sync
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.
2026-03-15 21:33:34 -04:00
thePR0M3TH3AN 411c6f1794 Fix missing print_info function in remote-install.sh
- 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
2026-03-15 21:29:15 -04:00
thePR0M3TH3AN f4d1a2ad04 Fix lbrynet download URL in remote-install.sh
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.
2026-03-15 21:27:10 -04:00
thePR0M3TH3AN 1d5c1db5cd Add automatic lbrynet installation to remote-install.sh
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.
2026-03-15 21:22:06 -04:00
thePR0M3TH3AN a91e3b2ebc Add automatic daemon startup to launcher scripts
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.
2026-03-15 21:17:31 -04:00
thePR0M3TH3AN bcf1edca7b Improve install scripts: auto-add to PATH and clear command instructions
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
2026-03-15 21:04:36 -04:00
thePR0M3TH3AN 3dcb4ddc2a Add comprehensive documentation on finding channel URLs from Odysee
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
2026-03-15 19:52:06 -04:00
thePR0M3TH3AN f5f3a2305d Add comprehensive launch documentation and non-interactive setup option
Documentation updates:
- README.md: Added 'Launching the Application' section with all methods
- QUICKSTART.md: Added launch instructions with PATH setup
- LINUX_SETUP.md: Added detailed launching section to Quick Reference

New file:
- setup-noninteractive.py: Non-interactive setup for automated installs

Features documented:
- Method 1: Using launcher script (recommended)
- Method 2: Adding to PATH for global access
- Method 3: Using virtual environment directly
- Method 4: Quick test script
- Prerequisites: Starting lbrynet daemon

Remote install updated to handle interactive mode better.
2026-03-15 19:09:55 -04:00
thePR0M3TH3AN 0e10af9438 Fix remote-install.sh for interactive mode
Changed from pipe-to-bash to download-and-run approach.
Updated documentation to reflect correct install command.
2026-03-15 18:58:07 -04:00
thePR0M3TH3AN 293da1f643 Add remote install script for one-line curl installation
Added remote-install.sh for easy one-line installation:
  curl -fsSL https://raw.githubusercontent.com/PR0M3TH3AN/LBRY-Downloader/main/remote-install.sh | bash

Updated documentation:
- README.md - Added one-line install command
- QUICKSTART.md - Added one-line install option
- LINUX_SETUP.md - Added one-line install section

Users can now install with a single curl command (requires Git and Python 3.8+)
2026-03-15 18:47:54 -04:00
thePR0M3TH3AN e707400ffd Complete LBRY Downloader implementation v1.0.0
Features:
- Incremental sync with version tracking (sd_hash)
- Per-channel download paths
- Download limit (default: 10 most recent per channel)
- Interactive setup script with user prompts
- Uninstall script for clean removal
- Comprehensive test suite (42 tests)
- Full documentation suite

Files:
- 9 Python core modules (main, models, utils, config, client, state, planner, downloader, init)
- 3 Setup scripts (setup.py, uninstall.py, install.sh)
- 5 Test files (42 tests, all passing)
- 9 Documentation files
- 4 Build/config files

Total: 31 files, ~4,500 lines
2026-03-15 18:10:56 -04:00
thePR0M3TH3AN db4f11ba6d update 2026-03-15 17:12:48 -04:00
thePR0M3TH3AN b97ea97c6e Initial commit 2026-03-15 17:03:18 -04:00