优化图文页

This commit is contained in:
2026-04-28 17:11:42 +08:00
parent 674c202264
commit 040273586b
69 changed files with 3939 additions and 2302 deletions
+6 -3
View File
@@ -54,7 +54,7 @@ async function transcriptAudio(audio: Buffer | string) {
response_format: zodResponseFormat(SttSchema, "stt_result"),
});
const data = completion.choices?.[0]?.message
const data = completion.choices?.[0]?.message;
console.log("转写结果", data.content);
if (!data || !data.content) {
@@ -74,10 +74,13 @@ export async function transcriptAweme(awemeId: string): Promise<SttResult> {
if (!aweme) {
throw new Error("Aweme not found or aweme is not a video post");
}
const vPath = aweme.video_url
const vPath = aweme.video_url;
const buffer = await downloadFile(vPath);
const audioDat = await extractAudio(buffer, { format: "mp3", bitrateKbps: 128 });
const audioDat = await extractAudio(buffer, {
format: "mp3",
bitrateKbps: 128,
});
if (!audioDat || !audioDat.buffer) {
throw new Error("Failed to extract audio from video");
+12 -9
View File
@@ -1,20 +1,23 @@
export const runtime = "nodejs";
import { NextRequest, NextResponse } from 'next/server';
import { prisma } from '@/lib/prisma';
import type { FeedItem, FeedResponse } from '@/app/types/feed';
import { getFileUrl } from '@/lib/minio';
import { transcriptAweme } from '.';
import { NextRequest, NextResponse } from "next/server";
import { prisma } from "@/lib/prisma";
import type { FeedItem, FeedResponse } from "@/app/types/feed";
import { getFileUrl } from "@/lib/minio";
import { transcriptAweme } from ".";
// Contract
// Inputs: search params { before?: ISOString, limit?: number }
// Output: { items: FeedItem[], nextCursor: ISOString | null }
export async function GET(req: NextRequest) {
const { searchParams } = new URL(req.url)
const awemeId = searchParams.get('awemeId');
const { searchParams } = new URL(req.url);
const awemeId = searchParams.get("awemeId");
if (!awemeId) {
return NextResponse.json({ error: "Missing awemeId parameter" }, { status: 400 });
return NextResponse.json(
{ error: "Missing awemeId parameter" },
{ status: 400 },
);
}
const script = await transcriptAweme(awemeId);
return NextResponse.json(script);
}
}