diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/app/api/spotify-lrc/route.ts | 54 |
1 files changed, 0 insertions, 54 deletions
diff --git a/src/app/api/spotify-lrc/route.ts b/src/app/api/spotify-lrc/route.ts deleted file mode 100644 index 793f393..0000000 --- a/src/app/api/spotify-lrc/route.ts +++ /dev/null @@ -1,54 +0,0 @@ -import { NextRequest, NextResponse } from 'next/server' - -const spotifyLyricsAPIURL = 'https://spotify-lyric-api-984e7b4face0.herokuapp.com/' - -interface Line{ - timeTag: string; - words: string; -} - -interface SpotifyLyricAPIResponse { - error: boolean; - syncType: string; - usage?: string - lines?: Line[]; -} - -function extractSpotifyId(url: string | null) { - if (!url) { - return url; - } - const spotifyUrlPattern = /https:\/\/open\.spotify\.com\/track\/([a-zA-Z0-9]+)/; - const match = spotifyUrlPattern.exec(url); - if (match && match[1]) { - return match[1]; - } else { - return url; -} -} - -function convertLinesToLrc(lines: Line[] | undefined) { - if (!lines) { - return ''; - } - let lrc = ''; - for (const line of lines) { - lrc += `[${line['timeTag']}]${line['words']}\n`; - console.log(lrc); - } - return lrc; -} - -export const runtime = 'edge'; -export async function GET(request: NextRequest) { - const searchParams = request.nextUrl.searchParams - const q = searchParams.get('q'); - const url = `${spotifyLyricsAPIURL}?trackid=${extractSpotifyId(q)}&format=lrc` -const response = await fetch(url); -if (!response.ok) { - throw new Error(`HTTP error! status: ${response.status}`); -} -const data: SpotifyLyricAPIResponse = await response.json(); - const lrcString = convertLinesToLrc(data.lines); - return NextResponse.json({ message: lrcString }) -} |
