feat(library): resilient scan for large libraries and better ffprobe errors
- Use a dedicated 10-minute HTTP client for library-sync so libraries with hundreds or thousands of items no longer time out - Show actionable ffprobe-not-found error: detects Docker and suggests FFPROBE_PATH env var, config.toml setting, or package install - Include static ffprobe binary in Docker image (johnvansickle.com) - Bump version to 0.6.2
This commit is contained in:
parent
3fd19f1406
commit
228564eb7f
5 changed files with 71 additions and 7 deletions
|
|
@ -251,7 +251,29 @@ func ResolveFFprobe(explicit string) (string, error) {
|
|||
return p, nil
|
||||
}
|
||||
|
||||
return "", fmt.Errorf("ffprobe not found. Install ffmpeg or provide --ffprobe path")
|
||||
// Give an actionable error depending on whether we're running in Docker.
|
||||
if isDocker() {
|
||||
return "", fmt.Errorf(
|
||||
"ffprobe not found and auto-download failed (read-only filesystem?).\n" +
|
||||
"Options:\n" +
|
||||
" • Use the official image: torrentclaw/unarr (includes ffprobe)\n" +
|
||||
" • Set FFPROBE_PATH env var to point to a pre-installed ffprobe binary\n" +
|
||||
" • Add to config.toml: [library]\\nffprobe_path = \"/path/to/ffprobe\"",
|
||||
)
|
||||
}
|
||||
return "", fmt.Errorf(
|
||||
"ffprobe not found and auto-download failed.\n" +
|
||||
"Options:\n" +
|
||||
" • Install ffmpeg: sudo apt install ffmpeg (or brew install ffmpeg)\n" +
|
||||
" • Set FFPROBE_PATH env var to point to the ffprobe binary\n" +
|
||||
" • Add to config.toml: [library]\\nffprobe_path = \"/path/to/ffprobe\"",
|
||||
)
|
||||
}
|
||||
|
||||
// isDocker reports whether the process is running inside a Docker container.
|
||||
func isDocker() bool {
|
||||
_, err := os.Stat("/.dockerenv")
|
||||
return err == nil
|
||||
}
|
||||
|
||||
// tagValue gets a tag value case-insensitively.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue