Files

4.8 KiB

Quick Start Guide

One-Line Install

curl -fsSL https://raw.githubusercontent.com/PR0M3TH3AN/LBRY-Downloader/main/remote-install.sh -o install-lbry.sh && bash install-lbry.sh

Requirements: Git and Python 3.8+ must be installed.

Manual Installation

# Clone or download the repository
cd LBRY-Downloader

# Install dependencies
pip install -r requirements.txt

# Initialize configuration
python init.py

Configuration

Finding Channel URLs (from Odysee)

  1. Go to https://odysee.com
  2. Search for and navigate to the channel you want
  3. Copy the URL from your browser's address bar
    • Example: https://odysee.com/@TechChannel:1
  4. Add it to your config.yaml

Edit Config File

Edit ~/Documents/lbry-downloads/config.yaml:

channels:
  - input: "https://odysee.com/@YourFavoriteChannel:1"
    enabled: true
    content_mode: "non_video_only"
  - input: "https://odysee.com/@AnotherChannel:5"
    enabled: true
    content_mode: "video_only"

Tip: Just paste the Odysee URL exactly as it appears in your browser!

Per-Channel Content Mode

You can choose what each channel downloads:

  • content_mode: "all" downloads video and non-video files
  • content_mode: "video_only" downloads only video files
  • content_mode: "non_video_only" downloads only zip/PDF/other non-video files

Most users who want file bundles and archives should start with:

channels:
  - input: "https://odysee.com/@YourFavoriteChannel:1"
    enabled: true
    content_mode: "non_video_only"

Launching

Optional: Start the LBRY Daemon First

You only need the LBRY daemon if you plan to use --p2p. The default direct mode does not require it.

# Start the daemon
lbrynet start

# Check if it's running
lbrynet status

Launch LBRY Downloader

Method 1: Using the Launcher (Recommended)

cd ~/Documents/LBRY-Downloader
./bin/lbry-downloader --dry-run

Method 2: Add to PATH and run from anywhere

# One-time setup
echo 'export PATH="$HOME/Documents/LBRY-Downloader/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc

# Now run from anywhere
lbry-downloader --dry-run

Method 3: Using Virtual Environment

cd ~/Documents/LBRY-Downloader
source venv/bin/activate
python main.py --dry-run

Common Commands

# Test what would be downloaded (dry run) - ALWAYS DO THIS FIRST
lbry-downloader --dry-run

# Recommended default: download only non-video files such as zip bundles
lbry-downloader --non-video-only

# Actually download using each channel's configured content_mode
lbry-downloader

# Download only videos for every channel for this run
lbry-downloader --video-only

# Download only non-video files for every channel for this run
lbry-downloader --non-video-only

# Use the local LBRY node instead of the default direct mode
lbry-downloader --p2p

# Use custom config file
lbry-downloader --config ./my-config.yaml

# View help
lbry-downloader --help

CLI flags --video-only and --non-video-only override per-channel content_mode for that run only. --p2p overrides the default direct transport mode for that run only.

Understanding Output

Run complete.
Channels scanned: 2
Claims examined: 150
New downloads: 3
New versions: 1
Skipped existing: 146
Failures: 0

Download Process

When downloading, you'll see one of these patterns:

Fast Download (P2P Available):

📥 Downloading: ExampleFile
   File appeared: ExampleFile.zip
✓ Downloaded: ExampleFile -> ExampleFile.zip

Streaming Download (No P2P Peers):

⏳ P2P download incomplete, trying daemon streaming endpoint...
📥 Downloading: ExampleFile
   Size: 28.61 MB
   [████████████████████████░░░░░░░░░░░░░░░░] 62%
✓ Download complete: ExampleFile.zip

The tool automatically handles both scenarios - you don't need to do anything special!

Directory Structure

Downloads are saved to:

~/Documents/lbry-downloads/
  channels/
    ChannelName__abc123/
      channel.json
      claims/
        video-name__def456/
          claim.json
          versions/
            sd_hash789/
              video.mp4
              metadata.json
              download.json
              checksums.txt

Troubleshooting

"Could not connect to LBRY daemon"

lbrynet start

This only applies when you are using --p2p. Default direct mode does not require lbrynet.

"Config file not found"

python init.py

"No channels enabled" Check that at least one channel has enabled: true

Want to see more details? Edit config.yaml and set log_level: "DEBUG"

Updates

The tool is designed to be run repeatedly. It will:

  • Skip already downloaded files
  • Detect new versions of existing claims
  • Download only what's new or changed

Support

See README.md for detailed documentation.