diff --git a/studio-v2/app/api/vocabulary/[...path]/route.ts b/studio-v2/app/api/vocabulary/[...path]/route.ts index e8ecec3..83c6a1f 100644 --- a/studio-v2/app/api/vocabulary/[...path]/route.ts +++ b/studio-v2/app/api/vocabulary/[...path]/route.ts @@ -20,10 +20,21 @@ async function proxyRequest( fetchOptions.body = await request.text() } const resp = await fetch(url, fetchOptions) + const contentType = resp.headers.get('Content-Type') || 'application/json' + + // Binary responses (audio, images) must use arrayBuffer, not text + if (contentType.startsWith('audio') || contentType.startsWith('image')) { + const buffer = await resp.arrayBuffer() + return new NextResponse(buffer, { + status: resp.status, + headers: { 'Content-Type': contentType }, + }) + } + const data = await resp.text() return new NextResponse(data, { status: resp.status, - headers: { 'Content-Type': resp.headers.get('Content-Type') || 'application/json' }, + headers: { 'Content-Type': contentType }, }) } catch (e) { return NextResponse.json({ error: String(e) }, { status: 502 })