Refactor transcript fetching (#5)

* refactor: share transcript fetch helper

* Update lib/fetchTranscript.ts

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update lib/fetchTranscript.ts

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
This commit is contained in:
2025-06-10 00:34:34 +02:00
committed by GitHub
parent 247616cda8
commit 8464ac9c52
3 changed files with 34 additions and 70 deletions

32
lib/fetchTranscript.ts Normal file
View File

@ -0,0 +1,32 @@
/**
* Fetches transcript content from a URL with optional authentication
* @param url The URL to fetch the transcript from
* @param username Optional username for Basic Auth
* @param password Optional password for Basic Auth
* @returns The transcript content or null if fetching fails
*/
export async function fetchTranscriptContent(
url: string,
username?: string,
password?: string
): Promise<string | null> {
try {
const authHeader =
username && password
? "Basic " + Buffer.from(`${username}:${password}`).toString("base64")
: undefined;
const response = await fetch(url, {
headers: authHeader ? { Authorization: authHeader } : {},
});
if (!response.ok) {
process.stderr.write(`Error fetching transcript from ${url}: ${response.statusText}\n`);
return null;
}
return await response.text();
} catch (error) {
process.stderr.write(`Failed to fetch transcript from ${url}: ${error}\n`);
return null;
}
}