funapi / routes /ytApi /getPreview.py
imperialwool's picture
Upload 28 files
66ca64a
raw
history blame
1.58 kB
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)}}