CoolFace
Apppublic

arcanus/koala2

sourceHugging Faceupdated 2y agoView on Hugging Face
0likes
serverapi+yt.py78 linesDownload Raw Back to root
1from flask import Flask, request, jsonify, send_from_directory2from flask_cors import CORS3import os4from werkzeug.utils import secure_filename5from app_rvc import SoniTranslate  # Importuj SoniTranslate z app_rvc.py6 7app = Flask(__name__)8CORS(app)9 10UPLOAD_FOLDER = "uploads"11OUTPUT_FOLDER = "outputs"  # Výstupní složka12if not os.path.exists(UPLOAD_FOLDER):13    os.makedirs(UPLOAD_FOLDER)14if not os.path.exists(OUTPUT_FOLDER):15    os.makedirs(OUTPUT_FOLDER)16 17API_KEY = "MY_SECRET_API_KEY"18 19# Endpoint pro stahování souborů20@app.route("/downloads/<path:filename>", methods=["GET"])21def download_file(filename):22    return send_from_directory(OUTPUT_FOLDER, filename, as_attachment=True)23 24@app.route("/process_video", methods=["POST"])25def process_video():26    # Ověření API klíče27    api_key = request.headers.get("Authorization")28    if api_key != f"Bearer {API_KEY}":29        return jsonify({"status": "error", "message": "Invalid API key"}), 40330 31    # Získání vstupních parametrů32    video_file = request.files.get("video")33    youtube_url = request.form.get("youtube_url")34    target_language = request.form.get("target_language")35 36    if not target_language:37        return jsonify({"status": "error", "message": "Missing target language"}), 40038 39    if not video_file and not youtube_url:40        return jsonify({"status": "error", "message": "Missing video or YouTube URL"}), 40041 42    file_path = None43 44    try:45        # Pokud je nahraný soubor, ulož ho46        if video_file:47            filename = secure_filename(video_file.filename)48            file_path = os.path.join(UPLOAD_FOLDER, filename)49            video_file.save(file_path)50 51        # Spusť překlad pomocí SoniTranslate52        translator = SoniTranslate(cpu_mode=False)53        result_files = translator.multilingual_media_conversion(54            media_file=file_path if video_file else None,55            link_media=youtube_url if youtube_url else "",56            target_language=target_language,57            is_gui=False,58        )59 60        # Vytvoření URL odkazů ke stažení61        result_urls = []62        for result_file in result_files:63            filename = os.path.basename(result_file)64            result_urls.append(f"http://{request.host}/downloads/{filename}")65 66        return jsonify({"status": "success", "result": result_urls}), 20067 68    except Exception as e:69        return jsonify({"status": "error", "message": str(e)}), 50070 71    finally:72        # Smazání dočasného souboru, pokud bylo použito nahrané video73        if file_path and os.path.exists(file_path):74            os.remove(file_path)75 76if __name__ == "__main__":77    app.run(host="0.0.0.0", port=5000, debug=True)78