SpacesV-backend / app.py
Jt!
Create app.py
00e17c4 verified
Raw
History Blame Contribute Delete
3.07 kB
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)