Support HTTP proxies
- 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
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