def item_ogg(item_id, ogg_q): from subprocess import Popen, PIPE import mimetypes; item = g.lib.get_item(item_id) filename = os.path.split(item.path)[1] filename = os.path.splitext(filename)[0] + '.ogg' headers = Headers() headers.add('Content-Type', 'audio/ogg') headers.add('Content-Disposition', 'attachment', filename=filename) if mimetypes.guess_type(item.path)[0] == 'audio/mpeg': decoded_fp = Popen( ["mpg123", "-q", "-w", "/dev/stdout", item.path], stdout=PIPE) ogg_fp = Popen( ["oggenc", "-q", str(ogg_q), "-Q", "-"], stdin=decoded_fp.stdout, stdout=PIPE); decoded_fp.stdout.close() else: ogg_fp = Popen( ["oggenc", "-q", str(ogg_q),"-Q", "-o", "/dev/stdout", item.path], stdout=PIPE); res = Response( #wrap_file(request.environ, ogg_fp.stdout), ogg_fp.stdout, headers=headers, direct_passthrough=True) res.implicit_sequence_conversion = False return res