diff --git a/.env.example b/.env.example index 11ecad7..303757d 100644 --- a/.env.example +++ b/.env.example @@ -8,6 +8,7 @@ OPENAI_API_ENDPOINT=https://api.openai.com/v1 OPENAI_MODEL_NAME=gpt-4o-mini # RSSフィードの設定 +PODCAST_BASE_URL=https://your-domain.com PODCAST_TITLE=自動生成ポッドキャスト PODCAST_LINK=https://your-domain.com/podcast PODCAST_DESCRIPTION=RSSフィードから自動生成された音声ポッドキャスト diff --git a/services/podcast.ts b/services/podcast.ts index 2518b11..01eca89 100644 --- a/services/podcast.ts +++ b/services/podcast.ts @@ -7,21 +7,25 @@ import fsSync from "node:fs"; export async function updatePodcastRSS() { const episodes: Episode[] = await fetchAllEpisodes(); - const channelTitle = process.env["PODCAST_TITLE"] ?? "自動生成ポッドキャスト"; + const channelTitle = + import.meta.env["PODCAST_TITLE"] ?? "自動生成ポッドキャスト"; const channelLink = - process.env["PODCAST_LINK"] ?? "https://your-domain.com/podcast"; + import.meta.env["PODCAST_LINK"] ?? "https://your-domain.com/podcast"; const channelDescription = - process.env["PODCAST_DESCRIPTION"] ?? + import.meta.env["PODCAST_DESCRIPTION"] ?? "RSSフィードから自動生成された音声ポッドキャスト"; - const channelLanguage = process.env["PODCAST_LANGUAGE"] ?? "ja"; - const channelAuthor = process.env["PODCAST_AUTHOR"] ?? "管理者"; - const channelCategories = process.env["PODCAST_CATEGORIES"] ?? "Technology"; - const channelTTL = process.env["PODCAST_TTL"] ?? "60"; + const channelLanguage = import.meta.env["PODCAST_LANGUAGE"] ?? "ja"; + const channelAuthor = import.meta.env["PODCAST_AUTHOR"] ?? "管理者"; + const channelCategories = + import.meta.env["PODCAST_CATEGORIES"] ?? "Technology"; + const channelTTL = import.meta.env["PODCAST_TTL"] ?? "60"; const lastBuildDate = new Date().toUTCString(); + const baseUrl = + import.meta.env["PODCAST_BASE_URL"] ?? "https://your-domain.com"; let itemsXml = ""; for (const ep of episodes) { - const fileUrl = `https://your-domain.com/podcast_audio/${path.basename(ep.audioPath)}`; + const fileUrl = `${baseUrl}/podcast_audio/${path.basename(ep.audioPath)}`; const pubDate = new Date(ep.pubDate).toUTCString(); const fileSize = fsSync.statSync(ep.audioPath).size; itemsXml += `