I've started a project in which I have to allow user to access certain content, in this case media files. I'm wondering if Falcon is good at serving this.
Example route work like this: '/audio/{audio_id}' -> if user.has_permission(audio_id): return audio file for download.
Serving audio/video files in falcon is the same as serving images (they're all binary files). See their tutorial on serving images for how to do it:
http://falcon.readthedocs.io/en/stable/user/tutorial.html#serving-images
Where falcon is 'good' for it is a tricky question. It can do it, but to determine if it is 'good' (or 'good enough' in most cases) you need benchmarks for serving files and your own performance requirements. I was unable to find any public benchmarks for python api frameworks that include a metric for serving files. You'll need to determine if it's good enough based on performance tests.
Also, an alternative to serving the media directly is to return a link in the api response that points to a file hosted on a CDN. The downside to this approach is that it's less secure (anyone with the direct link can access it).