Spaces:
Running
Running
import ffmpeg | |
from .get import * | |
from .. import helpers | |
def getPreview(request): | |
answer = get(request, "previews") | |
try: | |
if answer['error']: return answer | |
except KeyError: pass | |
except Exception as e: return {"status": "error", "details": { "error_code": 123, "error_details": e }} | |
urlcode = answer['urlcode'] | |
bitrate = answer['bitrate'] | |
quality = answer['quality'] | |
error_code = answer['ytdlp-code'] | |
try: | |
if request.method == 'POST': duration = request.form['duration'] | |
else: duration = request.args['duration'] | |
if duration > 60: duration = 60 | |
except: duration = 30 | |
if answer['done-or-not']: | |
return {"status": "pass", "details": {"code": error_code, "name":"{}.ogg".format(urlcode), "result": "http://funapi.dnszilla.bar/static/previews/{}.ogg".format(urlcode)}} | |
try: | |
audio_input = ffmpeg.input(answer['path']) | |
audio_cut = audio_input.audio.filter('atrim', duration=duration) | |
audio_output = ffmpeg.output(audio_cut, "/home/ubuntu/api/static/previews/{}.ogg".format(urlcode), audio_bitrate=bitrate) | |
ffmpeg.run(audio_output) | |
helpers.deleteAudio("temp/{}.ogg".format(urlcode)) | |
except Exception as e: return {"status": "error", "details": {"error_code": 102, "error_details": str(e), "result": "http://funapi.dnszilla.bar/static/temp/{}.ogg".format(urlcode)}} | |
return {"status": "pass", "details": {"code": error_code, "name":"{}.ogg".format(urlcode), "result": "http://funapi.dnszilla.bar/static/previews/{}.ogg".format(urlcode)}} | |