diff --git a/prober/decoder.go b/prober/decoder.go
index 7c45266223444a2acaf77acb1453c75b53f2c932..2ea83eb69ea003de79bf098b06e9156b2bc83081 100644
--- a/prober/decoder.go
+++ b/prober/decoder.go
@@ -22,7 +22,9 @@ type decoder struct {
 }
 
 func newDecoder(r io.Reader) (*decoder, error) {
-	cmd := exec.Command("sox", "-", "-r", analysisSampleRate, "-c", analysisChannels, "-b", "64", "-e", "float", "--endian", "little", "-t", "raw", "-")
+	// Here we use '-t mp3' for all formats, as sox will do the
+	// right thing anyway (autodetect) for ogg-format streams.
+	cmd := exec.Command("sox", "-t", "mp3", "-", "-r", analysisSampleRate, "-c", analysisChannels, "-b", "64", "-e", "float", "--endian", "little", "-t", "raw", "-")
 	cmd.Stdin = r
 	cmd.Stderr = os.Stderr
 	stdout, err := cmd.StdoutPipe()