ironsmile / euterpe

Self-hosted music streaming server 🎶 with RESTful API and Web interface. Think of it as your very own Spotify! ☁️🎧
https://listen-to-euterpe.eu
GNU General Public License v3.0
522 stars 42 forks source link

Error while scanning .opus-files in library #38

Closed Manuel-Haas closed 1 year ago

Manuel-Haas commented 2 years ago

After i have added some OPUS Files to my library, Taglib gives me an 'invalid file' Error:

root@server:~# docker-compose up euterpe 

root_euterpe_1 is up-to-date
Attaching to root_euterpe_1
euterpe_1        | error adding modified file: Taglib error for /root/Music/Patrick Doyle/Cinderella/La Cenicienta - Soundtrack 01 'A Golden Childhood' - HD.opus: invalid file

Maybe it is related to this Taglib-Issue: https://github.com/taglib/taglib/issues/1011

I am running the Docker-Container with version v1.5.1. The opus file was encoded by ffmpeg, without any special flags, and it is played fine by Players like Audacious (including Metadata). Also ffprobe is recognizing the Metadata without errors.

Other Files (mp3, ogg, m4a) are handled also without errors by euterpe.

ironsmile commented 2 years ago

I see! Thank you for your detailed description. Will try to reproduce it myself and as far as I could see getting the latest taglib would help.

ironsmile commented 1 year ago

It took me some time but I got around to give this a try again. I wasn't able to reproduce the problem when trying more than an year go. Unfortunately the same happened now. This time around I created an .opus file with ffmpeg -i file.mp3 file.opus. My ffmpeg version is

ffmpeg version 4.2.7-0ubuntu0.1 Copyright (c) 2000-2022 the FFmpeg developers
  built with gcc 9 (Ubuntu 9.4.0-1ubuntu1~20.04.1)

Probably newer than the one you were using originally. I can't remember what I did originally.

Anyway, I wasn't able to reproduce the problem you've encountered. I tried running the following:

$ docker run --rm -v "${HOME}/Music/euterpe-tests/:/root/Music" -p 8080:9996 ironsmile/euterpe:v1.5.1 euterpe -D

The file is read by the Taglib version in the image. I've tried it with v1.5.3 too and again, the file is read fine. I have no idea what else to try to reproduce your problem. But I did find a problem with playing .opus files in the browser UI. This is fixed with f4f659ca69f3a17c6ead5d0889019be921c0fc80.

Since the actual problem is in Taglib I am going to close this. If one uses the latest Dockerfile in the repository's root to build an image they would get a fixed Taglib version.