Mutagen may fail with:
```
worker-1 | Traceback (most recent call last):
worker-1 | File "/usr/local/lib/python3.10/site-packages/celery/app/trace.py", line 412, in trace_task
worker-1 | R = retval = fun(*args, **kwargs)
worker-1 | File "/usr/local/lib/python3.10/site-packages/celery/app/trace.py", line 704, in __protected_call__
worker-1 | return self.run(*args, **kwargs)
worker-1 | File "/src/libretime_worker/tasks.py", line 114, in podcast_download
worker-1 | metadata["artist"] = podcast_name
worker-1 | File "/usr/local/lib/python3.10/site-packages/mutagen/_file.py", line 74, in __setitem__
worker-1 | self.tags[key] = value
worker-1 | File "/usr/local/lib/python3.10/site-packages/mutagen/id3/_tags.py", line 341, in __setitem__
worker-1 | raise TypeError("%r not a Frame instance" % tag)
worker-1 | TypeError: "Infos du soir" not a Frame instance
```
This TypeError was raised when I trying to write metadata to a wave
file.
This patch ensures that the error is reported back to the frontend. It
also improve the error messages being reported.
LibreTime Worker
LibreTime Worker is a service that will run background tasks.
Development
# Install dependencies
make install
# Activate the development environment
source .venv/bin/activate
# Run linters
make lint
# Run tests
make test
# See the Makefile for more commands
cat Makefile