import os from flask import Flask, jsonify, send_from_directory, request, render_template_string from werkzeug.utils import secure_filename from database import db from models import Video app = Flask(__name__) app.config["SQLALCHEMY_DATABASE_URI"] = "sqlite:///metavideo.db" app.config["SQLALCHEMY_TRACK_MODIFICATIONS"] = False UPLOAD_FOLDER = "uploads" os.makedirs(UPLOAD_FOLDER, exist_ok=True) db.init_app(app) # ------------------- # HTML САЙТ (как YouTube простая версия) # ------------------- HTML = """ Meta Video

🎥 Meta Video

📤 Upload





📺 Videos

""" # ------------------- # ГЛАВНАЯ СТРАНИЦА # ------------------- @app.route("/") def home(): return render_template_string(HTML) # ------------------- # ЗАГРУЗКА ВИДЕО # ------------------- @app.route("/upload", methods=["POST"]) def upload(): file = request.files["file"] title = request.form.get("title", "Untitled") filename = secure_filename(file.filename) path = os.path.join(UPLOAD_FOLDER, filename) file.save(path) video = Video(title=title, filename=filename) db.session.add(video) db.session.commit() return "Uploaded! Go back" # ------------------- # FEED (список видео) # ------------------- @app.route("/api/feed") def feed(): videos = Video.query.all() return jsonify([ { "title": v.title, "url": f"/video/{v.filename}" } for v in videos ]) # ------------------- # СТРИМ ВИДЕО # ------------------- @app.route("/video/") def video(filename): return send_from_directory(UPLOAD_FOLDER, filename) # ------------------- # START # ------------------- if __name__ == "__main__": with app.app_context(): db.create_all() port = int(os.environ.get("PORT", 7860)) app.run(host="0.0.0.0", port=port)