mirror of
https://github.com/iptv-org/iptv
synced 2026-10-22 02:56:48 -04:00
fix: don't abort playlist:format on an unparseable .mpd response
getStreamInfo() already ignores .m3u8 responses that hls-parser cannot read, but the .mpd branch let parseManifest() throw. A stream URL ending in .mpd that answers 200 with an HTML page makes mpd-parser throw DASH_INVALID_XML, which rejects inside eachLimit and kills playlist:format before anything is saved. playlist:update hits the same path when adding a stream.
This commit is contained in:
1 parent
ffee614552
commit
783c4b5d5a
1 file changed
+16
-12
+16
-12
@@ -175,22 +175,26 @@ export async function getStreamInfo(
|
||||
// do nothing
|
||||
}
|
||||
} else if (url.includes('.mpd')) {
|
||||
const manifest = parseManifest(data, {
|
||||
manifestUri: url,
|
||||
eventHandler: ({ type, message }) => console.log(`${type}: ${message}`)
|
||||
})
|
||||
try {
|
||||
const manifest = parseManifest(data, {
|
||||
manifestUri: url,
|
||||
eventHandler: ({ type, message }) => console.log(`${type}: ${message}`)
|
||||
})
|
||||
|
||||
const playlist = orderBy(manifest.playlists, [p => p.attributes.BANDWIDTH], ['desc'])[0]
|
||||
const playlist = orderBy(manifest.playlists, [p => p.attributes.BANDWIDTH], ['desc'])[0]
|
||||
|
||||
if (playlist) {
|
||||
const attr = playlist.attributes
|
||||
if (playlist) {
|
||||
const attr = playlist.attributes
|
||||
|
||||
info = {
|
||||
resolution: { width: attr.RESOLUTION.width, height: attr.RESOLUTION.height },
|
||||
bandwidth: attr.BANDWIDTH,
|
||||
frameRate: attr['FRAME-RATE'],
|
||||
codecs: attr.CODECS
|
||||
info = {
|
||||
resolution: { width: attr.RESOLUTION.width, height: attr.RESOLUTION.height },
|
||||
bandwidth: attr.BANDWIDTH,
|
||||
frameRate: attr['FRAME-RATE'],
|
||||
codecs: attr.CODECS
|
||||
}
|
||||
}
|
||||
} catch {
|
||||
// do nothing
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user