// Uses base_url, authorization and request() from Authentication. const response = await fetch(base_url + "/courses", { method: "POST", headers: { Authorization: authorization, "Content-Type": "application/json", "Idempotency-Key": "staff-training-v2" }, body: JSON.stringify({ fetch_url: "https://your-storage.com/training-v2.zip", canonical_url: "https://your-storage.com/training-v2.zip", title: "Staff training" }) }); let course = await response.json(); if (!response.ok) throw new Error(course.error); while (course.status !== "ready" && course.status !== "failed") { await new Promise(resolve => setTimeout(resolve, 2000)); course = await request("/courses/" + encodeURIComponent(course.course_id)); } if (course.status === "failed") throw new Error(course.error); console.log("Ready to play:", course.course_id);