2025-04-19 22:11:57 +08:00
|
|
|
// Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
|
|
|
|
|
// SPDX-License-Identifier: MIT
|
|
|
|
|
|
2025-04-22 11:03:53 +08:00
|
|
|
import { env } from "~/env";
|
|
|
|
|
|
2025-04-19 22:11:57 +08:00
|
|
|
export async function generatePodcast(content: string) {
|
2025-04-22 11:03:53 +08:00
|
|
|
const response = await fetch(
|
|
|
|
|
(env.NEXT_PUBLIC_API_URL ?? "http://localhost:8000/api") +
|
|
|
|
|
"/podcast/generate",
|
|
|
|
|
{
|
|
|
|
|
method: "post",
|
|
|
|
|
headers: {
|
|
|
|
|
"Content-Type": "application/json",
|
|
|
|
|
},
|
|
|
|
|
body: JSON.stringify({ content }),
|
2025-04-19 22:11:57 +08:00
|
|
|
},
|
2025-04-22 11:03:53 +08:00
|
|
|
);
|
2025-04-19 22:11:57 +08:00
|
|
|
if (!response.ok) {
|
|
|
|
|
throw new Error(`HTTP error! status: ${response.status}`);
|
|
|
|
|
}
|
|
|
|
|
const arrayBuffer = await response.arrayBuffer();
|
|
|
|
|
const blob = new Blob([arrayBuffer], { type: "audio/mp3" });
|
|
|
|
|
const audioUrl = URL.createObjectURL(blob);
|
|
|
|
|
return audioUrl;
|
|
|
|
|
}
|