Issue playing items from Fireside RSS podcasts
Certain RSS podcast feeds do not work. The two I'm having issues with look to both be hosted by Fireside, so it's likely a problem with that specific provider.
Steps to reproduce
- Add a podcast from an RSS feed (example is BSD Now https://feeds.fireside.fm/bsdnow/rss)
- Wait for the import to finish and try to play a track
What happens?
Track cannot play, 504
error reported
What is expected?
The episode should play (other RSS feeds work without issue)
Context
Funkwhale version(s) affected: 0.20.1+git.4ac4e93f
api_1 | 2020-03-24 12:12:43,100 django.request ERROR Internal Server Error: /api/v1/listen/2ef53587-4f65-39bc-a65b-7f181ce8fea1/
api_1 | Traceback (most recent call last):
api_1 | File "/venv/lib/python3.7/site-packages/django/core/handlers/exception.py", line 34, in inner
api_1 | response = get_response(request)
api_1 | File "/venv/lib/python3.7/site-packages/django/core/handlers/base.py", line 115, in _get_response
api_1 | response = self.process_exception_by_middleware(e, request)
api_1 | File "/venv/lib/python3.7/site-packages/django/core/handlers/base.py", line 113, in _get_response
api_1 | response = wrapped_callback(request, *callback_args, **callback_kwargs)
api_1 | File "/usr/lib/python3.7/contextlib.py", line 74, in inner
api_1 | return func(*args, **kwds)
api_1 | File "/venv/lib/python3.7/site-packages/django/views/decorators/csrf.py", line 54, in wrapped_view
api_1 | return view_func(*args, **kwargs)
api_1 | File "/venv/lib/python3.7/site-packages/rest_framework/viewsets.py", line 114, in view
api_1 | return self.dispatch(request, *args, **kwargs)
api_1 | File "/venv/lib/python3.7/site-packages/rest_framework/views.py", line 505, in dispatch
api_1 | response = self.handle_exception(exc)
api_1 | File "/venv/lib/python3.7/site-packages/rest_framework/views.py", line 465, in handle_exception
api_1 | self.raise_uncaught_exception(exc)
api_1 | File "/venv/lib/python3.7/site-packages/rest_framework/views.py", line 476, in raise_uncaught_exception
api_1 | raise exc
api_1 | File "/venv/lib/python3.7/site-packages/rest_framework/views.py", line 502, in dispatch
api_1 | response = handler(request, *args, **kwargs)
api_1 | File "/app/funkwhale_api/music/views.py", line 596, in retrieve
api_1 | wsgi_request=request._request,
api_1 | File "/app/funkwhale_api/music/views.py", line 473, in inner
api_1 | response = f(*args, **kwargs)
api_1 | File "/app/funkwhale_api/music/views.py", line 525, in handle_serve
api_1 | transcoded_version = f.get_transcoded_version(format, max_bitrate=max_bitrate)
api_1 | File "/app/funkwhale_api/music/models.py", line 914, in get_transcoded_version
api_1 | return self.create_transcoded_version(mimetype, format, bitrate=max_bitrate)
api_1 | File "/usr/lib/python3.7/contextlib.py", line 74, in inner
api_1 | return func(*args, **kwds)
api_1 | File "/app/funkwhale_api/music/models.py", line 929, in create_transcoded_version
api_1 | audio=self.get_audio_segment(),
api_1 | File "/app/funkwhale_api/music/models.py", line 857, in get_audio_segment
api_1 | input_format = utils.MIMETYPE_TO_EXTENSION[self.mimetype]
api_1 | KeyError: 'audio/mp3'