Adds a configuration for podcast feed and episode download timeout

This commit is contained in:
sbyrx 2025-01-01 16:01:26 +00:00
parent 727310ab75
commit 0d8d0a650b
3 changed files with 8 additions and 2 deletions

View File

@ -65,6 +65,12 @@ class Server {
} }
} }
if (process.env.PODCAST_DOWNLOAD_TIMEOUT) {
global.PodcastDownloadTimeout = process.env.PODCAST_DOWNLOAD_TIMEOUT
} else {
global.PodcastDownloadTimeout = 30000
}
if (!fs.pathExistsSync(global.ConfigPath)) { if (!fs.pathExistsSync(global.ConfigPath)) {
fs.mkdirSync(global.ConfigPath) fs.mkdirSync(global.ConfigPath)
} }

View File

@ -106,7 +106,7 @@ module.exports.downloadPodcastEpisode = (podcastEpisodeDownload) => {
headers: { headers: {
'User-Agent': 'audiobookshelf (+https://audiobookshelf.org)' 'User-Agent': 'audiobookshelf (+https://audiobookshelf.org)'
}, },
timeout: 30000 timeout: global.PodcastDownloadTimeout
}).catch((error) => { }).catch((error) => {
Logger.error(`[ffmpegHelpers] Failed to download podcast episode with url "${podcastEpisodeDownload.url}"`, error) Logger.error(`[ffmpegHelpers] Failed to download podcast episode with url "${podcastEpisodeDownload.url}"`, error)
return null return null

View File

@ -238,7 +238,7 @@ module.exports.getPodcastFeed = (feedUrl, excludeEpisodeMetadata = false) => {
return axios({ return axios({
url: feedUrl, url: feedUrl,
method: 'GET', method: 'GET',
timeout: 12000, timeout: global.PodcastDownloadTimeout,
responseType: 'arraybuffer', responseType: 'arraybuffer',
headers: { headers: {
Accept: 'application/rss+xml, application/xhtml+xml, application/xml, */*;q=0.8', Accept: 'application/rss+xml, application/xhtml+xml, application/xml, */*;q=0.8',