mirror of
https://github.com/advplyr/audiobookshelf.git
synced 2025-08-11 09:13:49 -04:00
Merge pull request #4565 from advplyr/redirect_transcode_requests
Fix server crash when transcode requests are made to the direct play endpoint
This commit is contained in:
commit
2116f60133
@ -4,6 +4,7 @@ const Logger = require('../Logger')
|
|||||||
const Database = require('../Database')
|
const Database = require('../Database')
|
||||||
const { toNumber, isUUID } = require('../utils/index')
|
const { toNumber, isUUID } = require('../utils/index')
|
||||||
const { getAudioMimeTypeFromExtname, encodeUriPath } = require('../utils/fileUtils')
|
const { getAudioMimeTypeFromExtname, encodeUriPath } = require('../utils/fileUtils')
|
||||||
|
const { PlayMethod } = require('../utils/constants')
|
||||||
|
|
||||||
const ShareManager = require('../managers/ShareManager')
|
const ShareManager = require('../managers/ShareManager')
|
||||||
|
|
||||||
@ -299,6 +300,18 @@ class SessionController {
|
|||||||
return res.sendStatus(404)
|
return res.sendStatus(404)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Redirect transcode requests to the HLS router
|
||||||
|
// Handles bug introduced in android v0.10.0-beta where transcode requests are made to this endpoint
|
||||||
|
if (playbackSession.playMethod === PlayMethod.TRANSCODE && audioTrack.contentUrl) {
|
||||||
|
Logger.debug(`[SessionController] Redirecting transcode request to "${audioTrack.contentUrl}"`)
|
||||||
|
return res.redirect(audioTrack.contentUrl)
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!audioTrack.metadata?.path) {
|
||||||
|
Logger.error(`[SessionController] Invalid audio track "${audioTrack.index}" for session "${req.params.id}"`)
|
||||||
|
return res.sendStatus(500)
|
||||||
|
}
|
||||||
|
|
||||||
const user = await Database.userModel.getUserById(playbackSession.userId)
|
const user = await Database.userModel.getUserById(playbackSession.userId)
|
||||||
Logger.debug(`[SessionController] Serving audio track ${audioTrack.index} for session "${req.params.id}" belonging to user "${user.username}"`)
|
Logger.debug(`[SessionController] Serving audio track ${audioTrack.index} for session "${req.params.id}" belonging to user "${user.username}"`)
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user