# Demucs 任务状态查询 # GET /demucs/api/demucs-status?task_id=xxx task_id = params_kw.task_id if not task_id: return {"error": "task_id is required"} env = request._run_ns longtasks = env.longtasks if not longtasks: return {"error": "longtasks not available"} task = await longtasks.get_redis_task(task_id) if not task or not task.get("created_at"): return {"task_id": task_id, "status": "not_found"} status = task.get("status", "unknown") result = {"task_id": task_id, "status": status} if status == "SUCCEEDED": data = task.get("result", {}) result["vocals_url"] = data.get("vocals_path", "") result["accompaniment_url"] = data.get("accompaniment_path", "") result["duration"] = data.get("duration", 0) # worker 须在 result 中包含 usage 字段 result["usage"] = data.get("usage", {"audio_seconds": data.get("duration", 0)}) elif status == "FAILED": result["error"] = task.get("error", str(task.get("result", ""))) return result