beetbox / beetbox/beets

Support HTTP proxies

Open
#2,184 4 comments 0 reactions 0 assignees View on GitHub
feature
Dominant language
Python
Stars
15.7k
Forks
2.1k
Avg merge
4d 21h
Merged PRs (30d)
31

Description

### Problem

Not connecting reliably through a proxy server to various services. Example below shows result of fingerprint request.

Running this command in verbose (`-vv`) mode:

``` sh
beet -vv import ./
data directory: /home/tony/.config/beets
library database: /home/tony/Music/musiclibrary.blb
library directory: /home/tony/Music
Sending event: import_task_start
fingerprint matching '/mnt/bulk/Music/00 - We Will Rock You (Fatboy Slim Remix) - 0000.mp3' failed: HTTP request failed: Proxy URLs must have explicit schemes.
fingerprint matching '/mnt/bulk/Music/00 - 10 10 - 0000.mp3' failed: HTTP request failed: Proxy URLs must have explicit schemes.
fingerprint matching '/mnt/bulk/Music/00 - 19 ( US Extended Mix ) - 1985.mp3' failed: HTTP request failed: Proxy URLs must have explicit schemes.
fingerprint matching '/mnt/bulk/Music/00 - 19 (Vietnam Destruction Mix) - 0000.mp3' failed: HTTP request failed: Proxy URLs must have explicit schemes.
fingerprint matching '/mnt/bulk/Music/00 - 1995 Penny - 0000.mp3' failed: HTTP request failed: Proxy URLs must have explicit schemes.

```

Led to this problem:

```
Means that the program doesn't reach beyond the proxy
```

Here's a link to the music files that trigger the bug (if relevant):
### Setup
- OS: Ubuntu 14.04.5
- Python version: 2.7
- beets version: 1.31
- Turning off plugins made problem go away (yes/no): plugin related...

My configuration (output of `beet config`) is:

``` yaml
# Automatically migrated from legacy .beetsconfig.

directory: ~/Music
library: ~/Music/musiclibrary.blb

import:
copy: true
delete: true
resume: false
log: ~/Music/musicimport.log
threaded: true

paths:
default: $genre/$albumartist/$album/$track $title
albumtype:soundtrack: Soundtracks/$album/$track $title
singleton: Non-Album/$artist/$title
comp: Compilations/$genre/$album/$track title

plugins: chroma fromfilename web

chroma:
auto: yes

fromfilename:
auto: no

web:
host: 127.0.0.1
port: 8337

```

Contributor guide

Open the contributing guide

Research direction

Start with the `beet -vv import ./` path and the `chroma` fingerprint request that reports “Proxy URLs must have explicit schemes.” Reproduce the failure with the provided configuration, then trace how the proxy is handled during fingerprint matching. Done means fingerprint requests reliably reach their services through a configured HTTP proxy.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
cli, networking
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
32/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.