Files
LBRY-Downloader/docs/PER_CHANNEL_PATHS.md
T
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

143 lines
3.1 KiB
Markdown

# Per-Channel Download Paths Example
This example shows how to configure different download locations for each channel.
## Use Case: Organize by Content Type
```yaml
lbrynet:
api_url: "http://127.0.0.1:5279"
general:
base_dir: "~/Documents/lbry-downloads"
max_workers: 2
channels:
# Tech videos go to external drive
- input: "https://odysee.com/@TechChannel:1"
enabled: true
download_path: "/mnt/media/videos/tech"
# Music goes to Music folder
- input: "https://odysee.com/@MusicChannel:1"
enabled: true
download_path: "~/Music/LBRY"
# Podcasts go to Podcasts folder
- input: "https://odysee.com/@PodcastChannel:1"
enabled: true
download_path: "~/Podcasts"
# Everything else goes to default location
- input: "https://odysee.com/@MiscChannel:1"
enabled: true
# No download_path - uses general.base_dir/channels/
```
## Use Case: Manage Disk Space
```yaml
channels:
# Large archive channel goes to big external drive
- input: "https://odysee.com/@Archive:1"
enabled: true
download_path: "/mnt/8tb-drive/archive"
# Frequently accessed channel goes to fast SSD
- input: "https://odysee.com/@DailyUpdates:1"
enabled: true
download_path: "~/Videos/daily"
```
## Use Case: Separate Personal and Work
```yaml
channels:
# Work-related content
- input: "https://odysee.com/@TechTalks:1"
enabled: true
download_path: "~/Work/Videos"
# Personal entertainment
- input: "https://odysee.com/@Entertainment:1"
enabled: true
download_path: "~/Videos/entertainment"
```
## Setting Up Custom Paths
### 1. Create the directories
```bash
# External drive example
sudo mkdir -p /mnt/media/videos/tech
sudo chown $USER:$USER /mnt/media/videos/tech
# Home directory example
mkdir -p ~/Music/LBRY
mkdir -p ~/Podcasts
```
### 2. Edit config.yaml
```bash
nano ~/Documents/lbry-downloads/config.yaml
```
### 3. Test with dry-run
```bash
python main.py --dry-run
```
Check the output to see where files would be downloaded.
### 4. Run the download
```bash
python main.py
```
## Resulting Directory Structure
With the example above, your files will be organized as:
```
/mnt/media/videos/tech/
TechChannel__abc123/
channel.json
claims/
video1__def456/
versions/
sd_xyz789/
video.mp4
~/Music/LBRY/
MusicChannel__ghi789/
channel.json
claims/
song1__jkl012/
versions/
sd_mno345/
song.mp3
~/Podcasts/
PodcastChannel__pqr678/
...
~/Documents/lbry-downloads/channels/
MiscChannel__stu901/
...
```
## Tips
1. **Path expansion**: Use `~` for home directory - it will be expanded automatically
2. **Absolute paths**: Always use absolute paths for external drives
3. **Permissions**: Ensure you have write permissions to custom paths
4. **Existing downloads**: If you move a channel's download location after files have been downloaded, the tool will redownload them to the new location
## State Management
The state database still lives in `~/Documents/lbry-downloads/state/` regardless of where you download files. This keeps all metadata and tracking in one place.