from flask import Flask, jsonify, request from flask_cors import CORS app = Flask(__name__) # Aktifkan CORS agar Perchance bisa akses CORS(app) # --- DATABASE SEMENTARA (HARDCODED) --- # Nanti link "https://link-video..." ini WAJIB kamu ganti # dengan direct link asli yang kamu punya (misal dari GDrive/Bstation/Streamtape) DATABASE = { "anime": { "jujutsu_kaisen": { "title": "Jujutsu Kaisen", "episodes": { "1": { "indo": { "720p": "https://link-sumber-kamu.com/jjk-ep1-id-720.mp4", "1080p": "https://link-sumber-kamu.com/jjk-ep1-id-1080.mp4" }, "english": { "720p": "https://link-sumber-kamu.com/jjk-ep1-en-720.mp4", "1080p": "https://link-sumber-kamu.com/jjk-ep1-en-1080.mp4" } } } } }, "tokusatsu": { "ultraman_tiga": { "title": "Ultraman Tiga", "episodes": { "1": { "indo": {"480p": "link...", "720p": "link..."}, "english": {"480p": "link...", "720p": "link..."} } } }, "kamen_rider_kuuga": { "title": "Kamen Rider Kuuga", "episodes": { "1": { "indo": {"480p": "link...", "720p": "link..."}, "english": {"480p": "link...", "720p": "link..."} } } }, "gokaiger": { "title": "Kaizoku Sentai Gokaiger", "episodes": { "1": { "indo": {"480p": "link...", "720p": "link..."}, "english": {"480p": "link...", "720p": "link..."} } } } } } @app.route('/') def home(): return jsonify({"status": "SpacesV Backend Online", "message": "Siap melayani Frontend"}) # API 1: Mengambil Daftar Judul yang Tersedia @app.route('/api/catalog') def get_catalog(): # Mengembalikan struktur data agar frontend tahu ada film apa saja return jsonify(DATABASE) # API 2: Mengambil Link Video Spesifik @app.route('/api/get_stream') def get_stream(): # Frontend mengirim parameter: ?category=anime&title=jujutsu_kaisen&ep=1&sub=indo&res=720p category = request.args.get('category') # anime / tokusatsu title = request.args.get('title') # jujutsu_kaisen ep = request.args.get('ep') # 1 sub = request.args.get('sub') # indo / english res = request.args.get('res') # 720p / 1080p try: # Menelusuri Database JSON video_url = DATABASE[category][title]["episodes"][ep][sub][res] return jsonify({"status": "success", "url": video_url}) except Exception as e: return jsonify({"status": "error", "message": "Video tidak ditemukan atau parameter salah"}), 404 if __name__ == '__main__': app.run(host='0.0.0.0', port=7860)