Spaces:
Sleeping
Sleeping
| 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..."} | |
| } | |
| } | |
| } | |
| } | |
| } | |
| def home(): | |
| return jsonify({"status": "SpacesV Backend Online", "message": "Siap melayani Frontend"}) | |
| # API 1: Mengambil Daftar Judul yang Tersedia | |
| def get_catalog(): | |
| # Mengembalikan struktur data agar frontend tahu ada film apa saja | |
| return jsonify(DATABASE) | |
| # API 2: Mengambil Link Video Spesifik | |
| 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) | |