1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import { YoutubeTranscript } from "https://esm.town/v/zzz/YoutubeTranscript";
import { runVal } from "https://esm.town/v/std/runVal";
// https://api.val.town/v1/express/zzz.rime?text=Hello%20Val%20Town
// videoId: either videoId or full youtube url (e.g. https://www.youtube.com/watch?v=p2glje8z_tw)
export async function YoutubeSummary(req, res) {
const { videoId = "p2glje8z_tw" } = req.query;
const text = await YoutubeTranscript(videoId, false) as string;
const speaker = "young_male_unmarked-1";
const payload = await runVal("stevekrouse.rime", { text, speaker }) as {audioContent: string}?
if (!payload || !payload.audioContent) {
res.send(`Something went wrong!`);
return;
}
res.send(
`<audio controls src="data:audio/ogg;base64,${payload.audioContent}" />`,
);
}